Файл: «Классификация языков программирования высокого уровня» ..pdf
Добавлен: 16.05.2023
Просмотров: 462
Скачиваний: 3
СОДЕРЖАНИЕ
Глава 1. История развития языков программирования и их классификация
1.1. История развития языков программирования
1.2. Классификация языков программирования
1.3.Эволюция языков программирования
Глава 2.Обзор и анализ особенностей применения языков программирования высокого уровня
Глава 3. Классификация языков программирования высокого уровня
Пользователь применяет процедурно-ориентированные языки программирования ( КОБОЛ, ФОРТРАН, ПЛ-1) или специализированные языки конкретных банков данных. Непосредственный доступ к данным при обслуживании и использовании банков данных производится с помощью операторов командного языка, включаемых в прикладные программы. Языки программирования, включающие операторы командного языка, называются включающими языками. Ввиду того, что с банком данных взаимодействуют различные пользователи, выделяются физический, логический, системно-логический уровни представления данных.
- Кобол - процедурно-ориентированный язык программирования экономических задач, которые обычно включают обработку файлов большого объема.
- [ФОРТРАН является процедурно-ориентированным языком программирования, в наибольшей степени приспособленным для решения математических и других задач, связанных с численными расчетами научного и прикладного характера.][70] Это язык программирования, предназначенный для записи алгоритмов решения научно-технических задач, в основном вычислительного характера, о чем свидетельствует его название. Слово ФОРТРАН является русским аналогом английского названия FORTRAN, образованного сокращением слов FORmula TRANslator, означающих переводчик формул, причем имеется в виду перевод с обычного математического языка на язык машинных команд. Фактически область применения языка гораздо шире: он используется для описания алгоритмов решения информационно-логических, экономических и других задач.
- ПАСКАЛЬ [ Pascal ] Процедурно-ориентированный язык программирования высокого уровня, предназначенный для решения вычислительных и информационно-логических задач. Первоначально ориентировался на обучение программированию. Используется и как язык системного программирования. Версия языка Паскаль-плюс предоставляет возможности для параллельного программирования.
- Program Applique a la Selection et la Compilation Automatique de la Litterature ] - процедурно-ориентированный язык программирования высокого уровня, созданный в конце 1960 - х гг. Никлаусом Виртом, первоначально для обучения программированию в университетах. Назван в честь французского математика XVII века Блеза Паскаля. Существует ряд версий языка ( например, ЕТН Pascal, USD Pascal, Turbo Pascal) и систем программирования на этом языке для разных типов ЭВМ.
Процедурно-ориентированные языки программирования иногда называют также алгоритмическими. Примером такого языка программирования является Фортран, ориентированный на решение задач вычислительной математики. К этой группе языков относят также многоцелевые языки программирования, ориентированные на решение нескольких классов задач, которые называют еще универсальными.
[Язык не может существовать как нечто независимое от системы. Наоборот, он является органической частью системы, причем основные концепции его должны быть заложены в систему.][71] Используемые в настоящее время процедурно-ориентированные языки программирования, такие, как Алгол, Фортран, ПЛ / 1 и др., синтаксически однородные. Можно сказать, что они являются языками-оболочками, порожденными некоторым языком-ядром. Их основные отличия обусловлены ограничениями лексики и синтаксиса. Однако основные понятия, как, например, оператор, данные, выражение, имеют неизменный смысл.
Проблемно-ориентированные языки программирования позволяют свести к минимуму затраты программиста на постановку решаемой задачи в терминах программы.
С расширением областей применения вычислительной техники возникла необходимость формализовать представление постановки и решение новых классов задач. Необходимо было создать такие языки программирования, которые, используя в данной области обозначения и терминологию, позволили бы описывать требуемые алгоритмы решения для поставленных задач, ими стали проблемно – ориентированные языки . Эти языки, языки ориентированные на решение определенных проблем, должны обеспечить программиста средствами, позволяющими коротко и четко формулировать задачу и получать результаты в требуемой форме.
Проблемно-ориентированных языков очень много, например:
Фортран, Алгол – языки, созданные для решения математических задач;
Simula , Слэнг - для моделирования;
Лисп, Снобол – для работы со списочными структурами.
Одним из первых и наиболее удачных компиляторов стал язык Фортран , разработанный фирмой IBM. [Фортран был задуман для использования в сфере научных и инженерно-технических вычислений. Однако на этом языке легко описываются задачи с разветвленной логикой (моделирование производственных процессов, решение игровых ситуаций и т.д.), некоторые экономические задачи и особенно задачи редактирования (составление таблиц, сводок, ведомостей и т.д.).][72]
[Модификация языка Фортран , появившиеся в 1958 году, получила название Фортран II и содержала понятие подпрограммы и общих переменных для обеспечения связи между сегментами.][73]
К 1962 году относится появление языка, известного под именем Фортран IV. И появлению в 1966 году двух стандартов – языка Фортран и базисного (основной) Фортран (Basic FORTRAN ). Эти языки приблизительно соответствуют модификациям IV и II , однако базисный Фортран является подмножеством Фортрана, в то время, как Фортран II таковым для Фортрана IV не является. Фортран заложен в основу Basic – диалогового языка, очень популярного для решения небольших задач, превосходного языка для обучения навыкам использования алгоритмических языков в практике программирования.
Алгол (англ. Algol от англ. algorithmic-алгоритмический и англ. language - язык) - название ряда языков программирования, применяемых при составлении программ для решения научно-технических задач на ЭВМ.
Создан комитетом по языку высокого уровня IFIP в 1958-1960 годах (Алгол 58, Алгол 60). Был кардинально переработан в 1964-1968 годах (Алгол 68). Один из первых языков высокого уровня. Больше имел применение в Европе, в том числе в СССР, в качестве как языка практического программирования, так и академического языка (языка публикации алгоритмов в научных работах). Оказал заметное влияние на все разработанные позднее императивные языки программирования - в том числе на язык Pascal.
Обычно названием Алгол (без уточнения версии) именуют Алгол 60, в то время как Алгол 68 рассматривается как самостоятельный язык.
Второй старейший язык программирования Лисп, изобретен Джорджем Маккарти в 1962 г. в большей степени для работы со строками символов, чем для работы с числами. Эта особенность Лиспа открыла для программистов новую область деятельности, известную ныне, как «искусственный интеллект». В настоящее время Лисп успешно применяется в экспертных системах, системах аналитических вычислений и т.п.
[Обширность области возможных приложений Лисп а вызвала появление множества различных диалектов Лиспа. ][74] Это легко объяснимо: применение Лисп а для понимания естественного языка требует определенного набора базисных функций, отличных, например, от используемого в задачах медицинской диагностики.
[Существование множества различных диалектов Лисп а привело к созданию в начале 80-х гг. CommonLISP Комитета, который должен был выбрать наиболее подходящий диалект Лисп а и предложить его в качестве основного. Этот диалект, выбранный Комитетом в 1985г., получил название CommonLISP .][75] В дальнейшем он был принят в университетах США, а также многими разработчиками систем искусственного интеллекта, в качестве основного диалекта языка Лисп .
Язык программирования Лисп существенно отличается от других языков программирования, таких, как Паскаль , Си и т.п. Работа с символами и работа с числами как с основными элементами требует разных способов мышления.
[Первоначально Лисп был задуман как теоретическое средство для рекурсивных построений, а сегодня он превратился в мощное средство, обеспечивающее программиста разнообразной поддержкой, позволяющей ему быстро строить прототипы весьма и весьма серьезных систем.][76]
Профессор Массачусетского технологического института Дж. Самман заметил, что математическая ясность и предельная четкость Лисп а – это еще не все. Главное – Лисп позволяет сформулировать и запомнить «идиомы», столь характерные для проектов по искусственному интеллекту.
Снобол - язык программирования высокого уровня, разработанный в 1962-1967 гг. преимущественно для обработки текстовых данных.
Основной целью языка Снобол являлось показать принцип (возможность его полноценного существования), что всё есть строка. Внешне язык выглядит в так называемом «старом стиле»: современные идеи процедур в нём сложно узнать, однако мощь его ничуть не уступает LISP по работе в среде «искусственного интеллекта».
Сопоставление с образцом на основе НФБ-грамматик. Полностью динамический язык, включая объявления, типы, распределение памяти, даже точки входа и выхода из процедуры. При реализации использует виртуальные макрокоманды обработки строк -простой перезаписью макрокоманд для любого существующего компьютера.
[Язык, который является языком написания компиляторов, в котором основной принцип, что всё есть строка и имеющий такой «некрасивый» синтаксис не мог естественным путём не «переродиться» в совершенно другой, внешне даже не похожий: Icon. Первоначально он был одной лишь надстройкой над Снобол4, но вскоре стал самостоятельным языком программирования.][77]
Разработка началась в 1962 г. Ральфом Грисвольдом, Иваном Полонским и Дэвидом Фарбером, сотрудниками лаборатории AT&T Bell Labs. Целью было создание языка обработки строк для работы с формулами и анализа графиков.
В 1950 г. Ингве (Yngve) из MIT разработал язык COMIT для обработки естественных языков на основе правил НФБ, однако группа из Bell Labs сочла COMIT слишком ограниченным для своих целей.
Изначально язык назывался SCL7 (Symbolic Computation Language 7), затем его название сменилось на SEXI (String Expression Interpreter), которое по понятным причинам было осуждено в 60-е гг., и, наконец, он стал называться SNOBOL (StriNg Oriented symBOlic Language) - искусственно созданный акроним, лишенный интуитивно понятного смысла. Было разработано несколько версий языка Снобол - SNOBOL, SNOBOL2, SNOBOL3 и SNOBOL4. Последний пользовался успехом в 70-е гг.
[Объектно-ориентированный язык программирования (ОО-язык) - язык, построенный на принципах объектно-ориентированного программирования.][78]
В его основе концепции объектно-ориентированного программирования лежит понятие объекта - некой сущности, которая объединяет в себе поля (данные) и методы (выполняемые объектом действия).
Например, объект человек может иметь поля имя, фамилия и методы есть и спать. Поэтому в программе можем использовать операторы Человек.Имя:="Иван" и Человек.Есть(пища).
В современных ОО языках используются механизмы:
- [Наследование. Создание нового класса объектов путём добавления новых элементов (методов). Некоторые ОО языки позволяют выполнять множественное наследование, то есть объединять в одном классе возможности нескольких других классов. ][79]
- Инкапсуляция. Сокрытие деталей реализации, которое позволяет вносить изменения в части программы, не влияя на другие её части, что существенно упрощает сопровождение и изменение ПО.
- [Полиморфизм. При полиморфизме некоторые части (методы) родительского класса заменяются новыми, реализующими специфические для данного потомка действия. ][80]Таким образом, интерфейс классов остаётся прежним, а реализация методов с одинаковым названием и набором параметров различается. В ООП обычно применяется полиморфизм подтипов (называемый при этом просто «полиморфизмом»), нередко в форме позднего связывания.
Неполный список объектно-ориентированных языков программирования:
- ActionScript (3.0)
- Ada
- C#
- C++
- Cyclone
- D
- Delphi
- Dylan
- Eiffel
- F#
- Io
- Java
- JavaScript
- JScript .NET
- Object Pascal
- Objective-C
- Perl
- PHP PowerBuilder
- Python
- Ruby
- Scala
- Simula
- Smalltalk
- Swift
- Vala
- VB.NET
- Visual DataFlex
- Xbase++
- X++
Кроме объектно-ориентированных языков общего назначения существуют и узкоспециализированные ОО-языки.
ОО-языки программирования пользуются в последнее время большой популярностью среди программистов, так как они позволяют использовать преимущества объектно-ориентированного подхода не только на этапах проектирования и конструирования программных систем, но и на этапах их реализации, тестирования и сопровождения.
Первый объектно-ориентированный язык программирования Simula 67 был разработан в конце 60-х годов в Норвегии. Авторы этого языка намного опередили свое время. Достоинства языка Simula 67 были замечены некоторыми программистами, и в 70-е годы было разработано большое число экспериментальных объектно-ориентированных языков программирования: например, языки CLU, Alphard, Concurrent Pascal и др.