~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 2DB5045505969181704D460CD98DD7E4__1715872560 ✰
Заголовок документа оригинал.:
✰ Pascal (programming language) - Wikipedia ✰
Заголовок документа перевод.:
✰ Паскаль (язык программирования) — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Pascal_(programming_language) ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/2d/e4/2db5045505969181704d460cd98dd7e4.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/2d/e4/2db5045505969181704d460cd98dd7e4__translat.html ✰
Дата и время сохранения документа:
✰ 11.06.2024 06:07:06 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 16 May 2024, at 18:16 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Паскаль (язык программирования) — Википедия Jump to content

Паскаль (язык программирования)

Из Википедии, бесплатной энциклопедии
Паскаль
Парадигма
Семья Вирт Паскаль
Разработано Никлаус Вирт
Впервые появился 1970 год ; 54 года назад ( 1970 )
Дисциплина набора текста
Объем Лексический
Основные реализации
Диалекты
Под влиянием
Под влиянием

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

Паскаль был разработан на основе языка АЛГОЛ 60 . Вирт участвовал в процессе улучшения языка в рамках разработки ALGOL X и предложил версию под названием ALGOL W. Это не было принято, и процесс ALGOL X застопорился. В 1968 году Вирт решил отказаться от процесса ALGOL X и продолжить усовершенствование ALGOL W, выпустив его под названием Pascal в 1970 году.

Помимо скаляров и массивов Алгола , Паскаль позволяет определять сложные типы данных и строить динамические и рекурсивные структуры данных, такие как списки , деревья и графики . Паскаль имеет строгую типизацию для всех объектов, что означает, что один тип данных не может быть преобразован в другой или интерпретирован как другой без явных преобразований. В отличие от C (и большинства языков семейства C ), Паскаль допускает определения вложенных процедур любого уровня глубины, а также допускает большинство видов определений и объявлений внутри подпрограмм (процедур и функций). Таким образом, программа синтаксически подобна отдельной процедуре или функции. Это похоже на блочную структуру АЛГОЛА 60, но ограничено произвольными блочными операторами и ограничивается только процедурами и функциями.

Паскаль стал очень успешным в 1970-х годах, особенно на растущем рынке миникомпьютеров . Компиляторы также были доступны для многих микрокомпьютеров , когда эта область возникла в конце 1970-х годов. Он широко использовался в качестве языка преподавания на курсах программирования университетского уровня в 1980-х годах, а также использовался в производственных условиях для написания коммерческого программного обеспечения в тот же период. Он был вытеснен языком программирования C в конце 1980-х и начале 1990-х годов, когда системы на базе UNIX стали популярными, и особенно с выпуском C++ .

Производная версия под названием Object Pascal , предназначенная для объектно-ориентированного программирования, была разработана в 1985 году. Она использовалась Apple Computer (для компьютеров Lisa и Macintosh) и Borland в конце 1980-х годов, а затем была преобразована в Delphi на платформе Microsoft Windows . Расширение концепций Паскаля привело к появлению языков Modula-2 и Oberon , разработанных Виртом.

История [ править ]

Предыдущие попытки [ править ]

Большая часть истории разработки компьютерных языков в 1960-е годы восходит к языку АЛГОЛ 60 . АЛГОЛ был разработан в 1950-х годах с явной целью обеспечить возможность четкого описания алгоритмов . Он включал ряд функций структурного программирования , которые до сих пор остаются распространенными в языках.

Вскоре после его появления, в 1962 году Вирт вместе с Хельмутом Вебером начал работать над диссертацией по языку программирования Эйлера . Эйлер был основан на синтаксисе АЛГОЛА и многих концепциях, но не был его производным. Его основной целью было добавление динамических списков и типов, позволяющих использовать его в ролях, аналогичных Lisp . Язык был опубликован в 1965 году.

К этому времени в АЛГОЛе был выявлен ряд проблем, в частности отсутствие стандартизированной строковой системы. Группа, которой было поручено поддерживать язык, начала процесс ALGOL X для выявления улучшений, требуя подачи заявок. Вирт и Тони Хоар представили консервативный набор модификаций, чтобы добавить строки и очистить часть синтаксиса. Они были сочтены слишком незначительными, чтобы их можно было использовать в качестве нового стандарта АЛГОЛ, поэтому Вирт написал компилятор для языка, который получил название АЛГОЛ W.

В дальнейшем усилия по разработке АЛГОЛ X привели к выбору гораздо более сложного языка, АЛГОЛ 68 . Сложность этого языка привела к значительным трудностям при создании высокопроизводительных компиляторов, и он не получил широкого распространения в отрасли. Это открыло путь для новых языков.

Паскаль [ править ]

На Паскаль повлияли усилия ALGOL W с явными целями структурированного обучения программированию и разработки системного программного обеспечения. [4] Поколение студентов использовало Паскаль в качестве вводного языка на курсах бакалавриата.

Одним из первых успехов языка было появление UCSD Pascal , версии, работающей на специальной операционной системе , которую можно было портировать на разные платформы. Ключевой платформой был Apple II , где он получил широкое распространение как Apple Pascal . Это привело к тому, что Паскаль стал основным языком высокого уровня, используемым для разработки в Apple Lisa , а затем и в Macintosh . Части исходной операционной системы Macintosh были вручную переведены на Motorola 68000 язык ассемблера Pascal из исходного кода . [5]

Система набора текста TeX Дональда Кнута была написана в WEB , оригинальной системе грамотного программирования , основанной на DEC PDP-10 Pascal. Успешные коммерческие приложения, такие как Adobe Photoshop. [6] были написаны на Macintosh Programmer's Workshop Pascal, а такие приложения, как Total Commander , Skype [7] и Macromedia Captivate были написаны на Delphi ( Object Pascal ). Apollo Computer использовала Паскаль в качестве языка системного программирования для своих операционных систем, начиная с 1980 года.

Варианты Паскаля также использовались для самых разных целей: от исследовательских проектов до компьютерных игр и встроенных систем . Существуют более новые компиляторы Паскаля, которые широко используются. [8]

Диалекты [ править ]

Пример компилятора Вирта, предназначенного для распространения языка, системы Pascal-P, использовал подмножество языка, разработанное как минимальное подмножество языка, которое могло скомпилировать себя. Идея заключалась в том, что это могло бы позволить запустить компилятор, который затем был бы расширен до полного статуса языка Паскаль. Это было сделано с помощью нескольких компиляторов, но одним заметным исключением был UCSD Pascal, основанный на Pascal-P2. Он сохранил статус подмножества языка, основываясь на идее, что он будет лучше работать на новых (тогда) микропроцессорах с ограниченной памятью. UCSD также преобразовал интерпретатор Pascal-P2 в «байтовую машину», опять же, потому что он лучше подходил для байт-ориентированных микропроцессоров.

UCSD Pascal лег в основу многих систем, включая Apple Pascal. Borland Pascal не был основан на кодовой базе UCSD, но появился в период популярности UCSD и соответствовал многим его функциям. Это положило начало линии, закончившейся Delphi Pascal и его бесплатной версией FPC.

Стандарт ISO для Паскаля, ISO 7185, был опубликован в 1983 году и широко внедрен и использовался на мейнфреймах, мини-компьютерах и IBM-PC, а также на совместимых устройствах с 16-битными до 32-битных версий. Двумя диалектами Паскаля, которые наиболее широко использовались с конца 20-го века и до сегодняшнего дня, являются стандартная версия ISO 7185 и версии Delphi/Turbo Pascal (из которых две версии Borland в основном совместимы друг с другом).

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

Информационные бюллетени группы пользователей Pascal .

Объект Паскаль [ править ]

Во время работы над Lisa Ларри Теслер начал переписываться с Виртом по поводу идеи добавления к языку объектно-ориентированных расширений, чтобы сделать Паскаль мультипарадигмальным языком программирования . Первоначально это привело к Clascal , представленному в 1983 году. Когда программа Lisa исчезла и была заменена Macintosh, была создана дополнительная версия, получившая название Object Pascal . Он был представлен на Mac в 1985 году как часть MacApp платформы приложений и стал основным языком разработки Apple в начале 1990-х годов.

Расширения Object Pascal были добавлены в Turbo Pascal с выпуском версии 5.5 в 1989 году. [9] С течением времени Object Pascal стал основой системы Delphi для Microsoft Windows , которая до сих пор используется для разработки приложений Windows и может выполнять кросс-компиляцию кода для других систем. Free Pascal — это кроссплатформенная альтернатива с открытым исходным кодом и собственной графической IDE под названием Lazarus .

Реализации [ править ]

компиляторы Паскаля Ранние

Первый компилятор Паскаля был разработан в Цюрихе для серии CDC 6000 семейства мейнфреймов . Никлаус Вирт сообщает, что первая попытка реализовать его на FORTRAN 66 в 1969 году оказалась неудачной из-за неспособности FORTRAN 66 выражать сложные структуры данных. Вторая попытка была реализована на C-подобном языке (Scallop Макса Энгели), а затем переведена вручную (Р. Шильдом) в сам Паскаль для начальной загрузки. [10] К середине 1970 года он был введен в эксплуатацию. Многие компиляторы Паскаля с тех пор были аналогичным образом самостоятельными , то есть компилятор сам был написан на Паскале, и компилятор обычно способен перекомпилировать себя, когда в язык добавляются новые функции или когда компилятор должен быть перенесен на другой язык. новая среда. на C. Заметным исключением является компилятор GNU Pascal, поскольку он написан

Первый успешный порт компилятора CDC Pascal на другой мэйнфрейм был завершен Уэлшем и Куинном в Королевском университете Белфаста (QUB) в 1972 году. Целью была серия International Computers Limited (ICL) 1900 . Этот компилятор, в свою очередь, был родителем компилятора Pascal для миникомпьютера Information Computer Systems (ICS) Multum . Порт Multum был разработан – с целью использования Паскаля в качестве языка системного программирования – Финдли, Капплсом, Кавурасом и Дэвисом, работавшими на факультете вычислительной техники Университета Глазго . Считается, что Multum Pascal, завершенный летом 1973 года, мог быть первой 16-битной реализацией.

Совершенно новый компилятор был разработан Уэлшем и др. в QUB в 1977 году. Он предлагал функцию диагностики исходного языка (включающую профилирование, отслеживание и форматированные посмертные дампы с учетом типов), которая была реализована Финдли и Ваттом в Университете Глазго. Эта реализация была перенесена в 1980 году на серию ICL 2900 командой из Саутгемптонского университета и Университета Глазго. Реализация стандартной модели Паскаля также была основана на этом компиляторе, адаптированном Уэлшем и Хэем из Манчестерского университета в 1984 году для строгой проверки соответствия стандарту BSI 6192/ISO 7185 и генерации кода для портативной абстрактной машины.

Первый компилятор Паскаля , написанный в Северной Америке, был создан в Университете Иллинойса под руководством Дональда Б. Гиллиса для PDP-11 и генерировал собственный машинный код.

Система Паскаль-П [ править ]

Для быстрого распространения языка в Цюрихе был создан комплект для портирования компилятора , который включал в себя компилятор, генерирующий так называемый p-код для машины виртуального стека, то есть код, который поддается достаточно эффективной интерпретации, а также интерпретатор для этого кода – система Паскаль . Компиляторы P-системы назывались Pascal-P1, Pascal-P2, Pascal-P3 и Pascal-P4. Pascal-P1 был первой версией, а Pascal-P4 — последней, пришедшей из Цюриха. Версия под названием Pascal-P1 была придумана постфактум для множества различных источников Pascal-P, которые существовали. Компилятор был переработан для повышения переносимости и выпущен как Pascal-P2. Позже этот код был расширен и стал Pascal-P3 с промежуточным кодом, обратно совместимым с Pascal-P2, и Pascal-P4, который не был обратно совместим.

Компилятор-интерпретатор Pascal-P4 по-прежнему можно запускать и компилировать в системах, совместимых с исходным Pascal (как и Pascal-P2). Однако он принимает только подмножество языка Паскаль.

Pascal-P5, созданный вне группы Zürich, поддерживает полный язык Pascal и совместим с ISO 7185.

Pascal-P6 — это продолжение Pascal-P5, которое, наряду с другими функциями, призвано стать компилятором для конкретных процессоров, включая AMD64.

UCSD Pascal ответвился от Pascal-P2, где Кеннет Боулз использовал его для создания интерпретируемой p-системы UCSD. Это была одна из трех операционных систем, доступных на момент запуска оригинального персонального компьютера IBM . [11] UCSD Pascal использовал промежуточный код, основанный на значениях байтов, и, таким образом, был одним из первых байт-кода компиляторов . Apple Pascal был выпущен в 1979 году для компьютерных систем Apple II и Apple III . Это была реализация UCSD Pascal или во многом основанная на ней. От Pascal-P1 до Pascal-P4 они не были, а скорее основывались на CDC 6600 60-битной длине слова .

Компилятор на основе компилятора Pascal-P4, который создавал собственные двоичные объектные файлы , был выпущен для IBM System/370 мейнфрейма Австралийской комиссией по атомной энергии ; он был назван компилятором AAEC Pascal 8000 в честь сокращения названия комиссии. [12]

Объектный Паскаль и Турбо Паскаль [ править ]

Apple Computer создала собственный Lisa Pascal для Lisa Workshop в 1982 году и портировала компилятор на Apple Macintosh и MPW в 1985 году. В 1985 году Ларри Теслер , посоветовавшись с Никлаусом Виртом, определил Object Pascal, и эти расширения были включены как в Lisa, так и в Lisa Workshop. Компиляторы Pascal и Mac Pascal.

В 1980-х годах Андерс Хейлсберг написал компилятор Blue Label Pascal для Nascom -2. Повторная реализация этого компилятора для IBM PC продавалась под названиями Compas Pascal и PolyPascal, прежде чем она была приобретена Borland и переименована в Turbo Pascal .

Turbo Pascal стал чрезвычайно популярен благодаря агрессивной ценовой стратегии, наличию одной из первых полноэкранных IDE и очень быстрому времени выполнения работ (всего несколько секунд на компиляцию, связывание и запуск). Он был написан и полностью оптимизирован на языке ассемблера , что делает его меньше и быстрее, чем большинство конкурентов.

В 1986 году Андерс портировал Turbo Pascal на Macintosh и включил расширения Apple Object Pascal в Turbo Pascal. Эти расширения затем были добавлены обратно в версию Turbo Pascal для ПК версии 5.5. В то же время Microsoft также внедрила компилятор Object Pascal. [13] [14] Turbo Pascal 5.5 оказал большое влияние на сообщество Pascal, которое в конце 1980-х годов начало концентрироваться в основном на IBM PC. Многие любители ПК в поисках структурированной замены BASIC использовали этот продукт. Его также начали использовать профессиональные разработчики. был импортирован ряд концепций, Примерно в то же время из C позволяющих программистам на языке Pascal напрямую использовать интерфейс прикладного программирования (API) на основе C Microsoft Windows . с нулевым завершением Эти расширения включали строки , арифметику указателей , указатели на функции , оператор адреса и небезопасные приведения типов .

Turbo Pascal и другие производные со модулей или модулей структурами являются модульными языками программирования. Однако он не обеспечивает концепцию вложенных модулей или квалифицированный импорт и экспорт определенных символов.

Другие варианты [ править ]

Super Pascal добавляет нечисловые метки, оператор возврата и выражения в качестве имен типов.

TMT Pascal был первым Borland -совместимым компилятором для 32-битного с MS-DOS , совместимого защищенного режима , OS/2 и Win32 . Он расширяет язык за счет перегрузки функций и операторов .

Университеты Висконсина-Мэдисона , Цюриха , Карлсруэ и Вупперталя разработали систему Pascal-SC. [15] [16] и Паскаль-XSC [17] [18] [19] ( Расширения для научных вычислений ) компиляторы, предназначенные для программирования численных вычислений. Разработка Pascal-SC началась в 1978 году с поддержкой ISO 7185 Pascal уровня 0, но поддержка уровня 2 была добавлена ​​​​на более позднем этапе. [20] Pascal-SC изначально предназначался для процессора Z80 , но позже был переписан для DOS ( x86 ) и 68000 . Pascal-XSC в разное время портировался на Unix (Linux, SunOS , HP-UX , AIX ) и Microsoft/IBM (DOS с EMX , OS/2, Windows операционные системы ). Он работает путем генерации промежуточного исходного кода C, который затем компилируется в собственный исполняемый файл. Некоторые расширения языка Pascal-SC были приняты GNU Pascal .

Pascal Sol был разработан примерно в 1983 году французской командой для реализации Unix-подобной системы под названием Sol. Это был стандартный Паскаль уровня 1 (с параметризованными границами массива), но определение допускало использование альтернативных ключевых слов и предопределенных идентификаторов на французском языке, а язык включал несколько расширений для упрощения системного программирования (например, эквивалент lseek). [21] Позже команда Sol перешла к проекту ChorusOS для разработки распределенной операционной системы . [22]

IP Pascal — это реализация языка программирования Pascal с использованием Micropolis DOS, но она была быстро перенесена на CP/M-80, работающий на Z80. В 1994 году он был перенесен на машины типа 80386 и существует сегодня в виде реализаций для Windows XP и Linux. В 2008 году система была поднята на новый уровень, и полученный язык получил название «Паскалин» (в честь калькулятора Паскаля ). Он включает в себя объекты, элементы управления пространством имен , динамические массивы и многие другие расширения и обычно имеет ту же функциональность и защиту типов, что и C# . Это единственная такая реализация, которая также совместима с исходной реализацией Паскаля, стандартизированной как ISO 7185.

Языковые конструкции [ править ]

Паскаль в своей исходной форме является чисто процедурным языком и включает в себя традиционный массив АЛГОЛ -подобных управляющих структур с зарезервированными словами, такими как if, then, else, while, for, и case, начиная с одного утверждения или begin- endблок операторов. В Паскале также есть конструкции структурирования данных, не включенные в исходные ALGOL 60 типы , такие как записи , варианты, указатели , перечисления , а также множества и указатели процедур. Такие конструкции были частично унаследованы или вдохновлены Simula 67, ALGOL 68 , Никлауса Вирта собственным ALGOL W и предложениями CAR Hoare .

Программы на Паскале начинаются с program ключевое слово со списком внешних файловых дескрипторов в качестве параметров [23] (не требуется в Турбо Паскале и т.п.); затем следует основной блок , заключенный в скобки begin и endключевые слова. Точка с запятой разделяет операторы , а точка (т. е. точка) завершает всю программу (или модуль ). Регистр букв игнорируется в исходном коде Pascal.

Вот пример исходного кода очень простой фразы «Hello, World!». программа :

программа   HelloWorld  (  выход  )  ; 
  начать 
     WriteLn  (  'Привет, мир!'  ) 
     {Нет ";"   требуется после последнего оператора блока — 
 его добавление добавляет в программу «нулевой оператор», который игнорируется компилятором.} 
 end  . 

Типы данных [ править ]

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

Тип данных Тип значений, которые может хранить переменная
целое число целые (целые) числа
настоящий числа с плавающей запятой
логическое значение значения True или False
голец один символ из упорядоченного набора символов
набор эквивалент массива логических значений
множество счетная группа любого из предыдущих типов данных или записей
записывать Коллекция любого из предыдущих типов данных
нить последовательность или «строка» символов объявляется как «упакованный массив символов» с начальным индексом 1. Им можно присваивать строковые константы, а к отдельным символам можно обращаться как к элементам массива.

Диапазон значений, разрешенных для базовых типов (кроме Boolean), определяется реализацией. Для некоторых преобразований данных предусмотрены функции. Для конвертации real к integer, доступны следующие функции: round (которое округляется до целого числа с использованием банковского округления ) и trunc (округляется в сторону нуля).

Программист имеет свободу определять другие часто используемые типы данных (например, байтовые, строковые и т. д.) в терминах предопределенных типов, используя, например, средство объявления типов Паскаля.

тип 
     байт          =   0  ..  255  ; 
      подписанный_байт   =   -  128  ..  127  ; 
      строка        =   упакованный   массив  [  1  ..  255  ]   символов   ; 

Часто используемые типы, такие как byte и string, уже определены во многих реализациях.

Обычно система использует слово для хранения данных. Например, bytetype может храниться в машинном целом числе (возможно, 32 бита), а не в 8-битном значении. Паскаль не содержит языковых элементов, позволяющих более детально определять базовые типы хранения. Эта возможность была включена в ряд расширений Паскаля и последующих языков, в то время как другие, такие как Modula-2 , расширили встроенный набор, чтобы охватить большинство типов машинных данных, таких как 16-битные целые числа.

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

Типы поддиапазонов [ править ]

поддиапазоны любого порядкового типа данных Также можно создать (любого простого типа, кроме вещественного):

вар 
     х   :   1  ..  10  ; 
      y   :   'а'  ..  'z'  ; 

Типы наборов [ править ]

В отличие от других языков программирования того времени, Паскаль поддерживает набор типов: [24]

var 
     Set1   :   набор   из   1  ..  10  ; 
      Set2   :   набор   ..   'a'  '  z'  ; 

Множество — это фундаментальное понятие современной математики, и оно может использоваться во многих алгоритмах. Такая функция полезна и может работать быстрее, чем эквивалентная конструкция в языке, не поддерживающем множества. Например, для многих компиляторов Pascal:

если   я   в   [  5  ..  10  ]     , то 

выполняется быстрее, чем:

если   (  i   >   4  )   и   (  i   <   11  )   , то   ... 

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

если   я   в   [  0  ..  3  ,   7  ,   9  ,   12  ..  15  ]     , то 

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

Типы записей [ править ]

Пример типа записи Pascal:

тип 
      автомобиля   =   записи 
          длина  :   целое число  ; 
           ширина  :   целое число 
      , конец  ; 

Пример варианта типа записи:

введите 
      Shape   =   (  Круг  ,   Квадрат  ,   Треугольник  )  ; 
       Размеры   =   рекордный 
         рисунок   .   Форма   круга  
            :   (  Диаметр  :   реальный  )  ; 
             Площадь  :   (  Ширина  :   реальная  )  ; 
             Треугольник  :   (  Сторона  :   реальная  ;   Угол1  ,   Угол2  :   0..360  ) 
         конец  ; 

Вариантные записи позволяют нескольким полям записи перекрывать друг друга для экономии места.

Объявления типов [ править ]

Типы могут быть определены из других типов с помощью объявлений типов:

тип 
     x   =   целое число  ; 
      у   =   х  ; 
  ... 

Кроме того, сложные типы могут быть созданы из простых типов:

введите 
     a   =   массив  [  1  ..  10  ]   целых   чисел  ; 
      б   =   запись 
         x   :   целое число  ; 
          y   :   char    {лишняя точка с запятой не обязательна} 
     end  ; 
      c   =   файл   a   ; 

Тип файла [ править ]

введите 
     a   =   файл   числа   целого  ; 
      б   =   запись 
         x   :   целое число  ; 
          y   :   символа 
     конец  ; 
      c   =   файл   b   ; 

Как показано в примере выше, файлы Pascal представляют собой последовательности компонентов. Каждый файл имеет переменную буфера, которая обозначается f^ . Процедуры get (для чтения) и put (для записи) перемещают переменную буфера к следующему элементу. Чтение введено таким образом, что read(f, x) совпадает с x := f^; получить (е); . Write введен таким образом, что write(f, x) совпадает с f^ := x; положить (е); Тип textпредопределен как файл char. Хотя переменную буфера можно было использовать для проверки следующего символа, который будет использоваться (проверка цифры перед чтением целого числа), это приводит к серьезным проблемам с интерактивными программами в ранних реализациях, но позже было решено с помощью «ленивого ввода-вывода». Концепция, которая ожидает фактического доступа к переменной файлового буфера, прежде чем выполнять файловые операции.

Типы указателей [ править ]

Паскаль поддерживает использование указателей :

введите 
     pNode   =   ^  Узел  ; 
      Узел    =   запись 
         a   :   целое число  ; 
          б   :   чар  ; 
          c   :   pNode   
     конец  ; 
  вар 
     NodePtr   :   pNode  ; 
      IntPtr    :   ^  целое число  ; 

Здесь переменная NodePtr — это указатель на тип данных Node , запись. Указатели можно использовать до их объявления. Это предварительное объявление , исключение из правила, согласно которому вещи должны быть объявлены до их использования.

Чтобы создать новую запись и присвоить значение 10 и символ A полям a и b в записи, а также инициализировать указатель c нулевым указателем («NIL» в Паскале), операторы будут такими:

новый  (  NodePtr  )  ; 
  ... 
 NodePtr  ^.   а   :=   10  ; 
  НодеПтр  ^.   б   :=   'А'  ; 
  НодеПтр  ^.   с   :=   ноль  ; 
  ... 

Это также можно сделать с помощью with заявление следующего содержания:

новый  (  NodePtr  )  ; 
  ... 
 с   NodePtr  ^   начать 
 = 
     a   :   10  ; 
      б   :=   'А'  ; 
      с   :=   нулевой 
 конец  ; 
  ... 

Внутри области действия оператора with a и b относятся к подполям указателя записи NodePtr , а не к узлу записи или типу указателя pNode.

Связанные списки , стеки и очереди можно создавать, включив в запись поле типа указателя (c).

В отличие от многих языков, в которых есть указатели, Паскаль позволяет указателям ссылаться только на динамически созданные переменные, которые являются анонимными, и не позволяет им ссылаться на стандартные статические или локальные переменные. У указателей также должен быть связанный тип, а указатель на один тип несовместим с указателем на другой тип (например, указатель на символ несовместим с указателем на целое число). присущие другим реализациям указателей, особенно тем, которые используются для PL/I или C. Это помогает устранить проблемы безопасности типов , Он также устраняет некоторые риски, вызванные висячими указателями , но возможность динамически освобождать ссылочное пространство с помощью функции Dispose (которая имеет тот же эффект, что и функция бесплатной библиотеки, найденная в C ) означает, что риск висячих указателей не устранен. [25] как это происходит в таких языках, как Java и C#, которые обеспечивают автоматическую сборку мусора (но не устраняют связанную с этим проблему утечек памяти ).

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

Структуры управления [ править ]

Паскаль — это структурированный язык программирования , что означает, что поток управления структурирован в виде стандартных операторов , обычно без « goto команд ».

while   a   <>   b   do    WriteLn  (  'Ожидание'  )  ; 

  if   a   >   b   then   WriteLn  (  'Условие выполнено'  )     {точка с запятой не допускается перед else} 
     else   WriteLn  (  'Условие не выполнено'  )  ; 

  for   i   := от   1   до   10   do    {здесь нет точки с запятой, поскольку она отделяет следующий оператор} 
     WriteLn  (  'Iteration: '  ,   i  )  ; 

  повторять 
     a   :=   a   +   1 
 до тех пор, пока   a   =   10  ; 

  случай   i   из 
     0   :   Write  (  «ноль»  )  ; 
      1   :   Написать  (  «один»  )  ; 
      2   :   Написать  (  «два»  )  ; 
      3  ,  4  ,  5  ,  6  ,  7  ,  8  ,  9  ,  10  :   Напишите  (  '?'  ) 
 конец  ; 

Процедуры и функции [ править ]

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

программа   Печать  (  вывод  )  ; 

  вар   я   :   целое число  ; 

  процедура   PrintAnInteger  (  j   :   integer  )  ; 
  начать 
     ; 
 конец 

  функция   тройка  (  const   x  :   целое число  )  :   целое число  ; 
  начало 
	 тройки   :=   x   *   3 
 конец  ; 

  начало   {основная программа} 
     ... 
     PrintAnInteger  (  i  )  ; 
      PrintAnInteger  (  тройной  (  i  )) 
 end  . 

Процедуры и функции могут быть вложены на любую глубину, а конструкция «программа» является самым логическим внешним блоком.

По умолчанию параметры передаются по значению. Если «var» предшествует имени параметра, он передается по ссылке.

Каждая процедура или функция может иметь свои собственные объявления меток перехода, констант, типов, переменных и других процедур и функций, которые должны быть расположены в указанном порядке. Это требование к упорядочению изначально было предназначено для обеспечения эффективной однопроходной компиляции . Однако в некоторых диалектах (например, Delphi ) строгие требования к порядку разделов объявлений были смягчены.

Точки с запятой как разделители операторов [ править ]

Паскаль перенял многие особенности синтаксиса языка из языка АЛГОЛ , включая использование точки с запятой в качестве разделителя операторов. В этом отличие от других языков, таких как PL/I и C , которые используют точку с запятой в качестве признака завершения оператора. Точка с запятой перед endключевое слово объявления типа записи, блока или оператора case ; перед untilключевое слово оператора повторения; и перед else ключевое слово оператора if .

Наличие лишней точки с запятой не допускалось в ранних версиях Паскаля. Однако добавление пустых операторов типа ALGOL в Пересмотренный отчет 1973 года и последующие изменения в языке ISO 7185:1983 теперь позволяют использовать необязательные точки с запятой в большинстве этих случаев. Точка с запятой по-прежнему не допускается непосредственно перед else ключевое слово в операторе if , поскольку elseследует за одним оператором, а не за последовательностью операторов. В случае вложенных ifs точку с запятой нельзя использовать, чтобы избежать проблемы висячего else (когда у внутреннего if нет else, а у внешнего if есть) путем предположительного завершения вложенного if точкой с запятой - вместо этого это завершает оба if. статьи. Вместо этого явный begin... end блок необходимо использовать. [26]

Ресурсы [ править ]

Компиляторы и интерпретаторы [ править ]

Для общего использования доступны несколько компиляторов и интерпретаторов Pascal:

  • Delphi компании Embarcadero (ранее Borland/CodeGear) — это флагманский продукт для быстрой разработки приложений (RAD) . Он использует язык Object Pascal (названный Borland «Delphi»), произошедший от Pascal, для создания приложений для Windows , macOS , iOS и Android . Поддержка .NET, существовавшая с D8 по D2005, D2006 и D2007, была прекращена и заменена новым языком (Prism, переименованным в Oxygene, см. ниже), который не обладает полной обратной совместимостью. В последние годы были добавлены поддержка Unicode и дженерики (D2009, D2010, Delphi XE).
  • Free Pascal — это кроссплатформенный компилятор, написанный на Object Pascal размещаемый самостоятельно ). Его цель — предоставить удобный и мощный компилятор, способный как компилировать устаревшие приложения, так и служить средством разработки новых. Он распространяется под лицензией GNU General Public License (GNU GPL), а пакеты и библиотеки времени выполнения — под модифицированной GNU Lesser General Public License (GNU LGPL). Помимо режимов совместимости с Turbo Pascal , Delphi и Mac Pascal, он имеет собственные режимы процедурного и объектно-ориентированного синтаксиса с поддержкой расширенных функций, таких как перегрузка операторов . Он поддерживает множество платформ и операционных систем. Текущие версии также имеют режим ISO.
  • Turbo51 — это бесплатный компилятор Pascal для Intel 8051 микроконтроллеров семейства с синтаксисом Turbo Pascal 7.
  • Oxygene (ранее называвшийся Chrome ) — это компилятор Object Pascal для платформ .NET и Mono . Он был создан и продается RemObjects Software, а также какое-то время продавался Embarcadero в качестве бэкэнд-компилятора Prism .
  • Kylix был потомком Delphi с поддержкой операционной системы Linux и улучшенной библиотекой объектов. Он больше не поддерживается. Компилятор и IDE теперь доступны для некоммерческого использования.
  • Компилятор GNU Pascal (GPC) — это компилятор Pascal из коллекции компиляторов GNU (GCC). Компилятор написан на C, библиотека времени выполнения в основном на Pascal. Распространяется под лицензией GNU General Public License и работает на многих платформах и операционных системах. Он поддерживает языки стандарта ANSI/ISO и имеет частичную поддержку диалекта Turbo Pascal. Одним из наиболее заметных упущений является отсутствие полностью совместимого с Turbo Pascal (короткого) строкового типа. Поддержка Borland Delphi и других языковых вариантов весьма ограничена. Однако существует некоторая поддержка Mac-pascal.
  • Virtual Pascal был создан Виталием Мирьяновым в 1995 году как собственный компилятор OS/2, совместимый с синтаксисом Borland Pascal. Затем компания fPrint разработала его на коммерческой основе, добавив поддержку Win32, а в 2000 году он стал бесплатным. Сегодня он может компилироваться для Win32, OS/2 и Linux и в основном совместим с Borland Pascal и Delphi. Разработка была прекращена 4 апреля 2005 года.
  • Компилятор Pascal-P4 , основа для многих последующих компиляторов Pascal, реализованных в Pascal. Он реализует подмножество полного Паскаля.
  • Компилятор Pascal-P5 представляет собой адаптацию Pascal-P4 ISO 7185 (полный Pascal).
  • Компилятор Pascal-P6 — это расширенная версия адаптации Pascal-P5 в соответствии со спецификацией языка Pascaline.
  • Pascal в HTML5 / JavaScript. Smart Mobile Studio — это компилятор
  • Turbo Pascal был доминирующим компилятором Pascal для ПК в 1980-х и начале 1990-х годов, популярным как из-за своих мощных расширений, так и из-за чрезвычайно короткого времени компиляции. Turbo Pascal был компактно написан и мог компилировать, запускать и отлаживать все из памяти, не обращаясь к диску. В то время медленные дисководы для гибких дисков были обычным явлением для программистов, что еще больше увеличивало преимущество Turbo Pascal в скорости. В настоящее время более старые версии Turbo Pascal (до 5.5) доступны для бесплатной загрузки с сайта Borland.
  • IP Pascal реализует язык «Pascaline» (названный в честь калькулятора Паскаля ), который представляет собой сильно расширенный язык Pascal, совместимый с оригинальным Pascal в соответствии с ISO 7185. Он содержит модули с управлением пространством имен, включая модули параллельного выполнения задач с семафорами, объектами, динамическими массивами любого типа. измерения, выделяемые во время выполнения, перегрузки, переопределения и многие другие расширения. IP Pascal имеет встроенную библиотеку переносимости, специально адаптированную для языка Pascal. Например, стандартное приложение вывода текста из оригинального языка Паскаль 1970-х годов можно перекомпилировать для работы в окне и даже добавить графические конструкции.
  • Pascal-XT был создан компанией Siemens для своих мейнфреймов операционных систем BS2000 и SINIX .
  • PocketStudio — это подмножество компилятора Pascal и инструмент RAD для процессоров Palm OS и MC68xxx с некоторыми собственными расширениями, помогающими взаимодействовать с API Palm OS . Он напоминает Delphi и Lazarus с визуальным конструктором форм, инспектором объектов и редактором исходного кода .
  • MIDletPascal — компилятор Pascal и интегрированная среда разработки, генерирующая небольшой и быстрый байт-код Java, специально предназначенный для создания программного обеспечения для мобильных устройств.
  • Vector Pascal — это язык для наборов инструкций SIMD, таких как MMX и AMD 3d Now , поддерживающий все процессоры Intel и AMD, а также Sony PlayStation 2 Emotion Engine .
  • Morfik Pascal позволяет разрабатывать веб-приложения, полностью написанные на Object Pascal (как на стороне сервера, так и на стороне браузера).
  • WDSibyl — среда визуальной разработки и компилятор Pascal для Win32 и OS/2.
  • PP Compiler — компилятор для Palm OS, работающий непосредственно на карманном компьютере.
  • Компилятор CDC 6000 Pascal — это исходный код первого (CDC 6000) компилятора Pascal.
  • Паскаль-С [27]
  • AmigaPascal — бесплатный компилятор Pascal для систем Amiga .
  • VSI Pascal для OpenVMS (ранее HP Pascal для OpenVMS, Compaq Pascal, DEC Pascal, VAX Pascal и первоначально VAX-11 Pascal [28] ) — это компилятор Паскаля, работающий в системах OpenVMS . [29] Он также поддерживался в Tru64 . [30] [31] VSI Pascal для OpenVMS совместим с ISO/IEC 7185:1990 Pascal, а также с некоторыми расширенными Pascal ISO/IEC 10206:1990, а также включает собственные расширения. [29] компилятора Интерфейс реализован в BLISS . [32]
  • Stony Brook Pascal+ представлял собой 16-битный (позже 32-битный) оптимизирующий компилятор для DOS и OS/2, продававшийся как прямая замена Turbo Pascal, но производивший код, который выполнялся как минимум в два раза быстрее.

IDE [ править ]

Библиотеки [ править ]

  • Библиотека WOL для создания приложений с графическим интерфейсом с помощью компилятора Free Pascal.

Стандарты [ править ]

ISO/IEC 7185:1990 Паскаль [ править ]

В 1983 году язык был стандартизирован в международном стандарте IEC/ISO 7185. [33] и несколько местных стандартов, специфичных для конкретной страны, включая американский ANSI/IEEE770X3.97-1983 и ISO 7185:1983. Эти два стандарта отличались только тем, что стандарт ISO включал расширение «уровня 1» для соответствующих массивов (массив, границы которого неизвестны до времени выполнения), где ANSI не допускал этого расширения к оригиналу (Вирт версия) язык. В 1989 году стандарт ISO 7185 был пересмотрен (ISO 7185:1990) для исправления различных ошибок и неясностей, обнаруженных в исходном документе.

Стандарт ISO 7185 был заявлен как разъяснение языка Вирта 1974 года, подробно описанного в Руководстве пользователя и отчете [Дженсен и Вирт], но он также отличался добавлением «Параметры соответствующего массива» в качестве уровня 1 к стандарту, уровень 0 соответствует Паскалю. без соответствующих массивов. Это дополнение было сделано по просьбе CAR Hoare и с одобрения Никлауса Вирта. Предварительной причиной было то, что Хоар хотел создать версию библиотеки числовых алгоритмов (NAG) для Паскаля , которая изначально была написана на FORTRAN, и обнаружил, что это невозможно сделать без расширения, которое позволяло бы использовать параметры массива различного размера. . Аналогичные соображения послужили причиной включения в ISO 7185 средства определения типов процедурных и функциональных параметров.

Сам Никлаус Вирт называл язык 1974 года «Стандартом», например, чтобы отличить его от машинных особенностей компилятора CDC 6000 . Этот язык был задокументирован в The Pascal Report , [34] вторая часть «Руководства пользователя и отчета Pascal».

На больших машинах (мейнфреймах и мини-компьютерах), на которых возник Паскаль, обычно соблюдались стандарты. На IBM PC их не было. На компьютерах IBM наибольшее количество пользователей используют стандарты Borland Turbo Pascal и Delphi. Таким образом, обычно важно понять, соответствует ли конкретная реализация исходному языку Паскаль или его диалекту Borland.

Версии языка для IBM PC начали различаться с появлением UCSD Pascal, интерпретируемой реализации, которая содержала несколько расширений языка, а также несколько упущений и изменений. Многие особенности языка UCSD сохранились и сегодня, в том числе в диалекте Borland.

ISO/IEC 10206:1990 Расширенный Паскаль [ править ]

В 1990 году был создан расширенный стандарт Паскаля под названием ISO/IEC 10206. [35] который идентичен по техническому содержанию [36] IEEE/ANSI 770X3.160-1989 [37] С 2019 года FreePascal . планируется поддержка Extended Pascal в компиляторе [38]

Вариации [ править ]

Цюрихская версия Pascal, созданная Никлаусом Виртом, была выпущена за пределами ETH в двух основных формах: исходный код компилятора CDC 6000 и комплект для переноса под названием система Pascal-P. Компилятор Pascal-P упустил несколько функций полного языка, которые не требовались для начальной загрузки компилятора. Например, были опущены процедуры и функции, используемые в качестве параметров, нераспознаваемые варианты записей, упаковка, удаление, межпроцедурные переходы и другие функции полного компилятора.

UCSD Pascal под руководством профессора Кеннета Боулза был основан на наборе Pascal-P2 и, следовательно, имел некоторые ограничения языка Pascal-P. UCSD Pascal позже был принят как Apple Pascal, и там было выпущено несколько версий. Хотя UCSD Pascal фактически расширил подмножество Pascal в комплекте Pascal-P, добавив обратно стандартные конструкции Pascal, это все еще не было полной стандартной установкой Pascal.

В начале 1990-х годов Алан Бернс и Джефф Дэвис разработали Pascal-FC, расширение Pl/0 (из книги Никлауса « Алгоритмы + структуры данных = программы »). Было добавлено несколько конструкций для использования Pascal-FC в качестве инструмента обучения параллельному программированию (например, семафоры, мониторы, каналы, удаленный вызов и ресурсы). Чтобы иметь возможность продемонстрировать параллелизм, выходные данные компилятора (разновидность P-кода ) можно затем выполнить на виртуальной машине. Эта виртуальная машина не только имитировала нормальную – справедливую – среду, но также могла имитировать экстремальные условия (несправедливый режим).

Borland- подобные компиляторы Pascal

Borland компании Turbo Pascal , написанный Андерсом Хейлсбергом , был написан на языке ассемблера независимо от UCSD и компиляторов Цюриха. Однако он принял большую часть того же подмножества и расширений, что и компилятор UCSD. Вероятно, это связано с тем, что система UCSD была наиболее распространенной системой Pascal, подходящей для разработки приложений на микропроцессорных системах с ограниченными ресурсами, доступных в то время.

Упакованная , версия Turbo Pascal 3 и более поздние версии, включая Borland Object Pascal и Delphi а также почти совместимые с Borland аналоги, стали популярными среди программистов, включая авторов условно-бесплатных программ, поэтому библиотека кода Pascal SWAG содержит большое количество кода, написанного с использованием таких версии как Delphi в виду.

Программные продукты ( компиляторы и IDE/ Rad Application Development (RAD)) в этой категории:

Список связанных стандартов [ править ]

  • ISO 8651-2:1988 Системы обработки информации. Компьютерная графика. Языковые привязки графического ядра (GKS). Часть 2. Паскаль.

Прием [ править ]

Паскаль вызвал в компьютерном сообществе самые разнообразные отклики, как критические, так и хвалебные.

Ранняя критика

Хотя реализации Паскаля, которые были очень популярны в 1980-х и начале 1990-х годов, внимательно следовали первоначальному определению языка Вирта, они подвергались широкой критике как непригодные для использования вне обучения. Брайан Керниган , популяризировавший язык C , изложил наиболее заметные критические замечания в адрес Паскаля еще в 1981 году в своей статье «Почему Паскаль — не мой любимый язык программирования». [42] Самая серьезная проблема, описанная Керниганом, заключалась в том, что размеры массивов и длины строк были частью типа, поэтому было невозможно написать функцию, которая принимала бы массивы переменной длины или даже строки в качестве параметров. Это делало невозможным написание, например, библиотеки сортировки. Керниган также раскритиковал непредсказуемый порядок вычисления логических выражений, плохую поддержку библиотеки и отсутствие статических переменных , а также поднял ряд более мелких проблем. Также он заявил, что язык не предоставляет каких-либо простых конструкций, позволяющих «уйти» (сознательно и принудительно игнорировать) ограничений и ограничений. Более общие жалобы из других источников [25] [43] отметил, что область объявлений не была четко определена в определении исходного языка, что иногда имело серьезные последствия при использовании прямых объявлений для определения типов указателей, или когда объявления записей приводили к взаимной рекурсии , или когда идентификатор мог использоваться, а мог и не использоваться. в списке перечисления. Другая трудность заключалась в том, что, как и АЛГОЛ 60 , этот язык не позволял процедурам или функциям, передаваемым в качестве параметров, заранее определять ожидаемый тип своих параметров.

Несмотря на первоначальную критику, Паскаль продолжал развиваться, и большинство замечаний Кернигана не применимо к версиям языка, которые были усовершенствованы, чтобы быть пригодными для разработки коммерческих продуктов, таких как Turbo Pascal от Borland . Как предсказал Керниган в своей статье, большинство расширений, исправляющих эти проблемы, были несовместимы от компилятора к компилятору. Однако с начала 1990-х годов большинство разновидностей, похоже, сведены в две категории: ISO и Borland-подобные. Расширенный Паскаль устраняет многие из этих ранних критических замечаний. Он поддерживает строки переменной длины, инициализацию переменных, раздельную компиляцию, логические операторы короткого замыкания и стандартные ( otherwise) предложения для операторов падежа. [44]

См. также [ править ]

Ссылки [ править ]

  1. ^ «О «Делегатах» Microsoft » . Архивировано из оригинала 27 июня 2012 г. Мы очень внимательно изучили Delphi Object Pascal и построили рабочий прототип ссылок на привязанные методы, чтобы понять их взаимодействие с языком программирования Java и его API... Наш вывод заключался в том, что ссылки на привязанные методы не нужны и вредны для языка. Это решение было принято после консультации с компанией Borland International, которая имела предыдущий опыт работы со ссылками на связанные методы в Delphi Object Pascal .
  2. ^ Исследования TechMetrix (1999). «История Явы» (PDF) . Отчет о серверах приложений Java . Архивировано из оригинала (PDF) 29 декабря 2010 г. Проверено 16 октября 2009 г. Проект получил название «зеленый», а язык был основан на старой модели UCSD Pascal , которая позволяет генерировать интерпретируемый код.
  3. ^ «Разговор с Джеймсом Гослингом – Очередь ACM» . Архивировано из оригинала 16 июля 2015 года . Проверено 11 августа 2015 г.
  4. ^ Вирт, Никлаус (2000). «Развитие процедурных языков программирования: личный вклад и перспективы» . Модульные языки программирования . Конспекты лекций по информатике. Том. 1897. стр. 1–10. дои : 10.1007/10722581_1 . ISBN  978-3-540-67958-5 .
  5. ^ Херцфельд, Энди. Венгерский фольклор.org. Архивировано 18 ноября 2015 г. в Wayback Machine : Macintosh Stories. Проверено 6 марта 2012 г.
  6. ^ https://www.computerhistory.org/atchm/adobe-photoshop-source-code/ . Архивировано 7 мая 2014 г. на Wayback Machine , исходный код Adobe Photoshop.
  7. ^ «Демонстрация приложений RAD Studio» . 2021-10-29.
  8. ^ tiobe.com. Архивировано 15 марта 2012 г. в Wayback Machine , Индекс сообщества программистов за январь 2011 г.
  9. ^ «Антикварное программное обеспечение: Turbo Pascal v5.5» . Архивировано из оригинала 24 ноября 2010 г. Проверено 17 мая 2018 г.
  10. ^ Компьютеры и вычислительная техника. Личная перспектива. Архивировано 10 мая 2017 г. в Wayback Machine Никлаусом Виртом.
  11. ^ cbi.umn.edu , «Интервью с Джоном Брэкеттом и Дугом Россом» [ постоянная мертвая ссылка ] , стр. 15, Институт Чарльза Бэббиджа, 2004 г.
  12. ^ Исследовательское учреждение Австралийской комиссии по атомной энергии, Лукас-Хайтс, Отчет отделения ядерной науки и технологий, Отдельные исследования (PDF) . Международное агентство по атомной энергии (IEAE) (Отчет). 1977. с. 22.
  13. ^ Джон Уделл, Крах объектно-ориентированного Паскаля, BYTE, июль 1989 г.
  14. ^ М. И. Трофимов, Конец Паскаля?, BYTE, март 1990 г., с. 36.
  15. ^ Ралл, Л.Б. (1987). «Введение в язык научных вычислений Pascal-SC». Компьютеры . 14 : 53–69. дои : 10.1016/0898-1221(87)90181-7 .
  16. ^ ПИ (29 августа 1986 г.). «Теперь Cadmus поставляется с арифметикой Кулиша — университет Карлсруэ доставляет в Мюнхен компилятор Паскаля». Компьютерная неделя (на немецком языке). Мюнхен – Карлсруэ, Германия: IDG Business Media GmbH . Архивировано из оригинала 30 мая 2016 г. Проверено 30 мая 2016 г.
  17. ^ «Pascal-XSC: Паскаль для расширенных научных вычислений» . Архивировано из оригинала 05 января 2014 г.
  18. ^ «Программное обеспечение XSC» . Архивировано из оригинала 1 ноября 2015 года . Проверено 11 августа 2015 г.
  19. ^ «Университет Вупперталя: научные вычисления/технологии программного обеспечения» . Архивировано из оригинала 6 ноября 2015 года . Проверено 11 августа 2015 г.
  20. ^ Бамбергер, Лотар; Давенпорт, Джеймс Х.; Фишер, Ганс Кристоф; Кок, Ян; Шумахер, Гюнтер; Ульрих, Кристиан; Уоллис, Питер Дж.Л.; Зима, Дик Т.; Вольф фон Гуденберг, Юрген (1990). Уоллис, Питер Дж.Л. (ред.). Улучшение программирования с плавающей запятой (1-е изд.). Бат, Великобритания: John Wiley & Sons Ltd. ISBN  0-471-92437-7 .
  21. ^ Мишель Жьен, «Операционная система SOL», на конференции Usenix Summer '83, Торонто, Онтарио (июль 1983 г.), стр. 75–78.
  22. ^ «Обзор распределенных операционных систем CHORUS» (PDF) . Хоровые системы . 1991. Архивировано из оригинала (PDF) 7 февраля 2015 г. – через cs.berkeley.edu.
  23. ^ Pascal ISO 7185:1990. Архивировано 17 июня 2012 г. в Wayback Machine 6.10.
  24. ^ Манделл, Стивен Л. (1987). Программирование на Паскале сегодня . Западная издательская компания. ISBN  978-0-314-33935-5 .
  25. ^ Перейти обратно: а б Дж. Уэлш, У. Дж. Снерингер и К. А. Хоар, «Двусмысленность и неуверенность в Паскале», Программное обеспечение: Практика и опыт 7 , стр. 685–696 (1977).
  26. ^ Паскаль, Нелл Дейл и Чип Уимс, «Остальное болтающееся», с. 160–161. Архивировано 18 марта 2017 г. в Wayback Machine.
  27. ^ «Pascal-S: подмножество и его реализация», Н. Вирт в книге «Паскаль - язык и его реализация», Д. У. Бэррон, Wiley, 1979.
  28. ^ «Руководство пользователя VAX-11 Pascal V1.0» (PDF) .
  29. ^ Перейти обратно: а б «Описание программного обеспечения VSI Pascal для OpenVMS» (PDF) . ВСИ. 2017. Архивировано из оригинала (PDF) 18 апреля 2021 г. Проверено 7 февраля 2022 г.
  30. ^ «Интервью с архитектором Паскаля - Compaq Pascal» . Архивировано из оригинала 19 октября 2021 г. Проверено 28 мая 2022 г.
  31. ^ «Описание программного обеспечения Compaq Pascal версии 5.8 для Tru64 UNIX» . Архивировано из оригинала 25 июля 2020 г. Проверено 28 мая 2022 г.
  32. ^ «Интервью Джона Рейгана из VSI о GEM и LLVM для X86/64» . Системы eCube . 2019-03-12. Архивировано из оригинала 12 августа 2020 г. Проверено 7 февраля 2022 г.
  33. ^ ISO/IEC 7185:1990 Паскаль (PDF) . Архивировано из оригинала (PDF) 27 января 2016 года . Проверено 16 сентября 2014 г.
  34. ^ Вирт, Никлаус (июль 1973 г.). Язык программирования Паскаль (пересмотренный отчет) . ETH Цюрих. дои : 10.3929/ethz-a-000814158 .
  35. ^ Расширенный Паскаль: ISO/IEC 10206:1990 . Архивировано из оригинала 27 марта 2016 г. Проверено 16 сентября 2014 г.
  36. ^ «Стандарты языка: Паскаль, Расширенный Паскаль, Фортан» . Архивировано из оригинала 14 июля 2014 г. Проверено 16 сентября 2014 г.
  37. ^ Стандарт IEEE/ANSI для языка программирования Extended Pascal . 1990. doi : 10.1109/IEESTD.1990.101061 . ISBN  978-0-7381-4247-0 .
  38. ^ «Расширенный Pascal — Free Pascal wiki» . wiki.freepascal.org .
  39. ^ «Виртуальный Паскаль для OS/2» . Архивировано из оригинала 30 августа 2011 года . Проверено 3 апреля 2016 г.
  40. ^ Вольфганг (15 октября 2020 г.). «WDSibyl: среда визуальной разработки» . WDSibyl.org . Архивировано из оригинала 12 февраля 2020 г. Проверено 20 апреля 2020 г.
  41. ^ «netlabs.org – Проект: Открытая Сивилла» . Архивировано из оригинала 4 марта 2016 года . Проверено 3 апреля 2016 г.
  42. ^ Брайан В. Керниган (1981). «Почему Паскаль не мой любимый язык программирования» . Архивировано 28 апреля 2009 г. в Wayback Machine.
  43. ^ О. Лекарм, П. Дежарден, «Дополнительные комментарии к языку программирования Паскаль», Acta Informatica 4 , стр. 231–243 (1975).
  44. ^ «Расширенный Паскаль» . Архивировано из оригинала 18 октября 2015 г. Проверено 17 октября 2015 г.

Дальнейшее чтение [ править ]

  • Никлаус Вирт: Язык программирования Паскаль . 35–63, Acta Informatica, том 1, 1971.
  • КАР Хоар: «Заметки о структурировании данных». В О.-Ж. Даль, Э. В. Дейкстра и К. А. Хоар, редакторы, «Структурное программирование» , страницы 83–174. Академик Пресс, 1972.
  • КАР Хоар, Никлаус Вирт: Аксиоматическое определение языка программирования Паскаль . 335–355, Acta Informatica, том 2, 1973.
  • Кэтлин Дженсен и Никлаус Вирт: Паскаль – Руководство пользователя и отчет . Спрингер Верлаг, 1974, 1985, 1991, ISBN   0-387-97649-3 и ISBN   3-540-97649-3 .
  • Никлаус Вирт: Алгоритмы + Структуры данных = Программы . Прентис-Холл, 1975 г., ISBN   0-13-022418-9 .
  • Никлаус Вирт: Оценка языка программирования Паскаль . 23–30 Уведомления ACM SIGPLAN, том 10, выпуск 6, июнь 1975 г.
  • Н. Вирт и А. И. Вассерман, изд.: Проектирование языков программирования . Издательство компьютерного общества IEEE, 1980 г.
  • Д. У. Бэррон (ред.): Паскаль – язык и его реализация . Джон Уайли 1981, ISBN   0-471-27835-1
  • Питер Грогоно: Программирование на языке Паскаль , исправленное издание, Аддисон-Уэсли, 1980 г.
  • Ричард С. Форсайт: Паскаль в работе и игре , Чепмен и Холл, 1 982
  • Н. Вирт, М. Брой, редактор, и Э. Денерт, редактор: Паскаль и его преемники среди пионеров программного обеспечения: вклад в разработку программного обеспечения. Спрингер-Верлаг, 2002 г., ISBN   3-540-43081-4
  • Н. Вирт: Воспоминания о разработке Паскаля . Уведомления ACM SIGPLAN, том 28, № 3, март 1993 г.
Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 2DB5045505969181704D460CD98DD7E4__1715872560
URL1:https://en.wikipedia.org/wiki/Pascal_(programming_language)
Заголовок, (Title) документа по адресу, URL1:
Pascal (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)