Читаем Код. Тайный язык информатики полностью

В середине 1960-х IBM в связи со своим проектом System/360 разработала язык под названием ПЛ/1 (PL/I, Programming Language I, «язык программирования номер один»). Цель его создания — объединить блочную структуру АЛГОЛа, математические функции ФОРТРАНа и средства КОБОЛа для работы с записями. Однако этот язык так никогда и не достиг популярности ФОРТРАНа и КОБОЛа.

Несмотря на существование версий ФОРТРАНа, АЛГОЛа, КОБОЛа и ПЛ/1 для домашних компьютеров, главным языком для них стал БЕЙСИК.

Язык БЕЙСИК (BASIC, Beginner’s All-purpose Symbolic Instruction Code, «универсальный код символических инструкций для начинающих») был придуман в 1964 году профессорами математического факультета Дартмутского университета Джоном Кемени и Томасом Курцем для работы с университетской системой распределения времени. Большинство студентов Дартмута не были математиками или инженерами, поэтому никто не ожидал, что они будут возиться с перфокартами и сложным синтаксисом. Вместо этого студент, сидя перед терминалом, мог написать простую программу, просто набрав команды, которым предшествовали числа, обозначающие их порядок. Команды, не сопровождающиеся числами, предназначались для системы: SAVE (сохранить на диске), LIST (отобразить строки по порядку), RUN (скомпилировать и запустить). Вот первая программа на языке БЕЙСИК, опубликованная в первом печатном руководстве.

10 LET X = (7 + 8) / 3

20 PRINT X

30 END

В отличие от АЛГОЛа язык БЕЙСИК не требовал указывать тип переменной. Большинство чисел сохранялись в виде значений с плавающей точкой.

Многие последующие реализации языка БЕЙСИК имели форму интерпретаторов, а не компиляторов. Как я объяснял, компилятор читает файл с исходным кодом и создает исполняемый файл. Интерпретатор читает исходный код и сразу выполняет его, не создавая исполняемого файла. По сравнению с компиляторами интерпретаторы легче писать, однако интерпретируемая программа выполняется медленнее, чем скомпилированная. На домашних компьютерах язык БЕЙСИК начал использоваться в 1975 году, когда два приятеля, Билл Гейтс (род. 1955) и Пол Аллен (род. 1953), написали интерпретатор языка БЕЙСИК для микрокомпьютера Altair 8800 и основали корпорацию Microsoft.

Язык программирования Паскаль (Pascal), который унаследовал большую часть своей структуры от АЛГОЛа, но включал функции обработки записей КОБОЛа, был разработан в конце 1960-х годов швейцарским профессором информатики Никлаусом Виртом (род. 1934). Язык Паскаль был довольно популярен среди программистов, работавших на компьютере IBM PC, но лишь в специфической реализации — Turbo Pascal, выпущенной компанией Borland International в 1983 году. Реализация Turbo Pascal, написанная датским студентом Андерсом Хейлсбергом (род. 1960), представляла версию, дополненную интегрированной средой разработки (Integrated Development Environment, IDE). Текстовый редактор и компилятор были объединены в одну программу, что значительно ускорило процесс программирования. Интегрированные среды разработки широко использовались на мейнфреймах, а среда Turbo Pascal ознаменовала начало их применения на небольших компьютерах.

Паскаль также серьезно повлиял на язык Ада (Ada), созданный для министерства обороны США. Язык был назван в честь Августы Ады Байрон, о которой я упоминал в главе 18, когда описывал аналитическую машину Чарльза Бэббиджа.

Затем появился очень популярный язык C (Си), созданием которого в период c 1969 по 1973 год в основном занимался Деннис Ритчи из Bell Telephone Laboratories. Часто спрашивают, почему язык называется С. Все просто: он был написан на основе более раннего языка B — упрощенной версии BCPL (Basic CPL), предшественником которого являлся CPL (Combined Programming Language, «комбинированный язык программирования»).

В главе 22 я упоминал, что операционная система UNIX задумывалась как переносимая. Большинство операционных систем в то время были разработаны на языке ассемблера для конкретного процессора. В 1973 году UNIX была написана (вернее, переписана) на языке C, и с тех пор эта система и этот язык тесно связаны.

Как правило, в языке C операторы записываются весьма кратко. Например, вместо ключевых слов begin и end, используемых в АЛГОЛе и Паскале для разграничения блоков, в C применяются фигурные скобки { и }. Вот еще один пример. Программисту часто требуется увеличить значение переменной на некую постоянную величину.

i = i + 5;

В C вы можете сократить этот оператор.

i + = 5;

Если вам нужно увеличить значение переменной на 1 (инкрементировать ее), данный оператор можно записать еще короче.

i++;

Такой оператор на 16- или 32-разрядном микропроцессоре может выполняться с помощью одной машинной инструкции.

Перейти на страницу:

Похожие книги