Розьніца паміж вэрсіямі «Pascal»

20 байтаў дададзена ,  11 гадоў таму
д
вікіфікацыя
д (вікіфікацыя)
'''Pascal''' (Паска́ль) — [[мова праграмаваньня]] агульнага прызначэньня, створаная [[Ніклаўс Вірт|Ніклаўсам Віртам]] у [[1970]] годзе як мова [[структурнае праграмаваньне|структурнага праграмаваньня]].
 
''Pascal'' заснаваны на мове праграмаваньня ''[[Algol]]'' і названы ў гонар матэматыка і філёзафа [[Блез Паскаль|Блеза Паскаля]]. Вірт таксама стварыў мовы праграмаваньня ''[[Modula-2]]'' і ''[[Oberon]]'', падобныя на ''Pascal'', аднак з дадатковымі сродкамі для [[аб'ектна-арыентаванае праграмаваньне|аб'ектнааб’ектна-арыентаванага праграмаваньня]].
 
Спачатку ''Pascal'' быў гіпатэтычнай мовай для навучаньня студэнтаў структурнаму праграмаваньню, і шмат студэнтаў вучыліся па ім. Варыянты ''Pascal'' выкарыстоўваюцца дагэтуль як у асьвеце, так і ў праграмаваньні.
== Мова ==
 
Усе [[праграма|праграмы]] на ''Pascal'' пачынаюцца з ключавога слова ''<code>program</code>'', неабавязковага сьпісу ўнутраных дэскрыптараў файла і блёку кода, які знаходзіцца паміж словамі ''<code>begin</code>'' і ''<code>end</code>''. Розьніцы паміж вялікімі і маленькімі літарамі ў ''Pascal'' няма<ref>У адрозьненьне ад яго нашчадка мовы ''[[Oberon]]'', дзе ключавыя словы павінны быць напісаныя вялікімі літарамі.</ref>. [[Кропка з коскай]] разьдзяляе выразы, а [[кропка]] заканчвае праграму (ці [[модуль]]).
 
<code>
Працэдуры і функцыі могуць быць укладзенымі да любой ступені, і канструкцыя ''<code>program</code>'' — найвышэйшы блёк.
 
Кожны блёк мае свае аб'яўленьніаб’яўленьні [[метка|метак]] ''<code>goto</code>'', [[канстанта]]ў, [[тып]]аў, [[зьменная|зьменных]] і іншых працэдур і функцый, якія маюць ісьці ў такім парадку, як тут пералічана.
 
У ''Pascal'' ёсьць наступныя тыпы дадзеных: [[цэлы лік]], [[сімвал]] і [[лягічная зьменная]] (простыя тыпы), а таксама новы тып, уведзены ў ''Pascal'' — пералічальны тып<ref>Дарэчы, у сваіх пазьнейшых працах Вірт прызнае, што гэты тып зьяўляецца лішкавым, і вынімае яго з мовы ''Oberon'', прапануючы карыстацца замест яго звычайнымі канстантамі.</ref>.
</code>
 
Можна ствараць новыя тыпы на аснове іншых за дапамогай аб'яўленьняаб’яўленьня тыпаў<ref>У пашырэньні мовы ад кампаніі ''[[Borland]]'' ''[[Object Pascal]]'' (''[[Delphi]]'') уведзены спэцыяльны сынтаксіс для абвешчаньня тыпу, несумяшчальнага з тым, ад якога ён атрыманы:
 
<code>
</code>
 
Радкі ў клясычным ''Pascal'' — гэта масівы сымбаляў<ref>У пашырэньні ад ''Borland'' (пачынаючы з ''[[Turbo Pascal]]'') уведзены спэцыяльны тып <code>'''string'''</code>, які падтрымлівае большасьць апэрацый над радкамі сымбаляў, у тым ліку складаньне двух радкоў запісам <code>S:=S1+S2;</code>. Пазьней гэты тып быў пашыраны для таго, каб падтрымліваць любую колькасьць сымбаляў (спачатку да 255 ''Turbo Pascal 4.0'', потым да <math>2^{32}-1</math> сымбаляў ''Object Pascal/Delphi 4.0'').</ref>.
 
== Hello World ==
У вэрсыі ''Turbo Pascal 5.5'' ''Borland'' дабавіла ў ''Pascal'' [[аб'ектна-арыентаванае праграмаваньне]] (ААП).
 
Аднак потым у ''Borland'' вырашылі, што патрэбен ''Pascal'' зь лепей прадуманай рэалізацыяй ААП, і пачалі распрацоўку ''[[Delphi]]'', які выкарыстоўваў ідэі ''[[Object Pascal]]'', прапанаваныя ''[[Apple Computer|Apple]]'' як аснову. (Гэтыя ідэі ''Apple'' дагэтуль ня сталі фармальным стандартам.) ''Borland'' таксама называў сваю рэалізацыю ''Object Pascal'' у першых вэрсыях ''Delphi'', аднак зьмяніў назву на «мова праграмаваньня ''Delphi''» у далейшым. Асноўнае дапаўненьне ў параўнаньні з папярэднімі вэрсыямі — заснаваная на спасылках (reference-based) аб'ектнаяаб’ектная мадэль, віртуальныя канструктары і дэструктары, і ўласьцівасьці. Існуе некалькі кампілятараў, аснаваных на гэтым дыялекце.
 
''Turbo Pascal'' і іншыя рэалізацыі з канцэпцыяй модуляў (''units'' ці ''module'') — гэта [[модульнасьць (праграмаваньне)|модульныя мовы]]. ''Turbo Pascal'' скапіяваў гэтая канцэпцыі ці з стандарту пашыранага ''Pascal'', ці зь яго пасьлядоўніка ''[[Modula-2]]''. Аднак у ім адсутнічае падтрымка канцэпцыі ўкладзеных модуляў і імпарту/экспарту асобных сімвалаў.
У 1983 мовы была стандартызаваная ў міжнародным стандарце ISO/IEC 7185, а таксама ў частцы мясцовых стандартаў, у тым ліку ў амэрыканскім ANSI/IEEE770X3.97-1983. У 1990 быў створаны стандарт разшыранага Паскалю (extended Pascal) як ISO/IEC 10206.
 
ISO 7185 быў створаны для праясьненьня мовы Вірта, створанай у 1974, у такім выглядзе, якой яна была апісана ў кіраўніцтве карыстальніка і ў Report [Jensen and Wirth], аднак з дабаўленьнем "«Conformant Array Parameters"» як узровень 1 стандарту, узровень 0 Паскаль без Conformant Arrays.
 
На вялікіх кампутарах (мэйнфрэймах і мінікампутарах), адкуль пайшоў Паскаль, гэтыя стандарты выкарыстоўвалі. На IBM-PC не выкарыстоўвалі. На IBM-PC найбольш пашыранымі былі стандарты Borland Turbo Pascal і Delphi. Таму важна знаць, якім стандартам адпавядае канкрэтны кампілятар арыгінальнай мовы Паскаль ці дыялекту Borland.
 
== Даступныя кампілятары ==
 
== Крытыка ў мінулым ==
Калі Паскаль быў вельмі папулярным (аднак ён быў яшчэ болей папулярным у 1980-х і на пачатку 1990-х, чым у час напісаньня), раннія вэрсыі Паскаля шырока крытыкаваліся ў тым, што іх ня можна "сур'ёзна"«сур’ёзна» выкарыстоўваць, акрамя як для навучаньня. Браян Кэрыган, знакаміты папулярызатар мовы Сі, апісаў свае аргумэнты ў 1981 годзе ў рабоце «[http://www.lysator.liu.se/c/bwk-on-pascal.html Чаму Паскаль не з'яўляеццаз’яўляецца маёй улюбленай мовай праграмаваньня]». З другога боку, шмат вялікіх распрацовак 1980-х, такія як [[Apple Lisa]] і [[Apple Macintosh|Macintosh]], шмат у чым абапіраліся на Паскаль. У наступным дзесяцігодзьдзі пасьля гэтага Паскаль працягваў сваё разьвіцьцё, таму большасьць аргумэнтаў таго часу нельга выкарыстоўваць да яго сучасных рэалізацый. Аднак большасьць гэтых дапаўненьняў несумяшчальныя паміж кампілятарамі, хоць у апошнім дзесяцігодзьдзі яны, здаецца, аформіліся ў дзьве групы: ISO ці Borland-падобныя.
 
Выкарыстоўваючы досьвед, атрыманы пры стварэньні Паскаля, [[Ніклаўс Вірт]] стварыў яшчэ дзьве мовы праграмаваньня, [[Modula-2]] і [[Oberon]], якія былі яшчэ болей разьвітыя, аднак ня мелі камэрцыйнага посьпеху Паскаля.
 
== Далейшае чытаньне ==
* [[Kathleen Jansen]] and Niklaus Wirth: ''PASCAL - User Manual and Report.'' Springer-Verlag, 1974, 1985, 1991, ISBN 0-387-97649-3 and ISBN 0-540-97649-3 [http://www.cs.inf.ethz.ch/~wirth/books/Pascal/]
* Niklaus Wirth: ''The Programming Language Pascal.'' Acta Informatica, 1, (Jun 1971) 35-63
* N. Wirth, M. Broy, ed, and E. Denert, ed: [http://www.swissdelphicenter.ch/en/niklauswirth.php ''Pascal and its Successors''] in ''Software Pioneers: Contributions to Software Engineering.'' Springer-Verlag, 2002, ISBN 3-540-43081-4
*: also in N. Wirth, and A. I. Wasserman, ed: ''Programming Language Design.'' IEEE Computer Society Press, 1980
* ISO/IEC 10206: ''Extended Pascal.'' [http://www.pascal-central.com/standards.html]
* ISO/IEC 7185: ''Programming Languages - PASCAL.'' [http://www.moorecad.com/standardpascal/]
* [[Brian W. Kernighan]], [http://www.lysator.liu.se/c/bwk-on-pascal.html Why Pascal is Not My Favorite Programming Language]
* [[Bill Catambay]], [http://pascal-central.com/ppl/index.html The Pascal Programming Language]
141 109

зьменаў