Фортран (Fortran)

Ассемблер

Машинные команды

Эволюция языков программирования

Недостатки:

Необходимость знания архитектуры машины.

Простые программы из-за ограниченных возможностей машин и сложности разработки и отладки программ.

Имеется возможность встраивания данных в код программы как команд.

 

Обеспечивает переход к символическому кодированию машинных команд .

Имеется возможность использования макросов и меток.

Программа может быть представлена в исходном тексте и в откомпилированном виде.

Имеются специальные программы-дизассемблеры.

Сравнение:

Машинные языки Асcемблер
“-” сложность написания программ “+” наглядность
“-” Нет переносимости программ на др. платформы

 

1954 , IBM , Джон Бэкус (John Backus)

Первый язык программирования высокого уровня.

Достоинства:

Абстрагирование от особенностей машинной архитектуры.

Концепция подпрограмм.

Недостатки:

Пробелы не являлись разделителями.

Цикл for до метки 10 при изменении индекса от 1 до 100

DO 10 I=1,100

Оператор присваивания

DO10I = 1.100

Cobol - 1960 г., для коммерческих приложений.

PL/1 – 1964 г., IBM, пришел на смену Cobol и Fortran .

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

Пробелы стали использоваться как синтаксические разделители, но ключевые слова не были зарезервированы.

IF ELSE=THEN THEN THEN; ELSE ELSE

BASIC (Beginners' All-Purpose Symbolic Instruction Code - многоцелевой язык символических инструкций для начинающих) - 1963 г.

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

Algol– 1964 г., разработан Петером Науром (Peter Naur) .

Этот язык дал начало целому семейству Алгол-подобных языков (важнейший представитель - Pascal).

 

Pascal-подобные языки

PASCAL - 1970 г., Никлаус Вирт.

Достоинства:

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

Внедрена строгая проверка типов, что позволило выявлять многие ошибки на этапе компиляции.

Недостатки:

Отсутствие средств для разбиения программы на модули.

Modula-2 - 1978 г., Никлаус Вирт.

Модуль стал одной из ключевых концепций языка .

Modula-3 - 1988 г., Никлаус Вирт.

Появились объектно-ориентированные черты.

 

С-подобные языки

С - 1972 г., Керниган и Ритчи, язык для разработки операционной системы UNIX.

Недостатки:

Компилятор C очень слабо контролирует типы.

С++ - 1986 г., Бьярн Страуструп.

Появились объектно-ориентированные черты.

Java- 1995 г., корпорация Sun Microsystems. Разработчики Кен Арнольд и Джеймс Гослинг.

Особенности:

Компиляция в код некоей абстрактной машины, для которой затем пишется эмулятор (Java Virtual Machine) для реальных систем.

Нет указателей и множественного наследования.

С# - 1999-2000 гг., Microsoft.

Ориентирован, в основном, на разработку многокомпонентных Интернет-приложений.

 

 

Языки Ada и Ada 95

Ada - 1983 г. для Министерства Обороны США.

Имеет достоинсва:

Выявление множества ошибок на этапе компиляции.

Параллелизм, обработка исключений.

В 1995 году был принят стандарт языка Ada 95 .

Добавлена объекно-ориентированность.

Имеет недостатки:

Сложность освоения языка и громоздкий синтаксис.

 

Процедурно-ориентированные языки (Fortran, BASIC, Pascal, С)

Имеют достоинства:

Простота написания программ.

Наглядность представление программы.

Наличие встроенных базовых функций, процедур.

Переносимость программ на др. платформы

Иметя недостатки:

Большое количество строк в коде программы.

Не отражается модель реального мира

 

Объектно-ориентированные языки (Object Pascal, С++) устраняют перечисленные недостатки процедурных языков.

 

Языки обработки данных

APL (Application Programming Language) – 1957 г., язык описания математической обработки данных.

Допускает использование математических символов.

Snobol – 1962 г., а в 1974 его преемник Icon.

Синтаксис Icon напоминает С и Pascal одновременно.

Имеет встроенные функции работы со строками.

Современным аналогом Icon и Snobol является Perl - язык обработки строк и текстов.

SETL– 1969 г., язык для описания операций над множествами.

Lisp – 1958 г., язык для обработки списков.Потомки: Planner (1967), Scheme (1975), Common Lisp (1984).

 

Скриптовые языки

Характеризуются свойствми:

Интерпретируемость.

Простота синтаксиса.

Легкая расширяемость.

JavaScript ( LiveScript ) - Netscape Communications .

Интерпретируется браузером во время отображения веб-страницы.

По синтаксису схож с Java и (отдаленно) с C/C++.

VBScript – Microsoft .

Синтаксически похож на Visual Basic.

Perl – создан для обработки различного рода текстов и выделения нужной информации.

Является интерпретируемым языком.

Python–1990 - 91 гг.Гвидо ван Россум (Guido van Rossum)

Интерпретируемый объектно-ориентированный язык программирования.

 

Объектно-ориентированные языки

Simula – 1967 г., язык для моделирования различных объектов и процессов .

Smalltalk – 1972 г., я зык для проектирования сложных графических интерфейсов .

Eiffel - 1986 г., чистый язык объектно-ориентированного программирования.

 

Языки параллельного программирования

Оccam – 1982 г.,

предназначен для программирования транспьютеров - многопроцессорных систем распределенной обработки данных.

Модель параллельных вычислений Linda – 1985 г.

организует взаимодействие между параллельно выполняющимися процессами.

 

Языки программирования разделяются на следующие классы:

Императивные языки. Программы на них представляют собой пошаговое описание решения задачи.

Неимперативные языки. Программа описывает только постановку проблемы. Решение задачи выполняет компилятор.

Существуют 2 подхода: функциональное и логическое программирование.

 

Функциональные языки

Поддерживают представление программы в виде математических функций.

Имеются 2 типа языков: с ленивой и с энергичной семантикой.

Язык с энергичной семантикой – ML и два его диалекта Standard ML (SML) и CaML.

Языки с ленивой семантикой – Haskell и Clean.

Языки логического программирования

Программы на них выражены как формулы математической логики .

Prolog – 1971 г.

Потомки:

Parlog – 1983 г. , ориентирован на параллельные вычисления .

Delta Prolog.