Мы привыкли считать, что программирование — дитя современного прогресса в области науки и технологии. Но это не совсем так. Первые сложные многоцелевые вычислительные устройства появились еще в XIX веке. Тогда же возникла необходимость в разработке программ для них, и впервые с такой задачей столкнулась легендарная Ада Лавлейс, работавшая с вычислительной машиной Чарльза Бэббиджа, которая называлась «Машина для исчисления разностей» (“Difference Engine"). Но настоящие языки программирования появились всетаки в эпоху электронных вычислительных машин (ЭВМ). Считают, что первый язык программирования — это язык Short Code, появившийся в 1949 году.
Программисты,
работавшие на первых моделях ЭВМ, вынуждены
были программировать в машинных кодах. Для
того чтобы представить, насколько это было
«удобно», приведу фрагмент (примерно одну
десятую часть!) программы, которая выводит
на экран приветствие «Hello, world!»:
457f464c010100010000000000000000000200030001000003d008000034000006980
000000000000034002000050028001600130006000000340000003408000000000000
а0000000а0000000050000000400000003000000d4000000d40800000000000013000
00013000000040000000100000001000000000000000008000000000004f5000004f50
00000050000100000000001000004f8000014f808000000000000c4000000c80000000
600001000000000020000052c0000152c080000000000009000000090000000060000
000400006c2f62696c2f2d64696c756e2e786f73312e00000011000000ll000000000000
000e0000000a000000000000...
Используя
машинные коды, можно добиться максимальной
скорости выполнения программы, но для
этого сначала необходимо разобраться, как
работает центральный процессор того
компьютера, на котором предполагается
запускать программу. Когда-то доступ к
компьютерам получали только избранные,
которые имели достаточно глубокую
подготовку в данной области, однако с
развитием вычислительной техники и
снижением ее стоимости компьютерами стали
пользоваться не только специалисты-электронщики,
но и люди, пришедшие из других областей
человеческой деятельности. Для них важнее
было провести с помощью ЭВМ вычисления и
быстро получить результат, относящийся к
области их интересов, чем постигать
особенности микропроцессорной архитектуры.
В это время и появились первые языки
программирования высокого уровня, которые
были гораздо понятнее человеку, чем
машинные коды.
Первыми
языками программирования высокого уровня
были Фортран, Кобол и Алгол, появившиеся в
50-е годы XX века. Первые два из них «здравствуют»
и поныне — это языки-долгожители, а Алгол
стал родоначальником целого семейства
языков, в числе которых и Паскаль. В
настоящее время насчитывается несколько
тысяч языков программирования, большая
часть из которых имеет довольно узкую
специализацию. Говорят, что, как только
появился второй язык программирования,
начались бурные споры о том, какой язык
лучше! Эти споры идут и поныне, принимая
иногда характер религиозных войн древности.
На рис. 0.1 схематически
представлена история создания языков
программирования.
Рис. 0.1. История
создания языков программирования
Особое место среди языков программирования занимает АЛГОЛ, первая версия которого появилась в 1958 году. Одним из разработчиков АЛГОЛа был «отец» ФОРТРАНа Джон Бэкус. Название языка ALGorithmic Language подчеркивает то обстоятельство, что он предназначен для записи алгоритмов. Благодаря четкой логической структуре АЛГОЛ стал стандартным средством записи алгоритмов в научной и технической литературе. Последующими версиями языка стали АЛГОЛ 60 и АЛГОЛ 68. АЛГОЛ 68 оказался излишне громоздким, что создавало большие трудности в его реализации. Один из членов комитета, занимавшегося разработкой спецификации, — швейцарский ученый Никлаус Вирт — протестовал против ее принятия. Он оказался прав — АЛГОЛ 68 стал «лебединой песней» некогда самого популярного языка программирования, однако АЛГОЛ дал начало целой ветви языков (рис. 0.2).
В 1967 году Вирт создал свою версию — АЛГОЛ W. Это было связано с необходимостью найти такой язык программирования, который можно было бы использовать для обучения студентов методам разработки программ, таким как «программирование сверху вниз», «структурное программирование» и т. д. Вирту не понравился ни один из существовавших в то время языков, и в 1968 году он приступил к разработке своего собственного.
В 1970 году в мире программирования произошли по крайней мере два великих события — появились операционная система UNIX и новый язык программирования. Вирт назвал его в честь великого французского математика и религиозного философа XVII века Блеза Паскаля (рис. 0.3). Паскаль изобрел вычислительное устройство, именно поэтому новому языку было присвоено его имя. Вирт настаивал впоследствии, что название языка должно начинаться с заглавной буквы — как фамилия. Первая версия языка была создана для компьютера CDC 6000.
Благодаря
своей четкости, логичности и другим
особенностям Паскаль надолго занял свою
нишу, являясь прекрасным языком для
обучения программированию. Паскаль
использовался и для разработки серьезных
программ-приложений. Шутили, что Вирт
разработал игрушку, но многие отнеслись к
ней слишком серьезно. В 1975 году вновь два
события стали вехами в истории программирования
— Билл Гейтс и Пол Аллен заявили о себе,
разработав свою версию Бейсика, а Вирт и
Йенсен выпустили классическое описание
языка «Pascal User Manual and Report».
Рис. 0.2. Эволюция
алголоподобных языков
Рис. 0.3. Блез Паскаль и Никлаус Вирт — история и современность
Впоследствии появились различные версии языка и его расширения. Наиболее известным расширением стал пакет Турбо Паскаль фирмы Borland, появившийся в 1983 году и сразу ставший событием в мире компьютерных технологий. Первое упоминание о нем содержалось в рекламе, опубликованной в журнале BYTE, а сам пакет предназначался для операционной системы СР/М. В начале 1984 года он был перенесен в среду MS-DOS и приобрел огромную популярность. С тех пор появилось несколько версий Турбо Паскаля, последняя - седьмая.
Фирма
Borland/Inpnse
завершила линию продуктов Турбо Паскаль и
перешла к выпуску системы визуальной
разработки для Windows — Delphi.
Несмотря на это, Турбо Паскаль сохраняет
свое значение отличного языка для первого
знакомства с миром «серьезного»
программирования. Это связано как с его четкой
логической структурой, так и с теми
возможностями, которые позволяют использовать
Турбо Паскаль для решения разнообразных
задач. Среди них вычисления и обработка
данных, компьютерная графика, работа со
звуком, системное программирование. Турбо
Паскаль позволяет применять приемы
объектно-ориентированного
программирования, которое стало одной из
ведущих современных технологий
программирования.