Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура_ЭВМ.doc
Скачиваний:
1
Добавлен:
31.07.2019
Размер:
827.39 Кб
Скачать

Четвертое поколение.

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

Скриптовые языки. Начиная с 1960х годов из JCL (Job Control Language) развилось множество скриптовых языков, обеспечивающих простую интеграцию и выполнение других программ. Большая часть этих языков была разработана для специального употребления, как SQL для запросов в базах данных или PostScript как язык описания страниц. В следующих главах будут рассмотрены и другие языки этого типа.

Описательные языки. После 1975 года образовались описательные языки, не содержащие программной логики в чистом виде. К ним принадлежит XML-выражения для структурированного и формального описания данных или IDL (Interface Definition Language — язык описания интерфейса) для описания программного интерфейса. XML как метаязык играет некоторую двойную роль, так как он допускает, например, определение XSLT как почти функционального языка программирования и поэтому не может быть рассмотрен как чисто описательный [H04].

Пятое поколение.

Пятое поколение языков программирования (примерно с 1980 года) охватывает частично декларативные, как и логические и функциональные языки. Здесь проблемы граничных и необходимых условий описываются и больше не решаются явно. Система должна в некоторых границах сама найти решение. В этой книге как пример логического программирования представлен PROLOG.

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

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

  • Парадигма программирования

  • Степень абстракции

  • Схема выполнения

Парадигмы программирования.

Под парадигмой языка программирования понимают метод представления и обращения с данными и операциями, представленными для переработки.

Императивная парадигма программирования. Императивные языки состоят из серии инструкций, которые должны быть обработаны строго последовательно. Примеры таких инструкций: описание переменных с определенным значением или обращение к специальным подфункциям. Таким образом процедурные языки программирования основываются в основном на функциях и процедурах для создания целого и повторном использовании функциональности. Объекты и классы не существуют. Наиболее известный представитель этой категории — язык С, который был создан для программирования первых UNIX-систем уже в начале семидесятых годов. Также С до сих наиболее употребляемый язык программирования в области внедренных систем и программирования систем на предприятиях. С будет подробно рассмотрен в главе 2.

Объектно-основанная парадигма программирования. Найти единое определение для объектно-основанных языков программирования совсем непросто. Однако в литературе часто можно найти две характеристики:

  • Язык программирования тогда является объектно-основанным, когда он поддерживает объекты, но в нем отсутствуют такие более развитые концепции как классы и их связи.

  • В «Карманной информатике» [RePo06] как ограничение называют наследование. Языки которые поддерживают классы, объекты, методы и атрибуты, но не поддерживают наследование, классифицируются как объектно-основанные.

Представитель объектно-основанных языков — JavaScript (будет рассмотрен в главе 13), в котором наследование на сегодня (2006 год) может быть только непрямым.

Объектно-ориентированная парадигма программирования. В противоположность объектно-основанным языкам объектно-ориентированные располагают более продвинутыми концепциями, такими как наследование и полиморфизм. Дорогу объектно-ориентированному программированию подготовил язык Smalltalk. Хотя этот язык сегодня мало распространен, многие его концепции присутствуют в современных языках. Представители этой парадигмы: Java равно как и различные С-производные: C++, C# и Objective-C.

Функциональная парадигма программирования. В отличие от императивных или объектно-ориентированных языков в чистых функциональных (или аппликативных) языках нет присваивания значений. Функциональная программа состоит исключительно из последовательности определений функций, которые трансформируют входные данные в соответствующие выходные. Фундамент функционального программирования лежит в начале сороковых годов и основан на описанной в 1941 году Алонзо Чёрчем (1903 – 1995) теории λ-исчислений.

Функциональные языки программирования особенно распространены в областях искусственного интеллекта, построении компиляторов и компьютерной алгебры. Самый известный представитель этой группы — язык LISP, который описан в главе 22.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]