Эволюция языков

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

 

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

 

Здесь обсуждаются все элементы транслятора и этапы реализации языка от спецификации до формирования машинного кода. Приводится полный исходный текст компилятора на нескольких языках программирования. Рассматривается конструкция простого двухпроходного ассемблера. Обсуждаются возможности автоматизации построения трансляторов и способы повышения их мобильности. Особую роль в изложении играет язык Оберон (и его расширение Оберон-2) — один из самых совершенных и современных языков программирования, разработанный Н. Виртом — автором Паскаля и Модулы-2.

 

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

 

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

Страницы раздела:
Языки программирования высокого уровня
Язык и его реализация
Компилятор, интерпретатор, конвертор
Метаязыки
Генеалогия языков программирования
Первое поколение языков
Фортран
Основные черты языка Фортран
Запись программы
Служебные слова, пробелы, описания
Структура программы и распределение памяти
Типы и структуры данных
Управление последовательностью действий
Ввод-вывод
Пример программы на Фортране
Фортран 77
Фортран 90 и Фортран 95
Фортран жив
Алгол-60
Основные черты Алгола-60
Формальное описание
Внешняя форма программы
Структура программы и распределение памяти 2
Процедуры
Типы и структуры данных 2
Управление последовательностью действий 2
Пример программы на Алголе-60
Судьба Алгола
Кобол
Примеры программ на ПЛ
Основные черты ПЛ
Алгол-68
Основные черты Алгола-68
Область действия
Уроки Алгола-68
Интерактивное программирование для всех
Бейсик
Основные черты Бейсика
Динамические массивы переменного размера
Примеры программ на Бейсике
Бейсик от Microsoft
Пример программы на Visual Basic
Популярность Бейсика
Структурное программирование
Основы структурного программирования
Пример неструктурированной программы
Теорема структурирования
Пошаговая детализация
Все гениальное просто
Успехи структурного программирования
Паскаль
Основные черты языка Паскаль
Сортировка вставками
Turbo Pascal
Язык Си
Основные черты языка Си
Примеры программ на языке Си
Сортировка вставками на языке Си
Стиль Си
Адресная арифметика
Модульность, надежность, абстракция
Ада
Основные черты языка Ада
«Hello World» на Аде
Сортировка вставками на Аде
Ада 95
Модула-2
Основные черты языка Модула-2
Примеры программ на Модуле-2
Модула-3
Ввод-вывод в Алголе