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

[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Метки: через визуальный редактор с мобильного устройства из мобильной версии
м 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)
 
(не показано 27 промежуточных версий 18 участников)
Строка 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]]
| year = [[19801970]]
| designer = [[НиколайВирт, ПаскальНиклаус|Никлаус Вирт]]
| influenced_by = [[Алгол]]
| influenced = [[Модула-2]], [[Оберон (язык программирования)|Оберон]], [[Компонентный Паскаль]], [[Ада (язык программирования)|Ада]], [[Object Pascal]], [[Java]]<ref>[http://java.sun.com/docs/white/delegates.html White Paper. About Microsoft’s «Delegates»] {{Wayback|url=http://java.sun.com/docs/white/delegates.html |date=20120627043929 }}, java.sun.com</ref><ref>[http://www.fscript.org/prof/javapassport.pdf History of Java, Java Application Servers Report] {{webarchive|url=https://web.archive.org/web/20101229090912/http://www.fscript.org/prof/javapassport.pdf |date=2010-12-29 }} TechMetrix Research, 1999</ref><ref>{{Cite web |url=http://queue.acm.org/detail.cfm?id=1017013 |title=A Conversation with James Gosling |access-date=2009-10-16 |archive-date=2015-07-16 |archive-url=https://web.archive.org/web/20150716194245/http://queue.acm.org/detail.cfm?id=1017013 |deadlink=no }}</ref>, [[Oxygene (язык программирования)|Oxygene]]
Строка 21:
'''Паска́ль''' ({{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>.
Строка 64 ⟶ 65 :
Важным шагом в развитии языка является появление свободных реализаций языка Паскаль [[Free Pascal]] и [[GNU Pascal]], которые не только вобрали в себя черты множества других диалектов языка, но и обеспечили чрезвычайно широкую переносимость написанных на нём программ (например GNU Pascal поддерживает более 20 различных платформ, под более чем 10 различными операционными системами, Free Pascal обеспечивает специальные режимы совместимости с различными распространёнными диалектами языка, такими как Turbo Pascal (полная совместимость), Delphi и другими).
==== Delphi и Delphi.NET ====
<b>'''Delphi</b>''' - реализация языка Object Pascal, используемая в среде разработки [[Embarcadero Delphi]]. Delphi.NET - реализация языка Delphi, ориентированная на разработку приложений для платформы [[.NET Framework|Microsoft.Net]].
==== PascalABC.NET ====
B [[Южный федеральный университет|Южном федеральном университете]] разработан [[PascalABC.NET]] — язык программирования Паскаль, включающий большинство возможностей языка [[Delphi (язык программирования)|Delphi]], а также ряд собственных расширений. Он основан на платформе [[.NET Framework|Microsoft.NET]] и содержит практически все современные языковые средства: [[Класс (программирование)|классы]], [[перегрузка операторов|перегрузку операций]], [[Интерфейс (объектно-ориентированное программирование)|интерфейсы]], [[Обработка исключений|обработку исключений]], [[обобщённое программирование|обобщённые классы и подпрограммы]], [[сборка мусора (программирование)|сборку мусора]], [[Лямбда-выражение|лямбда-выражения]].
==== Pascal Next ====
 
<P>Pascal Next – компилируемый, типизированный, алгоритмический, универсальный язык программирования и среда разработки, ориентированные на решение задачи <B>'''обучения основам программирования</B>'''.
В основе синтаксиса языка Pascal Next лежит синтаксис &quot;"классического&quot;" Паскаля Вирта. В тожето же время, синтаксис инструкций выбора и циклов заимствован из Basic, что позволило отказаться от избыточных begin.</P>
 
== Особенности языка ==
Строка 616 ⟶ 618 :
 
=== Объектно-ориентированное программирование ===
{{заготовка раздела}}
В [[Object Pascal]] имеется возможность разрабатывать программы с применением парадигмы [[объектно-ориентированное программирование|объектно-ориентированного программирования]]. Классы задаются с помощью типа <code>object</code>, аналогичного <code>record</code>, который кроме полей данных может содержать заголовки процедур и [[метод (языки программирования)|методов]]. Имена описываемых методов следуют за именем класса через точку.
 
Строка 622 ⟶ 623 :
<!--
«Все объекты в Object Pascal (FPC, TP) создаются и уничтожаются динамически, конструктор и деструктор всегда должны вызываться явно.» -
1. неправда (объекты Object Pascal создаются при объявлении переменной такого типа всегда статически(а динамическое создание - — только с помощью оператора new)), а вот Delphi-объекты(при объявлении такой переменной) -как раз динамически(вроде всегда - — это надо уточнить)-это разные несовместимые виды объектов
2. для статических объектов конструктор и деструктор вызываться не должны - — это делается на усмотрение программиста- по крайней мере в object-объектах — поэтому там и сделан ручной вызов конструктора и деструктора и множество имён) В Object Pascal реально это необходимо только при использовании virtual-методов(так как именно в конструкторе заполняется таблица виртуальных методов)
С Delphi объектами вроде так и есть -обязателен явный вызов
-->