Паскаль (язык программирования): различия между версиями

[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
м checkwiki fixes (1, 2, 9, 17, 22, 26, 48, 50, 52, 54, 64, 65, 66, 76, 86, 88, 89, 101), replaced: <b> → ''' (2), </b> → ''' (2)
 
(не показана 41 промежуточная версия 27 участников)
Строка 5:
| paradigm = [[Императивное программирование|императивный]], [[Структурное программирование|структурированный]]
| class = [[Компилятор|компилируемый]]
| typing = [[статическая типизация|статическая]], [[сильная типизация|сильная]], [[Типобезопасность|безопасная]] <ref>{{Книга|автор = Kim B. Bruce|год = 2002-01-01|isbn = 9780262025232|страниц = 416|издательство = MIT Press|заглавие = Foundations of Object-oriented Languages: Types and Semantics|ссылка = https://books.google.com/books?id=9NGWq3K1RwUC|страницы = 9}}|archive-date {{Wayback= 2016-06-18|archive-url = https://web.archive.org/web/20160618062032/https://books.google.com/books?id=9NGWq3K1RwUC |date=20160618062032 }}</ref>
| implementations = [[CDC 6000]], [[ICT 1900]], [[Pascal-P]], [[PDP-11]], [[PDP-10]], [[IBM System/370]], [[Hewlett-Packard|HP]], [[Free Pascal]], [[GNU Pascal|GNU]], [[PascalABC.NET]]
| dialects = [[UCSD Pascal|UCSD]], [[Turbo Pascal|Turbo]], [[Delphi (язык программирования)|Delphi]]
Строка 19:
| дата выпуска последней версии = [[29 июля]] [[2008 год]]а
}}
'''[[Паскаль, Блез|Паска́ль]]''' ({{lang-en|Pascal}}) — один из наиболее известных языков программирования<ref>[http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html Индекс популярности языков программирования TIOBE] {{Wayback|url=http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html |date=20181225175216 }}{{ref-en}}</ref>, используется для обучения программированию в старших классах и на первых курсах вузов, является основой для ряда других языков.
 
[[Файл:LagrangePAS.jpg|400px|thumb|Пример программы на языке Паскаль]]
== История ==
Язык программирования Pascal был создан в 1970 году на основе языка [[Алгол-60]]<ref name="Wirth, 2007">{{публикация|книга |язык=en |автор линк=Вирт, Никлаус |автор=Wirth |автор имя=N. |часть=Modula-2 and Oberon |заглавие=HOPL III |подзаголовок=Proceedings of the third ACM SIGPLAN conference on History of programming languages |год=2007 |месяц=06 |издательство=ACM |pages=3-1–3-10 |doi=10.1145/1238844.1238847 |ссылка=http://oberoncore.ru/_media/library/n._wirth_-_modula-2_and_oberon_hopl_iii_.pdf |архив дата=20121222075805 |архив=https://web.archive.org/web/20121222075805/http://oberoncore.ru/_media/library/n._wirth_-_modula-2_and_oberon_hopl_iii_.pdf }}</ref>.
Строка 28 ⟶ 29 :
Последующая работа Вирта была направлена на создание на основе Паскаля языка системного программирования с сохранением возможности вести на его базе систематический, целостный курс обучения профессиональному программированию: «''The guiding idea was to construct a genuine successor of Pascal meeting the requirements of system engineering, yet also to satisfy my teacher’s urge to present a systematic, consistent, appealing, and teachable framework for professional programming.''». Результатом этой работы стал язык [[Модула-2]], после которого Вирт занялся разработкой объектно-ориентированного языка программирования [[Оберон (язык программирования)|Oberon]] на основе всех предыдущих разработок<ref name="Wirth, 2007" />.
 
Одной из целей создания языка Паскаль Никлаус Вирт считал обучение студентов структурному программированию. До сих пор Паскаль заслуженно считается одним из лучших языков для начального обучения программированию. Его современные модификации, такие как Object Pascal, широко используются в промышленномкоммерческом программировании (среда Delphi). Также на основе синтаксиса языка Паскаль создан язык программирования [[Structured Text]] (ST) или Structured Control Language (SCL) для [[Программируемый логический контроллер|программируемых логических контроллеров]].{{нет АИ|15|05|2022}}
 
К 1990-м годам Pascal стал одним из наиболее распространённых в мире алгоритмических языков программирования. Ведущие разработчики программного обеспечения регулярно выпускали новые версии своих компиляторов для этого языка. Популярные компиляторы того времени: Turbo Pascal (разработан компанией [[Borland]]), Microsoft Pascal Compiler, Quick Pascal, Pascal-2, Professional Pascal, USCD Pascal<ref name="Бородич и др., 1991">{{публикация|книга |автор=Бородич |автор имя=Ю. С. |автор2=Вальвачев |автор2 имя=А. Н. |автор3=Кузьмич |автор3 имя=А. И. |заглавие=Паскаль для персональных компьютеров |часть=Предисловие |страницы=3 |вид=справ. пособ. |место=Мн. |издательство=Вышэйшая школа |год=1991 |страниц=365 |иллюстрации=ил |isbn=5-339-00662-X |удк=681.3.06(035.5) |ббк=32.973-01я2 }}</ref>.
Строка 60 ⟶ 61 :
{{main|MIDletPascal}}
 
=== Современные версии Objectреализации Pascal ===
==== Free Pascal и GNU Pascal ====
Важным шагом в развитии языка является появление свободных реализаций языка Паскаль [[Free Pascal]] и [[GNU Pascal]], которые не только вобрали в себя черты множества других диалектов языка, но и обеспечили чрезвычайно широкую переносимость написанных на нём программ (например GNU Pascal поддерживает более 20 различных платформ, под более чем 10 различными операционными системами, Free Pascal обеспечивает специальные режимы совместимости с различными распространёнными диалектами языка, такими как Turbo Pascal (полная совместимость), Delphi и другими).
==== Delphi и Delphi.NET ====
'''Delphi''' - реализация языка Object Pascal, используемая в среде разработки [[Embarcadero Delphi]]. Delphi.NET - реализация языка Delphi, ориентированная на разработку приложений для платформы [[.NET Framework|Microsoft.Net]].
==== PascalABC.NET ====
Кроме того, вB [[Южный федеральный университет|Южном федеральном университете]] разработан [[PascalABC.NET]] — язык программирования Паскаль, включающий большинство возможностей языка [[Delphi (язык программирования)|Delphi]], а также ряд собственных расширений. Он основан на платформе [[.NET Framework|Microsoft.NET]] и содержит практически все современные языковые средства: [[Класс (программирование)|классы]], [[перегрузка операторов|перегрузку операций]], [[Интерфейс (объектно-ориентированное программирование)|интерфейсы]], [[Обработка исключений|обработку исключений]], [[обобщённое программирование|обобщённые классы и подпрограммы]], [[сборка мусора (программирование)|сборку мусора]], [[Лямбда-выражение|лямбда-выражения]].
==== Pascal Next ====
 
Pascal Next – компилируемый, типизированный, алгоритмический, универсальный язык программирования и среда разработки, ориентированные на решение задачи '''обучения основам программирования'''.
Начиная с Delphi 2003 создана реализация языка для платформы [[.NET Framework|.Net]], хотя разработчики продолжают использовать Delphi более ранних версий.
В основе синтаксиса языка Pascal Next лежит синтаксис "классического" Паскаля Вирта. В то же время, синтаксис инструкций выбора и циклов заимствован из Basic, что позволило отказаться от избыточных begin.
 
О коммерческих разработках на Free Pascal, GNU Pascal и [[TMT Pascal]] на данный момент известно мало.
 
Кроме того, в [[Южный федеральный университет|Южном федеральном университете]] разработан [[PascalABC.NET]] — язык программирования Паскаль, включающий большинство возможностей языка [[Delphi (язык программирования)|Delphi]], а также ряд собственных расширений. Он основан на платформе [[.NET Framework|Microsoft.NET]] и содержит практически все современные языковые средства: [[Класс (программирование)|классы]], [[перегрузка операторов|перегрузку операций]], [[Интерфейс (объектно-ориентированное программирование)|интерфейсы]], [[Обработка исключений|обработку исключений]], [[обобщённое программирование|обобщённые классы и подпрограммы]], [[сборка мусора (программирование)|сборку мусора]], [[Лямбда-выражение|лямбда-выражения]].
 
== Особенности языка ==
Строка 79 ⟶ 83 :
 
== Стандарты ==
После начала использования Паскаля в [[1970&nbsp;год]]у и появления реализаций, расходящихся не только в дополнениях, но и в синтаксисе, был поднят вопрос о стандартизации языка. Стандарт языка был разработан Никлаусом Виртом в [[1974&nbsp;год]]у совместно с Кетлин Йенсен (Kathleen Jensen).<ref>[https://www.amazon.com/Pascal-User-Manual-Report-Standard/dp/0387976493/ref=sr_1_1/104-1876135-1071931?ie=UTF8&s=books&qid=1194117642&sr=1-1#reader PASCAL: User Manual and Report] ISO Pascal Standard Kathleen Jensen and Niklaus Wirth, 4th edition, Springer Verlag New York, Inc. 1974, 1985, 1991</ref> В дальнейшем, были приняты международный стандарт от ISO и американский от ANSI. На данный момент, выделяют три принципиально разных стандарта: Unextended Pascal (исходный), Extended Pascal (расширенный), Object-Oriented Extensions to Pascal (объектно-ориентированное расширение Паскаля).
 
{| class="standard"
Строка 614 ⟶ 618 :
 
=== Объектно-ориентированное программирование ===
{{заготовка раздела}}
В [[Object Pascal]] имеется возможность разрабатывать программы с применением парадигмы [[объектно-ориентированное программирование|объектно-ориентированного программирования]]. Классы задаются с помощью типа <code>object</code>, аналогичного <code>record</code>, который кроме полей данных может содержать заголовки процедур и [[метод (языки программирования)|методов]]. Имена описываемых методов следуют за именем класса через точку.
 
Строка 620 ⟶ 623 :
<!--
«Все объекты в Object Pascal (FPC, TP) создаются и уничтожаются динамически, конструктор и деструктор всегда должны вызываться явно.» -
1. неправда (объекты Object Pascal создаются при объявлении переменной такого типа всегда статически(а динамическое создание - — только с помощью оператора new)), а вот Delphi-объекты(при объявлении такой переменной) -как раз динамически(вроде всегда - — это надо уточнить)-это разные несовместимые виды объектов
2. для статических объектов конструктор и деструктор вызываться не должны - — это делается на усмотрение программиста- по крайней мере в object-объектах — поэтому там и сделан ручной вызов конструктора и деструктора и множество имён) В Object Pascal реально это необходимо только при использовании virtual-методов(так как именно в конструкторе заполняется таблица виртуальных методов)
С Delphi объектами вроде так и есть -обязателен явный вызов
-->
Строка 764 ⟶ 767 :
|год = 1982
|страниц = 384
}}
* {{книга
|автор = Культин Н. Б.
|заглавие = Программирование в Turbo Pascal 7.0 и Delphi: 3-е изд., перераб. и доп.
|место = СПб. |издательство = [[БХВ-Петербург]]
|год = 2007
|страниц = 400
|isbn = 978-5-9775-0109-5
}}
* {{книга
Строка 823 ⟶ 834 :
[[Категория:Статьи с примерами кода на Паскале]]
[[Категория:Языки программирования со статическим распределением памяти]]
[[Категория:Блез Паскаль]]