История языка паскаль кратко
© Оригинальный текст представляет собой часть документации системы BlackBox Component Builder v.1.4 компании Oberon microsystems.
© Перевод на русский язык: Ф.В.Ткачёв, 2001. Замечания переводчика даны в угловых скобках <>. Некоторые термины оригинала приведены в квадратных скобках [].
Алгол
Язык Компонентный Паскаль является кульминацией нескольких десятилетий исследовательской работы. Это самый младший член семейства алголоподобных языков. Алгол, определенный в 1960, был первым языком высокого уровня с синтаксисом, который был легко читаем, четко структурирован и описан формальным образом. Несмотря на его успешное использование в качестве нотации для математичесих алгоритмов, в нем недоставало важных типов данный, таких как указатели и литеры.
Паскаль
В конце 60-х гг. было выдвинуто несколько предложений об эволюционном развитии Алгола. Самым успешным оказался Паскаль, определенный в 1970 г. профессором Никлаусом Виртом из ETH, швейцарского Федерального Технологического Института в Цюрихе [Eidgenossische Technische Hochschule]. Наряду с очищением языка от некоторых непрозрачных средств Алгола, в Паскале была добавлена возможность объявления новых структур данных, построенных из уже существующих более простых. Паскаль также поддерживал динамические структуры данных, т.е. такие, которые могут расти или уменьшаться во время выполнения программы. Паскаль получил сильный импульс к распространению, когда в ETH был выпущен компилятор, порождавший простой промежуточный код для виртуальной машины (P-код) вместо кода для конкретного процессора. Это существенно упростило перенос Паскаля на другие процессорные архитектуры, т.к. для этого нужно было только написать новый интерпретатор для P-кода вместо всего нового компилятора. Один из таких проектов был предпринят в Университете Калифорнии в Сан-Диего. Замечательно, что эта реализация (UCSD Pascal) не требовала большого компьютера [mainframe] и могла работать на новых тогда персональных компьютерах Apple II. Это дало распространению Паскаля второй важный импульс. Третьим был выпуск компанией Borland продукта ТурбоПаскаль, содержавшего быстрый и недорогой компилятор вместе с интегрированной средой разработки программ для компьютеров IBM PC. Позднее Борланд возродил свою версию Паскаля, выпустив среду быстрой разработки приложений Дельфи.
Паскаль сильно повлиял на дизайн и эволюцию многих других языков, от Ады до Visual Basic.
Модула-2
В середине 70-х гг., вдохновленный годичным академическим отпуском, проведенным в исследовательском центре PARC компании Xerox в Пало Альто, Вирт начал проект по созданию нового компьютера класса рабочая станция . Компьютер должен был полностью программироваться на языке высокого уровня, так что язык должен был обеспечить прямой доступ к аппаратному уровню. Далее, он должен был поддерживать коллективное программирование и современные принципы разработки программного обеспечения, такие как абстрактные типы данных. Эти требования были реализованы в языке программирования Модула-2 (1979). Модула-2 сохранила хорошо зарекомендовавшие себя средства Паскаля и добавила систему модулей, а также контролируемые возможности обойти систему типов языка для целей программирования низкого уровня (например, при написании драйверов). Модули могли добавляться к операционной системе непосредственно во время работы. На самом деле вся операционная система представляла собой набор модулей без выделенного ядра [kernel] или подобного объекта. Модули могли компилироваться и загружаться раздельно, причем обеспечивалась полная проверка типов и версий их интерфейсов.
Успех Модулы-2 был наиболее значителен в задачах с высокими требованиями на надежность, таких как системы управления движением.
Simula, Smalltalk и Cedar
Однако Вирт продолжал интересоваться прежде всего настольными компьютерами, и опять важный импульс пришел из центра PARC компании Xerox. В этом центре были изобретены рабочая станция, лазерный принтер, локальная сеть, графический дисплей и многие другие технологии, расширяющие возможности использования компьютеров человеком. Кроме того, в центре PARC были популяризированы некоторые более старые и малоизвестные технологии, такие как мышь, интерактивная графика и, наконец, объектно ориентированное программирование. Эта последняя концепция (хотя и не сам термин) была впервые использована в языке высокого уровня Simula (1966) — еще одним из семейства алголоподобных языков. Как и предполагает имя, язык Simula использовал объектные технологии прежде всего для целей моделирования [simulation]. Однако язык Smalltalk (1983), разработанный в центре PARC компании Xerox, использовал объектные технологии как универсальное средство. Проект Smalltalk был также пионерским в плане дизайна пользовательского интерфейса: графический пользовательский интерфейс, каким мы его теперь знаем, был разработан для системы Smalltalk.
В центре PARC эти идеи повлияли на другие проекты, например, паскалеподобный язык Cedar. Как и Smalltalk и позднее Оберон, Cedar представлял собой не только язык программирования, но и операционную систему. Операционная система Cedar была весьма впечатляющей и мощной, однако сложной и нестабильной.
Оберон [Oberon]
Проект Оберон был начат в 1985 в ETH Виртом и его коллегой Юргом Гуткнехтом [Jurg Gutknecht]. Это была попытка выделить все существенное из системы Cedar в виде универсальной, но все же обозримой операционной системы для рабочих станций. Получившаяся система оказалась очень маленькой и эффективной, прекрасно работала в оперативной памяти размером всего 2 MB и требовала при этом лишь 10 MB пространства на диске. Важной причиной малого размера системы Оберон был ее компонентный дизайн: вместо интеграции всех желаемых средств в один монолитный программный колосс, менее часто используемые программные компоненты (модули) могли быть реализованы как расширение ядра системы. Такие компоненты загружались, только когда они были действительно нужны, и они могли совместно использоваться всеми приложениями.
Вирт понял, что компонентно-ориентированне программирование требовало некоторых средств объектно-ориентированного программирования, таких как упрятывание информации [information hiding], позднее связывание [late binding] и полиморфизм [polymorphism].
Упрятывание информации было сильной чертой Модулы-2. Позднее связывание поддерживалось в Модуле-2 посредством процедурных переменных. Однако там не было полиморфизма. По этой причине Вирт добавил расширенное переопределение типов [type extension]: тип записей мог быть объявлен как расширение другого типа записей . Тип-потомок можно было использовать всюду вместо его предков.
Но компонентно-ориентированное программирование выходит за рамки объектно-ориентированного. В системе, построенной из компонент, компонента может разделять свои структуры данных с произвольным числом других компонент, о которых она ничего не знает. Эти компоненты обычно также не знают о существовании друг друга. Такое взаимное незнание делает управление динамическими структурами данных, и в частности правильное освобождение уже ненужной памяти, принципиально более трудной проблемой, чем в закрытых программных системах. Следовательно, необходимо оставить на долю реализации языка всю работу по определению момента, когда какая-то область памяти более не нужна, чтобы повторно использовать ее без ущерба для безопасности системы. Системный сервис, выполняющий такую автоматическую утилизацию памяти, называется сборщик мусора [garbage collector]. Сбор мусора предотвращает две из числа наиболее труднонаходимых и попросту опасных ошибок в программах: утечки памяти [memory leaks] (когда более не используемая память не освобождается) и висячие ссылки [dangling pointers] (преждевременное освобождение памяти). Висячие ссылки позволяют одной компоненте разрушить структуры данных, принадлежащие другим. Такое нарушение защиты по типам [type safety] должно быть предотвращено, т.к. компонентные системы могут содержать много независимо написанных компонент неизвестного качества (например, полученных из Интернета).
Хотя алголоподобные языки всегда имели высокую репутацию в отношении безопасности, введение полной защиты типов (и, следовательно, сбора мусора) было квантовым прыжком. Именно по этой причине полная совместимость с Модулой-2 оказалась невозможной. Получившаяся модификация Модулы-2 была названа как и вся система — Оберон.
Система модулей в Обероне, как и в Модуле-2, обеспечивала упрятывание информации для целых семейств типов, а не только для отдельных объектов. Это позволило определять и гарантировать инварианты для нескольких взаимодействующих объектов. Другими словами, разработчики получили возможность разрабатывать механизмы защиты более высокого уровня, отталкиваясь от базовых средств защиты на уровне модулей [module safety] и защиты по типам, обеспечиваемых хорошей реализацией Оберона.
Такие ортодоксальные объектно-ориентированные языка, как Smalltalk, пренебрегали как типизацией переменных (там вообще нет понятия тип переменной), так и упрятыванием информации (ограничивая ее объектами и классами), что было большим шагом назад в технологии программирования. Оберон примирил миры объектно-ориентированного и модульного программирования.
Последнее требование компонентно-ориентированного программирования — возможность динамически загружать новые компоненты. В Обероне единица загрузки та же, что и единица компиляции — модуль.
Компонентный Паскаль
В 1992 г. сотрудничество с профессором Х.П. Мёссенбёком (H.P. Mo:ssenbo:ck) привело к нескольким добавлениям к первоначальному языку Оберон («Оберон-2»). Так возник фактический стандарт языка.
В 1997 г. компания Oberon microsystems, Inc., отпочковавшаяся [spin-off] от ETH (с Виртом в составе совета директоров), сделала некоторые небольшие добавления к Оберону-2 и назвала его Компонентный Паскаль, чтобы четче выразить как его нацеленность (компонентно-ориентированное программирование), так и его происхождение (Паскаль). Это промышленная версия Оберона, являющаяся наследницей первоначального Паскаля и Модулы-2.
Главная идея уточнений по сравнению с Обероном-2 была в том, чтобы дать проектировщику компонентного каркаса [component framework] (т.е. интерфейсов модулей, определяющих абстрактные классы для конкретной проблемной области) более полный контроль над ее проектируемыми свойствами в плане безопасности. Положительным результатом стало то, что теперь легче обеспечить целостность больших компонентных систем, что особенно важно во время итеративных циклов проектирования, когда библитека разрабатывается, и позднее, когда архитектура системы должна быть переработана, чтобы обеспечить дальнейшую эволюцию и поддержку.
BlackBox
Компания Oberon microsystems разрабатывала компонентную библиотеку BlackBox Component Framework начиная с 1992 г. (сначала библиотека называлась Oberon/F). Эта библиотека написана на Компонентном Паскале и упрощает разработку компонент графического пользовательского интерфейса. Она поставляется с несколькими компонентами, включая текстовый редактор, систему визуального проектирования, средство доступа к базам данных SQL, интегрированную среду разработки, а также систему поддержки выполнения программ на Компонентном Паскале. Весь пакет представляет собой развитый, но весьма нетребовательный к системным ресурсам инструмент быстрой разработки компонентных приложений, названный BlackBox Component Builder. Он нетребователен к системным ресурсам, т.к. полностью построен из модулей Компонентного Паскаля — включая ядро со сборщиком мусора, а также самого компилятора для языка Компонентный Паскаль. Это — иллюстрация как мощи концепции компонентного программного обеспечения вообще, так и адекватности языка Компонентный Паскаль в частности.
Недавно диапазон приложений системы BlackBox Component Builder был значительно расширен за счет среды кросс-программирования Denia, которая является компонентой, расширающей BlackBox. Denia позволяет выполнять кросс-программирование на Компонентном Паскале для новой операционной системы реального времени JBed, которая тоже полностью реализована на Компонентном Паскале. JBed предназначен для встроенных систем и приложений с жесткими требованиями реального времени [hard real-time requirements], например, в робототехнике и промышленной автоматизации.
История языка Паскаль
Приведем несколько заметок из истории языка программирования Паскаль (Pascal). Прочтя данную статью, вы узнаете, какими этапами проходила история языка Паскаль.
Само названия языка — «Паскаль» — возникло в честь одного из великих французских математиков и физиков Блеза Паскаля (1623-1662). Немного из истории жизни французского мыслителя. Блез Паскаль родился в семье известного математика Этьена Паскаля.
Отличительная черта всех его родных — необыкновенная одаренность. У него было две сестры: у старшей сестры Жильберты были в большей степени развиты математические способности и литературный талант, а у младшей сестры Жаклины — артистический дар. Свое детство Блез Паскаль провел в Париже, школу никогда не посещал.
Единственный учитель, которого Паскаль признавал, был его отец Этьен. В четырехлетнем возрасте Блез уже умел читать и писать, начал интересоваться эвклидовой геометрией, а в 15 лет уже на равных мог обсуждать с известными на тот момент парижскими учеными сложнейшие математические задачи. Из юноши Паскаля вырастал гениальный математик.
Одним из известных изобретений Блеза Паскаля стал арифмометр (паскалево колесо), который производил все арифметические действия. Он представлял собой латунный ящик с интересным механизмом (рис. ниже).
Этот арифмометр прославил Блеза Паскаля во всех западных странах. Толпы народов со старого света направлялись в Люксембургский дворец (Париж), чтобы лицезреть это уникальное приспособление того времени.
История языка Паскаль продолжается, и в 50-е годы XX века появились первые языки программирования высокого уровня: ФОРТРАН, КОБОЛ и АЛГОЛ. ФОРТРАН и КОБОЛ они существуют и по сей день, а вот АЛГОЛ как раз и стал родоначальником языка программирования Паскаль.
Первая версия АЛГОЛа появилась в 1958 году, разработчиком которого был создатель ФОРТРАНа Джон Бэкус. Последующими версиями языка АЛГОЛ стали АЛГОЛ-60 и АЛГОЛ-68. Однако из-за громоздкости языков АЛГОЛ-60 и АЛГОЛ-68 создавались большие трудности.
Поэтому в 1965 году Международная федерация по обработке информации предложила проект нескольким специалистам ЭВМ. Необходимо было создать новый язык программирования — преемник АЛГОЛа-60.
В этом проекте и принял участие будущий создатель языка программирования Паскаль — Николас Вирт, швейцарский ученый, на тот момент доцент факультета информатики Стэнфордского университета.
Николас Вирт начал разрабатывать проект АЛГОЛ-W. Целью проекта было обучение студентов различным методам: «структурное программирование», «программирование сверху вниз» и др. В 1970 году произошли два великих события:
- появление операционной системы UNIX
- появление нового языка программирования.
Николас Вирт назвал новый язык программирования в честь французского математика XVII века Блеза Паскаля, поскольку Паскаль создал вычислительное устройство (паскалево колесо). Первая версия нового языка программирования вышла на компьютере CDC 6000.
Успех языка Паскаль:
Выдающийся успех языка Паскаль обусловлен рядом причин:
- Язык в естественной форме отразил самые важные современные концепции технологии разработки программ.
- Именно благодаря своей компактности, целостности и ортогональности понятий, язык программирования Паскаль оказался весьма легок для изучения и освоения.
- Несмотря на кажущуюся простоту языка, он оказался пригодным для достаточно широкого спектра приложений, для разработки очень больших и сложных программ, даже операционных систем.
- Паскаль весьма технологичен для реализации почти для всех (в том числе нетрадиционных) машинных текстур. Существует интересное сравнение: разработка Паскаль-транслятора почти не превышает по трудоемкости хорошую дипломную работу выпускника вуза.
Итак, Вы увидели, как протекала история языка Паскаль. Заинтересовала статья?! По своей простоте и отсутствию громоздкости, основы языка программирования Паскаль могут постигать как учащиеся высших учебных заведений, так и обычные школьники. Программирование на языке Паскаль — увлекательное занятие. Программируйте и наслаждайтесь!
История языка Паскаль. Способы описания языка программирования. Введение в язык программирования Паскаль
История языка Паскаль. Способы описания языка программирования. Введение в язык программирования Паскаль.. 1
1. История языка Паскаль.. 1
2. Понятия синтаксиса, семантики и прагматики языка программирования.. 3
3. Алфавит языка Паскаль и основные лексемы. 5
Алфавит языка Паскаль.. 5
Правила построения основных видов лексем. 6
4. Структура программы и ее синтаксис.. 10
Синтаксические диаграммы Вирта и структура программы. 10
Раздел описаний.. 12
Раздел описания меток. 13
Раздел описания констант.. 14
Раздел описания переменных. 15
5. Литература.. 16
История языка Паскаль. Способы описания языка программирования. Введение в язык программирования Паскаль
1. История языка Паскаль
Паскаль – язык программирования, созданный в 70-х годах швейцарским профессором Николаусом Виртом специально для обучения программированию. Им же был написан ряд книг [1], [2], [3], в которых подробно рассматриваются возможности этого языка и его применение для решения многих «классических» в области программирования задач. Название языку было дано в честь выдающегося французского математика Блеза Паскаля.
Язык Паскаль характеризуется чёткой структурой программы, простотой и ясностью конструкций. С момента создания Паскаль был универсален и пригоден для решения широкого круга задач. Строгая типизация языка значительно сокращает количество ошибок в программах.
Существует три стандарта языка:
1. Нерасширенный Паскаль (Unextended Pascal) был разработан в 1983 году и практически полностью совпадает с описанием языка по Вирту.
2. Расширенный Паскаль (Extended Pascal) содержит расширения, затрагивающие модульное программирование (отдельная компиляция модулей, импорт-экспорт подпрограмм, интерфейсная часть и реализация) и дополнен рядом процедур и функций (прямой доступ к файлам, работа со строками и др.).
3. Объектный Паскаль (Object Pascal) принят в 1993 г. Он поддерживает классы, обладающие свойствами и методами, наследование классов, переопределение методов у потомков (полиморфизм) и другие атрибуты объектно-ориентированного программирования. Начиная со среды разработки Delphi 7.0, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal.
1. Для операционной системы MS-DOS самое большое распространение приобрела реализация языка Паскаль фирмы Borland под названием Turbo Pascal (первая версия языка появилась в 1983 году).
2. Borland Pascal включает в себя более дешёвый и менее мощный Turbo Pascal и, кроме того позволяет создавать программы как под реальный, так и под защищённый 16-битный режим DOS, а так же программы для Windows. В нем открыты исходные тексты системных библиотек и функций времени выполнения.
3. Delphi – интегрированная среда разработки ПО для Microsoft Windows на языке Delphi, созданная первоначально фирмой Borland и на данный момент принадлежащая и разрабатываемая Embarcadero Technologies.
4. Free Pascal – свободно распространяемый компилятор языка программирования Pascal с ориентацией на Object Pascal.
5. Lazarus – свободно распространяемая интегрированная Delphi-подобная среда разработки программного обеспечения для компилятора Free Pascal, предоставляющая возможности кроссплатформенной разработки приложений.
6. PascalABC – система, представляющая собой интерпретатор языка программирования Паскаль с интегрированной оболочкой. Создавалась как учебная среда программирования. Pascal ABC и всех версий является свободно распространяемым программным обеспечением.
Учитывая, что задания практических работ могут выполняться студентами с помощью любой из приведенных систем программирования, мы будем стараться описывать только те возможности языка, которые есть во всех этих системах. Описываемые возможности иногда будут шире стандарта языка Паскаль. Связано это с тем, что существует ряд полезных доработок языка де-факто используемых большинством программистов.
2. Понятия синтаксиса, семантики и прагматики языка программирования
Разработка программы состоит из следующих этапов:
· Создание или редактирование текста программы.
· Компиляция – перевод программы с языка высокого уровня в машинно-ориентированные коды.
· Исполнение откомпилированного файла.
· Тестирование и отладка.
Компиляцию программы выполняет особая программа, называемая компилятором.
· Генерация промежуточного кода.
· Генерация результирующего машинного кода.
В ходе лексического анализа текст программы разбивается на отдельные составляющие – лексемы. При выделении лексем важную роль играет алфавит языка, а также правила построения ее отдельных элементов: имен, комментариев, констант.
В ходе синтаксического анализа проверяется правильность записи операторов в соответствии с правилами языка. Ошибки, выявленные компилятором во время лексического и синтаксического анализа, называются синтаксическими ошибками.
Семантика языка программирования – это система правил определения поведения отдельных языковых конструкций. Семантика определяет смысловое значение предложений языка. Не все семантические ошибки могут быть выявлены компилятором. Например, запись выражения в виде a/b*c не вызовет ошибки, хотя и является неправильной, исходя из приоритета выполнения операций. В ходе семантического анализа компилятор проверяет соответствие типов и допустимость операндов в операторах. Так попытка изменить значение константы, которая по определению является неизменяемым значением, приведет к семантической ошибке. Использование типа данных, недопустимого в данной конструкции, или несоответствие типов формальных и фактических параметров процедуры или функции, так же является семантической ошибкой.
При описании языков программирования большое внимание уделяется описанию синтаксиса и семантики, но знание только синтаксиса и семантики не сделает из человека программиста, он кроме этого должен знать прагматику языка. Прагматика языка программирования – это, по сути дела, методология программирования, т. е. описание методов и приемов, позволяющих, исходя из постановки задачи, составить программу ее решения. Описание прагматики языка программирования осложняется тем, что некоторые задачи, хотя и формулируются крайне просто, не имеют никакого алгоритма для их решения. Такова, например, задача: проверить, является ли любая данная программа семантически правильной. Задачи этого рода называются алгоритмически неразрешимыми.
Из-за существования алгоритмически неразрешимых задач предмет прагматики становится несколько расплывчатым и неопределенным – нельзя в общем случае дать никаких рекомендаций, которые от постановки задачи гарантированно приводили бы к ее решению. Кроме того, из-за разнообразия задач, решаемых с помощью компьютера, те рекомендации, которые могут быть даны, либо носят чересчур общий характер, либо, наоборот, слишком конкретны, относятся к узкому классу задач. Теория программирования, хотя и может гордиться рядом значительных достижений, ориентирована больше на разработчиков алгоритмических языков и программного обеспечения ЭВМ, чем на пользователей. Многие ее рекомендации представляют собой лишь постановки задач, решение которых потребует еще многих лет труда системных программистов, если вообще когда-либо будет достигнуто. Поэтому большую роль в овладении навыками составления программ играет разбор примеров разной степени сложности из разных классов задач.
3. Алфавит языка Паскаль и основные лексемы
Алфавит языка Паскаль
· Латинские буквы прописные и строчные: A…Z, a…z.
· Символы национальных алфавитов, например, русского.
лабы по информатике, егэ
лабораторные работы и задачи по программированию и информатике, егэ по информатике
Выберите интересующие Вас в pascal уроки:
Язык Pascal очень часто используется в сфере образования. Названием служит английское слово Pascal — имя знаменитого математика и философа из Франции — Блеза Паскаля, но с идеологией программирования это никак не связано.
История языка Паскаль
Pascal — это язык программирования, относящийся к структурной парадигме. Паскаль был разработан для обучения школьников и студентов в 70-х годах XX-го века.
Язык Pascal был создан ученым Никлаусом Виртом из Швейцарии, который был специалистом в области информатики и компьютерных наук, а также известным теоретиком в области разработки языков программирования.
Изначально pascal создавался путем переработки Алгол-60. Где-то в 1968 году проект был подготовлен, и разработчики приступили к созданию транслятора, предназначенного для использования на вычислительной машине CDC 6400. В 1971 было анонсировано официальное его описание (Wirth N. The Programming Language Pascal // Acta Informatica. — 1971. Vol1.N1.).
Сам Никлаус Вирт в своих трудах указывает на то, что целью его создания является «построение небольшого и эффективного языка, способствующего хорошему стилю программирования, использующему структурное программирование и структурированные данные».
Особо популярным периодом распространения Паскаля были 1972-1975 года. Удачные на то время характеристики языка Паскаль и его возможности позволили ему не только удостоиться всеобщего признания, но и сделали его основным средством для преподавания дисциплины «Программирование» и для разработки программ. В 1975 году появляется целая ассоциация пользователей Паскаля. Но позднее язык подвергся критике. Ограничения основных конструкций языка pascal оказались слишком строги, и это сильно не понравилось пользователям. В 1977 г. появляется группа по разработке стандарта Pascal. Руководителем группы являлся А.Эддиман (A.M.Addyman). 1 декабря 1983 г. был создан международный стандарт языка, носящий название ИСО 7185.
Изучение паскаля посредством уроков, представленных на сайте, позволит раскрыть достоинства и недостатки Pascal, разобраться как устроена структура программы, изучить основные операторы. Примеры программ и готовые задачи с решением рассчитаны как для начинающих изучение языка Pascal, так и для студентов и школьников.