рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Исторический обзор, классификация и характеристика языков программирования

Исторический обзор, классификация и характеристика языков программирования - Реферат, раздел Программирование, Реферат На Тему Исторический Обзор, Классификация И Характеристики Языков Про...

Реферат на тему Исторический обзор, классификация и характеристики языков программирования Содержание Введение 1. Понятия зыка программирования 1.1 Машинный код 1.2 Алгоритм и программа 1.3 Что такое язык программирования 1.4 Уровни языков программирования 1.5 Компилируемые и интерпретируемые языки 2.Классификация языков программирования 3. Исторический обзор языков программирования 4. Характеристики языков программирования 4.1 Элементы объектной модели 4.2 Характеристики языков программирования с точки зрения элементов объектной модели Приложение. Популярность языков программирования Заключение Литература Введение Бурное развитие информационных технологий повлекло за собой создание множества искусственных языков, ориентированных на решение проблемы общения человека с компьютером.

Любой обзор по языкам программирования первым делом неизбежно затрагивает вопросы классификации этих языков.

Не стремясь к соблюдению слишком строгой и исчерпывающей классификации и опираясь на ряд традиционных подходов, попробуем проанализировать современное состояние языков программирования. Один из подходов, помогающий провести обзор языков программирования подход исторический. Действительно, на первый взгляд все выглядит очень просто. Сначала было программирование в машинных кодах, когда программист являлся единственным посредником между остальными смертными и Машиной - гигантским ламповым монстром, занимающим если не целое здание, то почти целый этаж. Затем появились мнемонические представления машинного кода, ассемблер и, наконец, макроассемблер.

В конце 50-х возникли языки формульного программирования, из которых наиболее замечательным был Фортран, затем в 60-х центр тяжести стал понемногу смещаться к нечисленным методам - появился АЛГОЛ. Еще немного, и к 70-м годам произошла структурная революция - АЛГОЛ-W и, наконец, Паскаль.

Далее настала очередь модульного программирования - Модула и Модула-2. Приблизительно в это же время рождается знаменитый язык Си, идет новая революция логического программирования - в моде ПРОЛОГ и экспертные системы. Пентагон проводит свой знаменитый конкурс, на котором побеждает Ада, а Япония заявляет о проекте машин пятого поколения, основанных на SmallTalk. В результате происходит объектно-ориентированная революция, появляются С , Оберон, Eiffel и Модула-3. Общие тенденции развития языков программирования при историческом подходе проследить вполне возможно, однако изложение получается сумбурным и путаным.

Удивляться тут нечему - ладно если бы произошла, например, структурная революция программистская общественность присягнула на верность программированию без goto и прощай Фортран! Но нет, и Фортран сейчас в ходу, а если вспомнить об его преуспевших детях Basic и Visual Basic, то придется признать, что некрологи Фортрана более чем двадцатилетней давности выглядят в наше время как забавный исторический курьез.

Хотя верно и то, что тех версий языка Фортран, что были четверть века назад, уже не осталось, да и машин, на которых с ними работали, сейчас найдешь разве что в музее. Язык Паскаль также, по сравнению со многими другими языками, сейчас уже не молод, но это не мешает ему оставаться одним из наиболее популярных языков и в наши дни. А Кобол? У него еще более преклонный возраст, а если посмотреть по конференциям на Internet - окажется, что очень много работ и сейчас проводится на Коболе.

Другой возможный классификационный критерий языков программирования - это революционные идеи программирования, воплотившиеся в соответствующих решениях структурное программирование, модульное программирование, объектно-ориентированное программирование. Однако и тут четкой классификации не получится. К примеру, Паскаль возник как продукт структурной революции, удачно впитал в себя идеи революции модульной, и сегодня существует практически на всех компьютерных платформах в объектно-ориентированных воплощениях.

Другой пример приверженцы языка С , как правило, самым важным его достоинством называют объектно-ориентированное программирование. Однако было бы неверно считать, что С стал популярным только благодаря объектам - как и объектно-ориентированный Паскаль, С является языком гибридным. Применение объектно-ориентированной парадигмы при работе на нем совсем не обязательно, и многие программисты в практической работе этими возможностями как в С , так и в объектно-ориентированном Паскале не пользуются. Точно так же, работая с современными компиляторами языка Паскаль, например с широко известными Borland Pascal Turbo Pascal Borland 7.0 для IBM PC или Think Pascal Symantec для компьютеров Macintosh, можно в явном виде не пользоваться модульными возможностями, оформляя исходный код программы почти в полном соответствии со стандартным Паскалем.

Ошибочный подход, скажет иной поклонник прогресса.

Однако исходный код, соответствующий стандарту, будет обладать высокой переносимостью на разные платформы. Могут быть и иные резоны как для стандартных, так и для гибридных подходов. Видимо, поэтому разработчики объектно-ориентированного языка Модула-3 сделали принцип гибридности одним из основных в своем языке. С другой стороны, существует большая группа чистых объектно-ориентированных языков, где объектно-ориентированная парадигма является обязательной.

Примером такого языка может служить Dee. Казалось бы, еще один удобный классификационный признак - популярность языка чем язык популярней - тем он лучше, так может, недолго думая, и разбить все языки на плохие и хорошие ? Однако хорошо известно, что коммерческий успех того или иного продукта не является объективной оценкой качества. Мода - преходяща, особенно если ее приход стимулируется громкой рекламой и значительными капиталовложениями. И чем популярней язык, тем больше споров вокруг него, чем больше у него сторонников - тем больше и противников.

Так, в самое ближайшее время много споров можно будет услышать об языке Java. Не вызовет ли приверженность этого языка принципам объектно-ориентированного программирования оттока его сторонников - и тех, кто не стремится использовать объектно-ориентированное программирование на практике, и тех, кто считает, что в ряде современных языков например в С или в Eiffel эти принципы реализованы полнее? И, наконец, еще один критерий - уровень языка.

Традиционно к языкам низкого уровня относят ассемблеры, а к языкам высокого уровня все остальные универсальные языки программирования, впрочем, для таких языков, как Форт FORTH , Си и т. д иногда выделяется некий промежуточный уровень. Помимо этого, делались неоднократные попытки выделить какой-либо язык или группу языков на сверхвысокий уровень, например для макросредств электронных таблиц. Не нужно вдаваться в детали, чтобы почувствовать всю условность и этой классификации.

Тем более, если учесть, что большинство реализаций современных языков программирования высокого уровня имеют богатые низкоуровневые возможности. Скажем, Inline-директива, позволяющая записывать в исходном тексте машинные коды, или встроенный ассемблер, как, например, это сделано в Borland Pascal. Отметим, что, как правило, встроенный ассемблер гораздо удобнее - запись в кодах на его фоне выглядит анахронизмом. При необходимости программирования какого-либо фрагмента программы на низком уровне можно применять и обычный не встроенный ассемблер.

В общем случае в современных языковых средах вполне возможно программировать разные модули одной и той же программы на разных языках, например и на нескольких языках высокого уровня. Отметим, однако, что на практике этого лучше не делать без особых причин. Весьма проблематична классификация языков и по названию. Например, Н. Вирт заявляет, что недостатки концепций языка Паскаль преодолеваются в языках Модула-2 и Оберон Назови я эти языки Паскаль-2 и Паскаль-3 их эволюционная линия была бы очевидна. Напрашивается вопрос - что есть язык, а что есть диалект языка например, стандартный Паскаль, расширенный Паскаль Extended Pascal и Turbo Pascal - три разных языка или три диалекта Паскаля? Итак, подведем итог несмотря на неполноту традиционных классификаций, они позволяют выявить ряд важнейших характеристик языков программирования.

То же самое можно сказать о проблеме сравнения языков. Периодически такие сравнения появляются как в компьютерных журналах, так и в сетевых конференциях.

Естественно, главная цель здесь недостижима, и большинство участников дискуссии обычно остается при своем мнении одним язык Y нравится - другие его терпеть не могут. Однако, при малоинтересных общих выводах, сравнительные оценки деталей двух языков содержат иногда много оригинальных, интересных и плодотворных подходов. 1.Понятие языка программирования 1.1 Машинный код Процессор компьютера - большая интегральная микросхема.

Все команды и данные он получает в виде электрических сигналов. Фактически процессор можно рассматривать как огромную совокупность достаточно простых электрических элементов - транзисторов. Транзистор имеет три вывода. На два крайних подается напряжение, необходимое для создания в транзисторе электрического тока, а на средний вывод - напряжение, с помощью которого можно управлять внутренним сопротивлением транзистора, а значит, управлять и током, и напряжением на его выводах. В электронике транзисторы имеют 3 применения для создания усилителей, в электронных схемах, обладающих автокабельными свойствами, и в электронных переключателях.

Последний способ и применяется в цифровой вычислительной технике. В процессоре компьютера транзисторы сгруппированы в микроэлементы, называемые триллерами и вентилями. Триллеры имеют два устойчивых состояния открыт - закрыт и переключается из одного состояния в другое электрическими сигналами. Этим устойчивым состояниям соответствуют математические понятия 0 и 1 . Вентили немного сложнее - они могут иметь несколько входов напряжение на выходах зависит от комбинаций напряжений на входах и служат для простейших арифметических и логических операций. Команды, поступающие в процессор по его шинам, на самом деле являются электрическими сигналами, но их тоже можно представить как совокупность нулей и единиц.

Разным командам соответствуют разные числа. Поэтому реально программа, с которой работает процессор, представляет собой последовательность чисел, называемую машинным кодом. 1.2

Алгоритм и программа

Сначала всегда разрабатывают алгоритм действий, а потом он записываетс... Такое описание еще называют формальным. 1.3 . Управлять компьютером нужно по определенному алгоритму. Алгоритм - точ... Алгоритм и программа.

Что такое язык программирования

Что такое язык программирования. Самому написать программу в машинном коде сложно, причем эта сложность... Условно можно считать, что машинный код приемлем, если размер программ... Теоретически программу можно написать и средствами обычного естественн... Совокупность подобных требований образуют синтаксис языка программиров...

Уровни языков программирования

Языки программирования, имитирующие естественные языки, обладающие укр... При этом программа остается на исходном языке и не может быть запущена... Кратко говоря, компилятор переводит программу на машинный язык сразу и... Кроме того, большинство современных чистых интерпретаторов не исполняю... Программа на интерпретируемом языке может быть зачастую запущена на ра...

Классификация языков программирования

Как правило, каждый модуль содержит паспорт, в котором указаны все осн... Джон Устерхаут предложил принцип классификации языков, в соответствии ... com и предварительно компилируемые Perl. Понимание самостоятельного значения языков программирования пришло поз... На Коболе написаны тысячи прикладных коммерческих систем.

Элементы объектной модели

Согласно Барбаре Лисков модульность - это разделение программы на фраг... Связь между файлами объявляется директивой макропроцессора include. Логика электронного оборудования может быть построена на основе элемен... Во-первых, поскольку модули служат в качестве элементарных и неделимых... А именно, даже небольшие изменения в интерфейсе класса требуют переком...

Заключение Выделим некоторую общую тенденцию в развитии языков программирования языки развиваются в сторону все большей и большей абстракции.

И это сопровождается падением эффективности.

Но это стоит того повышение уровня абстракции влечет за собой повышение уровня надежности программирования. С низкой эффективностью можно бороться путем создания более быстрых компьютеров.

Если требования к памяти слишком высоки, можно увеличить ее объем.

Это, конечно, требует времени и средств, но это решаемо.

А вот с ошибками в программах можно бороться только одним способом их надо исправлять.

А еще лучше - не совершать. А еще лучше максимально затруднить их совершение. И именно на это направлены все исследования в области языков программирования. А с потерей эффективности придется смириться. Целью данного обзора была попытка дать представление о всем многообразии существующих языков программирования.

Среди программистов часто бытует мнение о всеобщей применимости того или иного языка C, C , Pascal и т.п Это мнение возникает по нескольким причинам недостаток информации, привычка, инертность мышления. Настоящий профессионал должен постоянно стремиться повышать свои профессиональную квалификацию. А для этого нужно не бояться экспериментировать. Разумеется, прежде чем приниматься использовать новый язык, нужно внимательно изучить все его особенности, включая наличии эффективной реализации, возможности взаимодействия с существующими модулями и т.п и только после этого принимать решение.

Конечно, всегда есть риск пойти не тем путем, но не ошибается лишь тот, кто ничего не делает. Часто проводятся дискуссии вида язык A лучше, чем язык B . Прочитав этот обзор, можно убедится в бессмысленности таких споров. Максимум, о чем может идти речь - это о преимуществах одного языка над другим при решении той или иной задачи в тех или иных условиях.

Вот здесь действительно иногда есть о чем поспорить. И решение подчас отнюдь не очевидно. Этот обзор языков программирования задумывался как ответ тем, кто кричит язык X MUST DIE . Надеюсь, что ответ получился достаточно адекватным и убедительным. Литература 1.Информатика под редакцией Е.К. Хеннера, М Академия,2004г. 2.Информатика. Базовый курс под ред. С. В. Симоновича, С П Питер 2005г. 3.Языки программирования. Обзор-ликбез. Хакер 4,с.36-40. 4.Р.Богатырев, Природа и эволюция сценарных языков, Мир ПК, 11,2001 5.Г.Буг, Объектно-ориентированный анализ и проектирование 6.http citforum.ru 7. http school.keldysh.ru sch444 MUSEUM LANR evol.htm 8. http ru.wikipedia.org 9. http www.levenez.com lang 10. http tiobe.com.

– Конец работы –

Используемые теги: исторический, обзор, Классификация, характеристика, языков, программирования0.099

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Исторический обзор, классификация и характеристика языков программирования

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

История развития пассажирского автомобильного транспорта. Виды пассажирского транспорта, их классификация и характеристика. Классификация и характеристика пассажирских автомобильных перевозок
В современных условиях дальнейшее развитие и совершенствование экономики... От его четкости и надежности во многом зависят трудовой ритм предприятий промышленности строительства и сельского...

Основные характеристики и классификация CASE-систем. Классификация CASE-систем. Основные подсистемы CASE-систем.
На сайте allrefs.net читайте: Основные характеристики и классификация CASE-систем. Классификация CASE-систем. Основные подсистемы CASE-систем....

Обзор языков логического программирования
Машина фон Неймана содержит большую память и процессор, снабженный локальной памятью, ячейки которой называются регистрами. Процессор может загружать данные из памяти в регистры, выполнять… Хотя компьютеры предназначены для использования людьми, возникающие при их создании трудности были столь значительны,…

Лекция 1. Объектно-ориентированное программирование – это новый подход к программированию. Объектно- ориентированные языки обладают свойством
ВВЕДЕНИЕ... Приступая к изучению более сложных конструкций языка С следует прежде всего повторить тот материал который был...

Конспект лекций по курсу Алгоритмические языки и программирование Основы языка С++
Пермский Государственный технический университет... Кафедра информационных технологий и автоматизированных... Викентьева О Л...

Все языки программирования делятся на языки низкого, высокого и сверхвысокого уровня
ОГЛАВЛЕНИЕ ВВЕДЕНИЕ ЗАДАНИЕ ЗАДАНИЕ... ВВЕДЕНИЕ...

Аналитический обзор книги "Программирование на языке ассемблера для микропроцессоров 8080 и 8085"
Это позволит увеличить производительность труда, уменьшить себестоимость выпускаемой продукции и значительно сократить ручные операции в… Для их обучения необходимо иметь учебные пособия, посвященные аппаратным и… Издание включает в себя 488 страниц. Для начала рассмотрим содержание этой книги чтобы сделать окончательный анализ по…

В первом семестре рассматриваются основные конструкции языка Си и базовая технология программирования структурное программирование
В первом семестре рассматриваются основные конструкции языка Си и базовая технология программирования структурное программирование... Структурное программирование это технология создания программ позволяющая... Компиляторы и интерпретаторы Трансляторы бывают...

НАДЕЖНОЕ ПРОГРАММНОЕ СРЕДСТВО КАК ПРОДУКТ ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ. ИСТОРИЧЕСКИЙ И СОЦИАЛЬНЫЙ КОНТЕКСТ ПРОГРАММИРОВАНИЯ. ИСТОЧНИКИ ОШИБОК В ПРОГРАММНОМ СРЕДСТВЕ
ВВЕДЕНИЕ... Лекция НАДЕЖНОЕ ПРОГРАММНОЕ СРЕДСТВО КАК ПРОДУКТ ТЕХНОЛОГИИ... Программа как формализованное описание процесса обработки данных Программное средство...

Понятие литературный язык. Место литературного языка среди других форм существования языка
Литературный язык это язык государственных и культурных учреждений школьного обучения радио и телевидения науки публицистики художественной... Современный литературный язык многофункционален Он используется в различных... Основные сферы использования литературного языка телевидение и кино наука и образование печать и радио...

0.036
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам