В компьютерной науке, язык программирования Паскаль является одним из знаковых языков программирования, на котором много поколений студентов ломали свои зубы и разные варианты которого по-прежнему широко используются и сегодня. «TeX» и большая часть исходной операционной системы «Macintosh» были написаны на языке программирования Паскаль.
Программирование для начинающих. Никлаус Вирт разработал его в 1970 году для структурного программирования, который бы легчо компилировался. Язык программирования Pascal основан на языке программирования Алгол и назван в честь математика и философа Блеза Паскаля, первопроходца в мире основ программирования. Вирт разработал Modula-2 и Оберон, похожие на языки Паскаль, но которые начали поддерживать объектно-ориентированное программирование. .
Базовый синтаксис Типичный пример синтаксиса языка программирования Pascal можно посмотреть на программе «Привет, мир».
PROGRAM HelloWorld; BEGIN WriteLn ('Здравствуй, мир!'); END.
Все программы начинаются с ключевоого слова «PROGRAM» , а блок кода обозначается ключевыми словами «BEGIN» / «END» . Регистр букв (сточные или прописные) не учитывается в языке Pascal. . Точка с запятой отделяют логические выражения, а «END.» с точкой в конце завершает блок главной программы. Для некоторых компиляторов ключевок слово PROGRAM является необязательным. Программирование для чайников.
Паскаль, в его первоначальной форме, является чисто процедурным языком со стандартным набором составных операторов if, while, for и связанных с ними конструкций.
Pascal и C
Паскаль был разработан примерно в то же время, как С, поэтому присутствуют важные сходства между ними. Оригинальный Pascal и C небольшие по размеру, процедурные языки, в которых реализована концепция структурного программирования. Оба имеют функциональные возможности для динамического распределения памяти и некоторые инструкции для манипуляции с указателями. Но эти языки совершенно разные по внешнему виду, и Си выглядит более лаконичным. .
Огромным отличием является оператор присваивания, который является источником священной войны: Pascal использует «:=» для присваивания, а «=» используется для сравнения. Это контрастирует с использованием в Си x = y для присваивания и «==» для сравнения. Поскольку символ «=» используется в математике и для сравнения и для присваивания, то разработчик Pascal решил, что лучше использовать «:=» для присваивания, поскольку все таки математикам привычнее видеть знак равенства (=) как символ сравнения.
Разработчик Си утверждал, что оператор присваивания гораздо чаще используется, чем сравнение, поэтому она должна иметь короткий символ. На это сторонники Pascal парируют тем, что очень часто при использовании сравнения в условных выражениях программисты ошибочно пишут знак равенства для сравнения.
Эта дискуссия отражает различия в дизайне философии двух языках. Паскаль был разработан в качестве учебного языка. В Паскале очень редки ошибки составных операторов, а также синтаксис сделан интуитивно понятным. Авторы Си уделяли больше внимания краткости.
Еще одной важной разницей является то, что Паскаль является строго типизированным. Это означает, что все переменные должны быть определены в начале программы с указанием типа данных, прежде чем они могут быть использованы. Кроме того, несовместимых по типу данных переменные должны явно приводиться к необходимому типу данных. Это предотвращает типичные ошибки, где переменные используются неправильно, потому что тип неизвестен. Это также снимает необходимость венгерской нотации — практика указания первой буквой переменной начальной буквы типа данных.
В отличие от C, Pascal позволяет определять переменные в любом месте кода. В своем первоначальном виде, Паскалю не хватало механизма для отдельной компиляции или для обработки массивов с размером неизвестным на стадии компиляции, но уже через пару версий языка были устранены эти проблемы.
Реализации
Ранние подходы (в первую очередь UCSD p-System) переводили Pascal код в машинно-независимый представление p-код. Это промежуточный код затем интерпретировался программой в специфичный для каждой архитектуры. Как следствие, только малая часть транслятора была перенесена на многие архитектуры.
В 1980-х годов Андерс Хейлсбергом пишет Blue Label Pascal компилятор для Nascom-2. Позже он перешел на работу в Borland и переписал свой компилятор, чтобы тот стал Turbo Pascal для IBM PC. Это новый компилятор был продан за 49 долларов, что было гораздо меньше, чем первоначальная цена, которую просил Хейлсберг за компилятор Blue Label Pascal.
Недорогой компилятор Borland имел большое влияние на сообщество Паскаля, которое начало свое существование в основном на IBM PC, в конце 1980 года. Многие любители ПК в поисках замены для структурированного BASIC использовали именно этот продукт. Turbo Pascal, будучи доступным только для одной архитектуры, была переведена непосредственно на Intel 8088 в машинный код, что сделало его гораздо быстрее, чем схема, когда Паскаль был интерпретируемых языком.
В 1990-х годах компиляторы, которые могут быть перенесены на различные аппаратные архитектуры стали более распространенными. Это позволило Pascal перевести на машинный код, который был в то же время легко переносимым на новое оборудование.
С Turbo Pascal версии 5 Borland добавила объектно-ориентированный подход в Pascal.
Однако, Borland позже решил, что хочет более сложных объектно-ориентированного программирования, и началась работа над Delphi с использованием Object Pascal стандарта, предложенного Apple в качестве основы. (Этот проект Apple не был формальным стандартом в то время.)Компания Borland также назвала этот язык Object Pascal в первой версии Delphi, но изменила название на язык программирования Delphi в более поздних версиях. Основные изменения по сравнению с первыми версиями были объектная модель на основе указателей, виртуальные конструкторы и деструкторы, и свойства.
Публично доступные компиляторы
Несколько компиляторов Паскаля доступны для использования широкой общественности:
- GNU Pascal Compiler (GPC) является дополнительным интерфейсом к GNU Compiler Collection (GCC), и написана на Си. свободно распространяется под лицензией GNU General Public License. Хотя поддержка Turbo Pascal (Borland) несколько ограничена.
- FreePascal написан на языке Паскаль (так что он компилирует сам), и направлен на обеспечение удобным и мощным компилятором, пригодного для компиляции старых приложений и вместе с этим быть средством разработки новых приложений. Также свободно распространяется под лицензией GNU GPL. Он может смешивать Turbo Pascal с кодом Delphi, а также поддерживает много платформ и операционных систем.
- Turbo Pascal был доминирующим компилятором Pascal для персональных компьютеров в течение 80-х и начале 90-х, популярный как в силу своего мощного расширения и крайне малого времени компиляции. В настоящее время старые версии Turbo Pascal (до 5,5) доступны для свободного скачивания с сайта компании Borland (требуется регистрация).
- Delphi является флагманских RAD (Rapid Application Development) продуктом от Borland. Он использует язык программирования Delphi, может работать с Паскалем, разработан для создания приложений для платформы Windows. Последняя версия также поддерживает компиляцию в. NET платформы.
- Kylix это реинкарнация компанией Borland своей продукции Паскаль. Он является потомком Delphi, с поддержкой операционной системы Linux и улучшенной библиотекой объектов. Компилятор и IDE теперь доступны для некоммерческого использования. Сам компилятор (но библиотеки или IDE) должен стать ПО с открытым исходным кодом в скором времени.
Критика из прошлого
Несмотря на популярность (пик которой пришелся на 1980-х и начале 1990-х), в ранних версиях Pascal подвергся широкой критике за то, что не подходит для «серьезного» использования за пределами обучения. Брайан Керниган, один из создателей языка программирования Си, изложил свою наиболее заметную критику Паскаля еще в 1981 году, в своей статье «Почему Паскаль не мой любимый язык программирования». С этого времени Pascal начинает изменяться, и большинство из тех пунктов, которые критиковались, не относятся к текущей реализации.
Многие неосведомленные люди до сих пор продолжают верить, что Паскаль не для «серьезного» программирования и не понимают выгоды, которые предлагает этот язык в данный момент. Это клеймо давит на Pascal больше, чем какой-либо реальный недостаток.