Как начинался компьютер
Компьютерная революция
Двоичный код
Разработки военных лет
Интегральные микросхемы
Микрокомпьютер
Персоны
Сеть
Язык компьютера
Развитие ПО
Гибкие системы
Средства разработки
Информатика
Вычислительная наука
Операционные системы
Искусственный интеллект
Предыстория
Поиск
Знания и рассуждения
Логика
Робототехника
 

 
Язык Паскаль Печать
В 1970 г. возник еще один новый элегантный язык, который в последующие годы оказал влияние на программистов во всем мире.

Язык назывался Паскаль - в честь французского философа и математика XVII в. Блеза Паскаля, а его автором был Никлаус Вирт (Niklaus Wirth).

Он начал писать Паскаль в 1968 г., когда Хоару так и не удалось воспрепятствовать утверждению Алгола-68. В то время Вирт был профессором информатики в Федеральном техническом университете в Швейцарии (где в первый раз собирался комитет по Алголу-58) и нуждался в инструменте для обучения студентов навыкам программирования.

Вирта не удовлетворял не только новый Алгол, но и все «ныне используемые основные языки программирования, свойства и конструкции которых зачастую нельзя объяснить логически и убедительно и которые нередко просто оскорбляют здравый смысл».

Еще подростком Вирт страстно увлекался конструированием радиоуправляемых моделей самолетов. Это привело к тому, что в 1963 г. он получил степень бакалавра по электротехнике в Калифорнийском университете.

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

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

«Искусство инженера, - говорил он в другом случае, состоит в том, чтобы делать сложные задачи простыми».

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

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

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

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

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

Успех Паскаля намного превысил скромные ожидания Вирта. Коллеги по обе стороны Атлантического океана приняли его как средство обучения программированию будущих специалистов по информатике.

Возможно, самое важное состояло в том, что Паскаль стал путеводной звездой зарождающегося в то время движения за структурное программирование, которое обрело силу в конце 70-х годов. Оно ставило своей целью пересмотр способа разработки программ, и начало ему было положено публикацией в 1972 г. книги «Структурное программирование» англичанина К.А.Р. Хоара, норвежца О.Дж. Дала и выдающегося голландского специалиста по информатике Эдсгера Дейкстры.

Упор на логику. Хотя эту фразу разные программисты могут понимать совершенно по-разному, однако по существу она характеризует систематический математический подход к созданию программного обеспечения, в частности требует разделения программы на небольшие логически увязанные задачи, как это делается в Паскале.

Одна из специфических целей структурного программирования - уменьшение использования так называемых безусловных переходов, или операторов GOTO.

В большинстве основных языков программирования этот оператор используется для передачи управления из одного места программы в другое, которое может быть расположено достаточно далеко по тексту. Хотя оператор GOTO и удобен при написании программ, но обычно усложняет их чтение, а значит, увеличивает вероятность пропуска возможной ошибки.

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