Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей




Введение в программирование

Последние 25 лет стали эпохой бурного развития языков программирования. В вышедшей 10 лет назад книге Джин Саммет описала около 120 языков, использовавшихся в то время в США. Стоит ли удивляться тому, что языки программирования из инструмента исследователя превратились еще и в предмет исследования. В самом деле, чем отличаются языки: внешней формой (синтаксисом), внутренним содержанием (семантикой)? Нельзя ли обойтись одним языком? Можно ли создать такой язык, на котором нельзя написать плохую программу? Почему немногие языки завоевали мир, другие же не заинтересовали никого, кроме своих создателей?

 

В середине 1978 года проходила конференция по истории языков программирования. На ней с докладом выступил Дж. Бэкус — отец ФОРТРАНа, автор НФБ (нормальной формы Бэкуса), которая используется для описания синтаксиса АЛГОЛа и многих других языков.

Мысль, которая, содержалась в его выступлении, позволит, я думаю, под определенным углом взглянуть на содержание данной книги.
Он сказал:

«Я рассматриваю все традиционные языки (например, ФОРТРАНы, АЛГОЛы и другие языки, построенные по их образу и подобию) как этапы все более комплексной разработки стиля программирования, диктуемого машиной фон Неймана. Эти фон неймановские языки стали громадным и ненужным интеллектуальным препятствием на пути создания формы для действительно мощной методологии программирования. Может быть естественно и неизбежно, что такие языки как ФОРТРАН и любые его преемники выросли из понятий машины фон Неймана, но сам факт, что именно эти языки определяют наше мышление в течение 20 лет, глубоко огорчителен».

 

В своей книге видный английский специалист в области программирования Д. Баррон пытается осмыслить вопросы, поставленные в начале предисловия, привлекая для иллюстрации несколько избранных (конечно, фон - неймановских) языков программирования.
Основное внимание автор уделяет общим принципам построения языков. Его интересует, главным образом, синтаксическая сторона (семантический подход к анализу языков читатель может найти в книге Т. Пратта «Языки программирования: разработка и реализация», М. Мир, 1979 г.).

Изложение ведется путем сравнения ФОРТРАНа, ПЛ/1, АЛГОЛа. В отдельных местах для иллюстраций привлекаются также языки СНОБОЛ-4, ПОП-2, АПЛ. Разумеется, ни один из языков не рассматривается сколь-нибудь подробно.

Хотелось бы предостеречь читателя, которого может обмануть внесенное в название книги слово «введение». Читатель должен быть «полиглотом», т.е. активно владеть двумя-тремя языками программирования, чтобы извлечь из книги что-то еще, кроме остроумных реплик автора. Следует, однако, отметить, что эти реплики не всегда объективны; часто, например, употребляется такая схема: «Посмотрите, как это несуразно выглядит в ФОРТРАНе, вполне терпимо в ПЛ/1 и проста безукоризненно в АЛГОЛе 68».

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

 

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

 

Реализация языков как таковая не рассматривается. Вместо этого построение языка делается посредством абстрактных машин — «ПЛ/1-машины», «ФОРТРАН-машины» и т.д. Поскольку функция компилятора заключается в преобразовании входного текста в конкретное представление для данной аппаратуры, явно проводится логическое разделение структуры языка и методов компиляции. Достаточно внимания уделяется реальным машинам, так что читателю будет ясно, как взаимодействуют фазы построения языка, компиляции и организации прохождения задач.

 

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

Основой этой книги послужил курс лекций, прочитанный в летней школе ЦЕРН, проходившей в 1970 г. в Варение. Я признателен доктору Г. Р. Маклеоду за приглашение принять участие в этой летней школе, а также за его смелость пригласить меня снова выступить перед аудиторией фанатиков ФОРТРАНа в ЦЕРНе в 1973 г.
Более поздний вариант лекций служил частью курса для сотрудников университета в Кейптауне в 1974 г. Этот курс был организован корпорацией ИБМ, которой я весьма признателен.

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

 







Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru