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

Зьвесткі зь Вікіпэдыі — вольнай энцыкляпэдыі
Змесціва выдалена Змесціва дададзена
д робат дадаў: af:Pascal
артаграфія, шаблён
Радок 1: Радок 1:
{{Артаграфія}}
'''Pascal''' (Паска́ль) — [[мовы праграмавання|мова праграмавання]] агульнага прызначэння, створаная [[Ніклаус Вірт|Ніклаусам Віртам]] у [[1970]] годзе як мова [[структурнае праграмаванне|структурнага праграмавання]].
'''Pascal''' (Паска́ль) — [[мовы праграмавання|мова праграмаваньня]] агульнага прызначэньня, створаная [[Ніклаўс Вірт|Ніклаўсам Віртам]] у [[1970]] годзе як мова [[структурнае праграмаваньне|структурнага праграмаваньня]].


''Pascal'' заснаваны на мове праграмавання ''[[Algol]]'' і названы ў гонар матэматыка і філосафа [[Блез Паскаль|Блеза Паскаля]]. Вірт таксама стварыў мовы праграмавання ''[[Modula-2]]'' і ''[[Oberon]]'', падобныя на ''Pascal'', аднак з дадатковымі сродкамі для [[аб'ектна-арыентаванае праграмаванне|аб'ектна-арыентаванага праграмавання]].
''Pascal'' заснаваны на мове праграмаваньня ''[[Algol]]'' і названы ў гонар матэматыка і філёзафа [[Блез Паскаль|Блеза Паскаля]]. Вірт таксама стварыў мовы праграмаваньня ''[[Modula-2]]'' і ''[[Oberon]]'', падобныя на ''Pascal'', аднак з дадатковымі сродкамі для [[аб'ектна-арыентаванае праграмаваньне|аб'ектна-арыентаванага праграмаваньня]].


Спачатку ''Pascal'' быў гіпатэтычнай мовай для навучэння студэнтаў структурнаму праграмаванню, і шмат студэнтаў вучыліся па ім. Варыянты ''Pascal'' выкарыстоўваюцца дагэтуль як у асвеце, так і ў праграмаванні.
Спачатку ''Pascal'' быў гіпатэтычнай мовай для навучаньня студэнтаў структурнаму праграмаваньню, і шмат студэнтаў вучыліся па ім. Варыянты ''Pascal'' выкарыстоўваюцца дагэтуль як у асьвеце, так і ў праграмаваньні.


Вялікая частка арыгінальная аперацыйнай сістэмы ''[[Apple Macintosh|Macintosh]]'' была напісана на ''Pascal''. Папулярная [[друкарня|друкарская]] сістэма ''[[TeX]]'' напісана на мове пад назвай ''[[WEB]]'', пры стварэнні якой [[Дональд Кнут]] шмат чаго узяў з ''Pascal''.
Вялікая частка арыгінальнай апэрацыйнай сістэмы ''[[Apple Macintosh|Macintosh]]'' была напісана на ''Pascal''. Папулярная [[друкарня|друкарская]] сістэма ''[[TeX]]'' напісана на мове пад назвай ''[[WEB]]'', пры стварэньні якой [[Дональд Кнут]] шмат чаго пераняў з ''Pascal''.


== Мова ==
== Мова ==


Усе [[праграма|праграмы]] на ''Pascal'' пачынаюцца з ключавога слова ''<code>program</code>'', неабавязковага спіска унутраных дэскрыптараў файла і блоку кода, які знаходзіцца паміж словамі ''<code>begin</code>'' і ''<code>end</code>''. Розніцы паміж вялікімі і маленькімі літарамі ў ''Pascal'' няма<ref>У адрозненне ад яго нашчадка – мовы ''[[Oberon]]'', дзе ключавыя словы абавязаныя пісацца вялікімі літарамі</ref>. [[Кропка з коскай]] раздзяляе выразы, а [[кропка]] заканчвае праграму (ці [[модуль]]).
Усе [[праграма|праграмы]] на ''Pascal'' пачынаюцца з ключавога слова ''<code>program</code>'', неабавязковага сьпісу ўнутраных дэскрыптараў файла і блёку кода, які знаходзіцца паміж словамі ''<code>begin</code>'' і ''<code>end</code>''. Розьніцы паміж вялікімі і маленькімі літарамі ў ''Pascal'' няма<ref>У адрозьненьне ад яго нашчадка – мовы ''[[Oberon]]'', дзе ключавыя словы павінны быць напісаныя вялікімі літарамі.</ref>. [[Кропка з коскай]] разьдзяляе выразы, а [[кропка]] заканчвае праграму (ці [[модуль]]).


<code>
<code>
Радок 18: Радок 19:
</code>
</code>


''Pascal'', у сваёй арыгінальнай форме, — выключна [[Працэдурнае праграмаваньне|працэдурная мова праграмавання]] са звыклымі для гэтага тыпа моў канструкцыямі ''<code>if</code>'', ''<code>while</code>'', ''<code>for</code>'' і падобнымі.
''Pascal'', у сваёй арыгінальнай форме, — выключна [[Працэдурнае праграмаваньне|працэдурная мова праграмаваньня]] са звыклымі для гэтага тыпу моў канструкцыямі ''<code>if</code>'', ''<code>while</code>'', ''<code>for</code>'' і падобнымі.


''Pascal'' — гэта [[структурнае праграмаванне|структурная мова праграмавання]], а гэта значыць, што ўвесь код разбіты на стандартныя выразы, лепей за ўсё без канструкцый безумоўнага пераходу (''<code>goto</code>'').
''Pascal'' — гэта [[структурнае праграмаваньне|структурная мова праграмаваньня]], а гэта значыць, што ўвесь код разбіты на стандартныя выразы, лепей за ўсё без канструкцый безумоўнага пераходу (''<code>goto</code>'').


<code>
<code>
Радок 45: Радок 46:
</code>
</code>


У ''Pascal'' праграмы разбіваюцца на [[працэдура|працэдуры]] і [[функцыя|функцыі]].
У ''Pascal'' праграмы разьбіваюцца на [[працэдура|працэдуры]] і [[функцыя|функцыі]].


<code>
<code>
Радок 67: Радок 68:
</code>
</code>


Працэдуры і функцыі могуць быць укладзенымі да любой ступені, і канструкцыя ''<code>program</code>'' — найвышэйшы блок.
Працэдуры і функцыі могуць быць укладзенымі да любой ступені, і канструкцыя ''<code>program</code>'' — найвышэйшы блёк.


У кожнага блока ёсць свае аб'яўлення [[метка|метак]] ''<code>goto</code>'', [[канстанта|канстант]], [[тып|тыпаў]], [[зменная|зменных]] і іншых працэдур і функцый, якія маюць ісці ў такім парадку, як тут пералічана.
Кожны блёк мае свае аб'яўленьні [[метка|метак]] ''<code>goto</code>'', [[канстанта]]ў, [[тып]]аў, [[зьменная|зьменных]] і іншых працэдур і функцый, якія маюць ісьці ў такім парадку, як тут пералічана.


У ''Pascal'' ёсць наступныя тыпы дадзеных: [[цэлы лік]], [[сімвал]] і [[лагічная зменная]] (простыя тыпы), а таксама новы тып, уведзены ў ''Pascal'' — пералічальны тып<ref>Дарэчы, у сваіх пазнейшых працах Вірт прызнае, што гэты тып з'яўляецца лішкавым і вынімае яго з мовы ''Oberon'', прапануючы карыстацца замест яго звычайнымі канстантамі</ref>.
У ''Pascal'' ёсьць наступныя тыпы дадзеных: [[цэлы лік]], [[сімвал]] і [[лягічная зьменная]] (простыя тыпы), а таксама новы тып, уведзены ў ''Pascal'' — пералічальны тып<ref>Дарэчы, у сваіх пазьнейшых працах Вірт прызнае, што гэты тып зьяўляецца лішкавым, і вынімае яго з мовы ''Oberon'', прапануючы карыстацца замест яго звычайнымі канстантамі.</ref>.


<code>
<code>
Радок 82: Радок 83:
</code>
</code>


Можна стварыць «дыяпазон» любога з пералічаных тыпаў.
Можна стварыць «дыяпазон» любога зь пералічаных тыпаў.


<code>
<code>
Радок 91: Радок 92:
</code>
</code>


Можна ствараць новыя тыпы на аснове іншых за дапамогай аб'яўлення тыпаў<ref>У пашырэнні мовы ад кампаніі ''[[Borland]]'' – ''[[Object Pascal]]'' (''[[Delphi]]'') – уведзены спецыяльны сінтаксіс для абвешчання тыпу, несумяшчальнага з тым, ад якога ён атрыманы:
Можна ствараць новыя тыпы на аснове іншых за дапамогай аб'яўленьня тыпаў<ref>У пашырэньні мовы ад кампаніі ''[[Borland]]'' – ''[[Object Pascal]]'' (''[[Delphi]]'') – уведзены спэцыяльны сынтаксіс для абвешчаньня тыпу, несумяшчальнага з тым, ад якога ён атрыманы:


<code>
<code>
Радок 118: Радок 119:
</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>.
Радкі ў клясычным ''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>.

=== Заўвагі ===
<references/>


== Hello World ==
== Hello World ==
Радок 135: Радок 133:
== Рэалізацыі ==
== Рэалізацыі ==


Першы кампілятар ''Pascal'' быў створаны ў [[Цюрых|Цюрыхе]] для сямейства кампутараў ''CDC 6000'' і ён быў гатовы ў [[1970]] годзе.
Першы кампілятар ''Pascal'' быў створаны ў [[Цюрых]]у ў [[1970]] для сямейства кампутараў ''CDC 6000''. Першы паўночнаамерыканскі кампілятар ''Pascal'' быў напісаны ў [[Унівэрсытэт Ілінойса|унівэрсытэце Ілінойса]] для ''[[PDP-11]]'' і ствараў [[машынны код]].


Для хуткага распаўсюджаньня мовы ў Цюрыху быў створаны «набор інструментаў для партаваньня кампілятара», які ўключаў кампілятар у код для віртуальнай машыны і праграму, якая выконвала гэты код. Гэты набор стаў называцца ''P''-сістэмай. Хаця зь яго дапамогай плянавалася стварэньне кампілятараў у машынны код, як мінімум адна сыстэма выкарыстоўвала яго для стварэньня інтэрпрэтуемай сыстэмы — ''[[UCSD p-System]]''.
Першы паўночнаамерыканскі кампілятар ''Pascal'' быў напісаны ў [[Універсітэт Ілінойса|Універсітэце Ілінойса]] для ''[[PDP-11]]'' і ствараў [[машынны код]].

Для хуткага распаўсюджання мовы ў Цюрыхе быў створаны «набор інструментаў для партавання кампілятара», які ўключаў кампілятар у код для віртуальнай машыны і праграму, якая выконвала гэты код. Гэты набор стаў называцца ''P''-сістэмай. Хаця з яго дапамогай планавалася стварэнне кампілятараў у машынны код, як мінімум адна сістэма выкарыстоўвала яго для стварэння інтэрпрэтуемай сістэмы — ''[[UCSD p-System]]''.


''[[IP Pascal]]'' быў рэалізацыяй ''Pascal'' для ''Micropolis DOS'', аднак ён хутка быў перанесены на ''[[CP/M]]'' для ''[[Z80]]''.
''[[IP Pascal]]'' быў рэалізацыяй ''Pascal'' для ''Micropolis DOS'', аднак ён хутка быў перанесены на ''[[CP/M]]'' для ''[[Z80]]''.


У пачатку [[1980-я|1980-х]] гадоў ''UCSD Pascal'' быў перанесены на камп'ютэры ''[[Apple II]]'' і ''[[Apple III]]'' як структурная мова праграмавання, бо ў той час з гэтымі камп'ютэрамі пастаўляўся інтэрпрэтатар мовы ''[[BASIC]]''.
У пачатку [[1980-я|1980-х]] гадоў ''UCSD Pascal'' быў перанесены на кампутары ''[[Apple II]]'' і ''[[Apple III]]'' як структурная мова праграмаваньня, бо ў той час з гэтымі кампутарамі пастаўляўся інтэрпрэтатар мовы ''[[BASIC]]''.


У пачатку 1980-х гадоў ''Anders Hejlsberg'' напісаў кампілятар ''Blue Label Pascal'' для ''Nascom-2''. Пазней ён уладкаваўся на працу ў кампанію ''[[Borland]]'' і перапісаў свой кампілятар для ''[[IBM PC]]'', і гэту версію назваў ''[[Turbo Pascal]]''. Гэты новы кампілятар каштаваў 49,95$, што было намнога меней за цану на кампілятар ''Blue Label Pascal''.
У пачатку 1980-х гадоў ''Anders Hejlsberg'' напісаў кампілятар ''Blue Label Pascal'' для ''Nascom-2''. Пазьней ён уладкаваўся на працу ў кампанію ''[[Borland]]'' і перапісаў свой кампілятар для ''[[IBM PC]]'', і гэту версію назваў ''[[Turbo Pascal]]''. Гэты новы кампілятар каштаваў 49,95$, што было намнога меней за цану на кампілятар ''Blue Label Pascal''.


Танны кампілятар ''Borland'' меў вялікі ўплыў на карыстальнікаў ''Pascal'', якія ў канцы 1980-х гадоў карысталіся ў асноўным ''IBM PC''. Шматлікія аматары праграмавання на ''PC'', якія раней шукалі структурную замену для мовы праграмавання BASIC, пачалі карыстацца гэтым прадуктам. ''Turbo Pascal'' быў даступны толькі для адной архітэктуры, таму ён кампіляваў код напрамую ў машынныя коды працэсара ''[[Intel 8088]]'', што дазваляла выконваць праграмы на ''Pascal'' хутчэй, чым праграмы на інтэрпрэтуемых мовах праграмавання.
Танны кампілятар ''Borland'' меў вялікі ўплыў на карыстальнікаў ''Pascal'', якія ў канцы 1980-х гадоў карысталіся ў асноўным ''IBM PC''. Шматлікія аматары праграмаваньня на ''PC'', якія раней шукалі структурную замену для мовы праграмаваньня BASIC, пачалі карыстацца гэтым прадуктам. ''Turbo Pascal'' быў даступны толькі для адной архітэктуры, таму ён кампіляваў код наўпрост у машынныя коды працэсара ''[[Intel 8088]]'', што дазваляла выконваць праграмы на ''Pascal'' хутчэй, чым праграмы на інтэрпрэтуемых мовах праграмаваньня.


''Super Pascal'' быў версіяй, якая дабавіла не лічбавыя меткі, аператар ''return'' і выразы як імёны тыпаў.
''Super Pascal'' быў версіяй, якая дадала не лічбавыя меткі, аператар ''return'' і выразы як імёны тыпаў.


У [[1990-я|1990-х]] гадах кампілятары, на якіх можна скампіляваць код для розных сістэм, сталі выкарыстоўвацца часцей, у тым ліку і ''Pascal'', які дазваляў кампіляцыю ў машынны код і ў той жа час лёгка пераносіўся на новае [[апаратнае забеспячэнне]].
У [[1990-я|1990-х]] гадах кампілятары, на якіх можна скампіляваць код для розных сістэм, сталі выкарыстоўвацца часьцей, у тым ліку і ''Pascal'', які дазваляў кампіляцыю ў машынны код і ў той жа час лёгка пераносіўся на новае [[апаратнае забесьпячэньне]].


У версіі ''Turbo Pascal 5.5'' ''Borland'' дабавіла ў ''Pascal'' [[аб'ектна-арыентаванае праграмаванне]].
У вэрсыі ''Turbo Pascal 5.5'' ''Borland'' дабавіла ў ''Pascal'' [[аб'ектна-арыентаванае праграмаваньне]] (ААП).


Аднак потым у ''Borland'' вырашылі, што патрэбен ''Pascal'' з лепей прадуманай рэалізацыяй ААП, і пачалі распрацоўку ''[[Delphi]]'', які выкарыстоўваў ідэі ''[[Object Pascal]]'', прапанаваныя ''[[Apple Computer|Apple]]'' як аснову. (Гэтыя ідэі ''Apple'' дагэтуль не сталі фармальным стандартам.) ''Borland'' таксама называў сваю рэалізацыю ''Object Pascal'' у першых версіях ''Delphi'', аднак змяніў назву на «мова праграмавання ''Delphi''» у далейшым. Асноўнае дапаўненне ў параўнанні з папярэднімі версіяміаснованая на спасылках (reference-based) аб'ектная мадэль, віртуальныя канструктары і дэструктары і ўласцівасці. Есці некалькі кампілятараў, аснаваных на гэтым дыялекце.
Аднак потым у ''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]]''. Аднак у ім адсутнічае падтрымка канцэпцыі ўкладзеных модуляў і імпарту/экспарту асобных сімвалаў.
''Turbo Pascal'' і іншыя рэалізацыі з канцэпцыяй модуляў (''units'' ці ''module'') — гэта [[модульнасьць (праграмаваньне)|модульныя мовы]]. ''Turbo Pascal'' скапіяваў гэтая канцэпцыі ці з стандарту пашыранага ''Pascal'', ці зь яго пасьлядоўніка ''[[Modula-2]]''. Аднак у ім адсутнічае падтрымка канцэпцыі ўкладзеных модуляў і імпарту/экспарту асобных сімвалаў.


Для кампілятараў ''Turbo Pascal'' радок ''рrogram'' неабавязковы.
Для кампілятараў ''Turbo Pascal'' радок ''рrogram'' неабавязковы.
Радок 163: Радок 159:
== Стандарты ==
== Стандарты ==


У 1983 мовы была стандартызована у міжнарожным стандарце ISO/IEC 7185, а таксама у частцы мясцовых станжартаз, у тым ліку ў амерыканскім ANSI/IEEE770X3.97-1983. У 1990 быў створаны стандарт разшыранага Паскалю (extended Pascal) як ISO/IEC 10206.
У 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.
ISO 7185 быў створаны для праясьненьня мовы Вірта, створанай у 1974, у такім выглядзе, якой яна была апісана ў кіраўніцтве карыстальніка і ў Report [Jensen and Wirth], аднак з дабаўленьнем "Conformant Array Parameters" як узровень 1 стандарту, узровень 0 – Паскаль без Conformant Arrays.


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


== Даступныя кампітлятары ==
== Даступныя кампілятары ==
Есць некалькі кампілятараў Паскаля, даступныя для агульнага выкарыстання:
Ёсьць некалькі кампілятараў Паскаля, даступных для агульнага выкарыстаньня:
* [http://homepages.cwi.nl/~steven/pascal/ P4 compiler], аснова шматлікіх кампілятараў Паскаля, напісаных на паскале, у тым ліку [[UCSD p-System]].
* [http://homepages.cwi.nl/~steven/pascal/ P4 compiler], аснова шматлікіх кампілятараў Паскаля, напісаных на Паскалі, у тым ліку [[UCSD p-System]].
* [[Free Pascal]] напісаны на Паскале (таму можа скампіляваць сам сябе), і яго мэта – стварэнне зручнага і магутнага кампілятара, які можа кампіляваць гатовыя праграмы і ствараць новыя. Ен таксама вольна распаўсюджваецца па ўмовам GNU GPL. Ён дазваляе змешваць код Turbo Pascal і Delphi, а таксама падтрымлівае шмат платформ і аперацыйных сістэм
* [[Free Pascal]] напісаны на Паскалі (таму можа скампіляваць сам сябе), і яго мэта – стварэньне зручнага і магутнага кампілятара, які можа кампіляваць гатовыя праграмы і ствараць новыя. Ен таксама вольна распаўсюджваецца па ўмовам GNU GPL. Ён дазваляе зьмешваць код Turbo Pascal і Delphi, а таксама падтрымлівае шмат платформ і апэрацыйных сыстэм.
* [[Turbo Pascal]] быў асноўным кампілятарам Паскалю у 80-х і на пачатку 90-х, які выкарыстоўвалі, таму што ў яго былі магутныя разшырэння і вельмі малы час кампіляцыі. Зараз старыя версіі Turbo Pascal (да 5.5) даступны для загрузкі з сайта Borland (патрэбна рэгістрація).
* [[Turbo Pascal]] быў асноўным кампілятарам Паскалю у 80-х і на пачатку 90-х, які выкарыстоўвалі, таму што ў яго былі магутныя разшырэньні і вельмі малы час кампіляцыі. Зараз старыя версіі Turbo Pascal (да 5.5) даступны для загрузкі з сайта Borland (патрэбна рэгістрацыя).
* [http://www.chromesville.com Chrome] – гэта кампілятар Паскалю для новага пакалення мовы Object Pascal для [[Microsoft .NET|.NET]] і [[Платформа разробкі Mono|Mono]], створаны RemObjects Software.
* [http://www.chromesville.com Chrome] – гэта кампілятар Паскалю для новага пакаленьня мовы Object Pascal для [[Microsoft .NET|.NET]] і [[Плятформа распрацоўкі Mono|Mono]], створаны RemObjects Software.
* [http://www.gnu-pascal.org/ GNU Pascal Compiler] (GPC) — гэта кампілятар Паскалю з [[GNU Compiler Collection]] (GCC, Калекцыі кампілятараў GNU). Сам кампілятар напісаны на C, бібліятэка часу выканання — у асноўным на Паскалі. Вольна распаўсюджваецца згодна з умовамі [[GNU General Public License]], і запускаецца на шматлікіх платформах і аперацыйных сістэмах. Ен падтрымлівае як мову стандартаў ANSI/ISO, так і мову Borland/Turbo Pascal. Падтрымка Borland Delphi і іншых версій мовы пакуль што вельмі малая.
* [http://www.gnu-pascal.org/ GNU Pascal Compiler] (GPC) — гэта кампілятар Паскалю з [[GNU Compiler Collection]] (GCC, Калекцыі кампілятараў GNU). Сам кампілятар напісаны на [[C (мова праграмаваньня)|Сі]], бібліятэка часу выкананьня — у асноўным на Паскалі. Вольна распаўсюджваецца згодна з умовамі [[GNU General Public License]], і запускаецца на шматлікіх платформах і апэрацыйных сыстэмах. Ён падтрымлівае як мову стандартаў ANSI/ISO, так і мову Borland/Turbo Pascal. Падтрымка Borland Delphi і іншых версій мовы пакуль што вельмі малая.
* [http://www.borland.com/delphi/ Delphi] – гэта прадукт Borland з падтрымкай RAD (Хуткага створання праграм). Ён выкарыстовуе [[Delphi (мова праграмаваньня)|мову праграмавання Delphi]], якая пайшла ад мовы 'Pascal', для стварэння праграм для Windows. Апошняя версія таксама падтрымлівае кампіляцыю для платформы [[Microsoft .NET|.NET]].
* [http://www.borland.com/delphi/ Delphi] – гэта прадукт Borland з падтрымкай RAD (хуткага стварэньня праграм). Ён выкарыстоўвае [[Delphi (мова праграмаваньня)|мову праграмаваньня Delphi]], якая пайшла ад мовы 'Pascal', для стварэньня праграмаў для [[Windows]]. Апошняя вэрсыя таксама падтрымлівае кампіляцыю для плятформы [[Microsoft .NET|.NET]].
* [http://www.borland.com/kylix/ Kylix] – гэта навейшая разробка Borland сярод іх паскальных прадуктаў. Гэта паслядоўнік [[Delphi|Delphi]] з падтрымкай аперацыйнай сыстэмы [[Linux]] і палепшанай бібліятэкай аб'ектаў. Кампілятар і IDE (серадовішча разробкі) зараз даступны для некамерцыйнага выкарыстання. Зараз гэты праэкт закінуты.
* [http://www.borland.com/kylix/ Kylix] – гэта найноўшая распрацоўка Borland сярод іх паскальных прадуктаў. Гэта пасьлядоўнік [[Delphi|Delphi]] з падтрымкай апэрацыйнай сыстэмы [[Linux]] і палепшанай бібліятэкай аб'ектаў. Кампілятар і IDE (серадовішча разробкі) зараз даступны для некамэрцыйнага выкарыстаньня. Зараз гэты праэкт закінуты.
* [http://www.visible-software.com/prod-dp.html Dr. Pascal] – гэта інтэрпрэтатар, які выконвае стандартны паскаль. Варта адзначыць рэжым "бачнага выканання", у якім паказваецца выконваемая праграма і яе зменныя, і развітую праверка на памылкі ў час выканання. Выконвае праграмы, але не стварае асобных выконваемых дваічных файлаў. Працуе ў MS-DOS, у Window у акне эмуляцыі DOS і на старых Macintosh.
* [http://www.visible-software.com/prod-dp.html Dr. Pascal] – гэта інтэрпрэтатар, які выконвае стандартны Паскаль. Варта адзначыць рэжым "бачнага выкананьня", у якім паказваецца выконваемая праграма і яе зьменныя, і развітую праверку на памылкі ў час выкананьня. Выконвае праграмы, але не стварае асобных выконваемых дваічных файлаў. Працуе ў MS-DOS, у Windows у акне эмуляцыі DOS і на старых Macintosh.
* [http://www.vpascal.com/ Virtual Pascal] быў створаны Vitaly Miryanov у 1995 як кампілятар для OS/2 з падтрымкай сінтакса Borland Pascal. Потым яго камерцыйна развінула fPrint, дадала падтрымку Win32 і ў 2000 ён стаў freeware. Сёння ён можа кампіляваць праграмы для Win32, OS/2 і Linux і большай часткай сумясцімы з Borland Pascal і Delphi.
* [http://www.vpascal.com/ Virtual Pascal] быў створаны Vitaly Miryanov у 1995 як кампілятар для OS/2 з падтрымкай сынтаксысу Borland Pascal. Потым яго камерцыйна развінула fPrint, дадала падтрымку Win32, і ў 2000 ён стаў freeware. Сёньня ён можа кампіляваць праграмы для Win32, OS/2 і Linux і большай часткай сумяшчальны з Borland Pascal і Delphi.
* [http://www.moorecad.com/ippas/ IP Pascal] быў арыгінальна Паскалем для Z80/CP/M. Потым ён быў перанесены на Intel 80386/PC. У IP Pascal ёсць устроеная бібліятэка для партавання. Напрыклад, стандартную праграму вываду тэксту на Паскалі 1970-х гадоў можна перакампіляваць і яна будзе працаваць у акне, нават з дадатковымі графічнымі канструкцыямі. IP Pascal падтрымлівае ISO 7185 з часткай лагічных дапоўненняў. Напрыклад, "padded right" строкі стандртнага паскалю падтрымліваюцца і інтэграваны ў дынамічныя строкі. Статычныя масівы стандартнага паскалю дапоўнены дынамічнымі масівамі, якія поўнасцю сумясцімыя з статычнымі масівамі і так далей.
* [http://www.moorecad.com/ippas/ IP Pascal] быў арыгінальна Паскалем для Z80/CP/M. Потым ён быў перанесены на Intel 80386/PC. У IP Pascal ёсць убудаваная бібліятэка для партаваньня. Напрыклад, стандартную праграму вываду тэксту на Паскалі 1970-х гадоў можна перакампіляваць, і яна будзе працаваць у акне, нават з дадатковымі графічнымі канструкцыямі. IP Pascal падтрымлівае ISO 7185 з часткай лягічных дапаўненьняў. Напрыклад, "padded right" радкі стандартнага Паскалю падтрымліваюцца і інтэграваны ў дынамічныя радкі. Статычныя масівы стандартнага Паскалю дапоўнены дынамічнымі масівамі, якія цалкам сумяшчальныя з статычнымі масівамі, і так далей.
* [http://www.winsoft.sk/pstudio.htm Pocket Studio] – гэта кампілятар/RAD мовы Object Pascal (Delphi?) для ARM/Palm з часткай уласных дапоўненняў.
* [http://www.winsoft.sk/pstudio.htm Pocket Studio] – гэта кампілятар/RAD мовы Object Pascal (Delphi?) для ARM/Palm з часткай уласных дапаўненьняў.
* [http://www.lazarus.freepascal.org Lazarus] – гэта кросплатформеная версія Візуальнага RAD IDE. [[Lazarus_(software)|Lazarus]] выкарыстоўвуе кампілятар [[Free Pascal]].
* [http://www.lazarus.freepascal.org Lazarus] – гэта кросплятформавая вэрсыя візуальнага RAD IDE. [[Lazarus_(software)|Lazarus]] выкарыстоўвае кампілятар [[Free Pascal]].


Вельмі вялікі спіс можна знайці на сайце [http://pascaland.org Pascaland]. Гэта сайт на французкай мове, аднак у асноўным гэта проста спіс кампілятараў, таму гэта не так важліва. Вы таксама можаце паглядзель на сайт [http://pascal-central.com Pascal Central], на якім змешчана інфармацыя пра Паскаль для Mac, у тым ліку багатая калекцыя артыкулаў, і спасылкі на шмат кампілятараў і падручнікаў.
Вельмі вялікі сьпіс можна знайсьці на сайце [http://pascaland.org Pascaland]. Гэта сайт на французкай мове, аднак у асноўным гэта проста сьпіс кампілятараў, таму гэта ня так важка. Вы таксама можаце паглядзець на сайт [http://pascal-central.com Pascal Central], на якім зьмешчаная інфармацыя пра Паскаль для Mac, у тым ліку багатая калекцыя артыкулаў, і спасылкі на шмат кампілятараў і падручнікаў.


== Крытыка ў мінулым ==
== Крытыка ў мінулым ==
Калі Паскаль быў вельмі папулярным (аднак ён быў яшчэ болей папулярным у 1980-х і на пачатку 1990-х, чым у час напісання), раннія версіі Паскаля шырока крытыкаваліся у тым, што іх не можна "сур'ёзна" выкарыстоўваць акрамя як для наўчання. Браян Керыган, знакаміты папулярызатар мовы C, апісаў сваі аргументы ў 1981 годзе ў яго рабоце «[http://www.lysator.liu.se/c/bwk-on-pascal.html Чаму Паскаль не з'яўляецца маёй улюбленай мовай праграмавання]». З другога боку, шмат вялікіх разробак 1980-х, такія як [[Apple Lisa]] і [[Apple Macintosh|Macintosh]], шмат у чам апіраліся на Паскаль. У дзесяцігоддзя пасля гэтага Паскаль прадоўжваў сваё развіццё, таму большасць аргументаў таго часу нельга выкарыстоўваць да яго сучасных рэалізацый. Аднак большасць гэтых дапаўненняў не сумясцімы паміж кампілятарамі, хоць у апошнім дзесяцігоддзі яны, здаецца, аформіліся у дзве групы: ISO ці 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]], якія былі яшчэ болей развітыя, аднак не мелі камерцыйнага поспеху Паскаля.
Выкарыстоўваючы досьвед, атрыманы пры стварэньні Паскаля, [[Ніклаўс Вірт]] стварыў яшчэ дзьве мовы праграмаваньня, [[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/]
* [[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
* Niklaus Wirth: ''The Programming Language Pascal.'' Acta Informatica, 1, (Jun 1971) 35-63
Радок 201: Радок 197:
* [[Bill Catambay]], [http://pascal-central.com/ppl/index.html The Pascal Programming Language]
* [[Bill Catambay]], [http://pascal-central.com/ppl/index.html The Pascal Programming Language]
* [http://www.allegro.com/papers/htpp.html How To Code: Pascal]
* [http://www.allegro.com/papers/htpp.html How To Code: Pascal]

=== Заўвагі ===
{{зноскі}}


[[Катэгорыя:Мовы праграмаваньня]]
[[Катэгорыя:Мовы праграмаваньня]]

Вэрсія ад 23:12, 26 жніўня 2008

Pascal (Паска́ль) — мова праграмаваньня агульнага прызначэньня, створаная Ніклаўсам Віртам у 1970 годзе як мова структурнага праграмаваньня.

Pascal заснаваны на мове праграмаваньня Algol і названы ў гонар матэматыка і філёзафа Блеза Паскаля. Вірт таксама стварыў мовы праграмаваньня Modula-2 і Oberon, падобныя на Pascal, аднак з дадатковымі сродкамі для аб'ектна-арыентаванага праграмаваньня.

Спачатку Pascal быў гіпатэтычнай мовай для навучаньня студэнтаў структурнаму праграмаваньню, і шмат студэнтаў вучыліся па ім. Варыянты Pascal выкарыстоўваюцца дагэтуль як у асьвеце, так і ў праграмаваньні.

Вялікая частка арыгінальнай апэрацыйнай сістэмы Macintosh была напісана на Pascal. Папулярная друкарская сістэма TeX напісана на мове пад назвай WEB, пры стварэньні якой Дональд Кнут шмат чаго пераняў з Pascal.

Мова

Усе праграмы на Pascal пачынаюцца з ключавога слова program, неабавязковага сьпісу ўнутраных дэскрыптараў файла і блёку кода, які знаходзіцца паміж словамі begin і end. Розьніцы паміж вялікімі і маленькімі літарамі ў Pascal няма[1]. Кропка з коскай разьдзяляе выразы, а кропка заканчвае праграму (ці модуль).

program HelloWorld(Output);
begin
    WriteLn('Hello, World!')
end.

Pascal, у сваёй арыгінальнай форме, — выключна працэдурная мова праграмаваньня са звыклымі для гэтага тыпу моў канструкцыямі if, while, for і падобнымі.

Pascal — гэта структурная мова праграмаваньня, а гэта значыць, што ўвесь код разбіты на стандартныя выразы, лепей за ўсё без канструкцый безумоўнага пераходу (goto).

while a <> b do
begin
    WriteLn('Waiting');
end;
 
if a > b then
begin
    WriteLn('Condition met');
end
else 
begin
    WriteLn('Condition false');
end;
 
for i := 1 to 10 do 
    WriteLn('Iteration: ', i:1);
 
repeat
    a := a + 1;
until a = 10;

У Pascal праграмы разьбіваюцца на працэдуры і функцыі.

program Mine(Output);
procedure print(var i: integer);
      function next(i: integer): integer;
      begin
           next := i + 1;
      end;
 
 begin
      WriteLn('The total is: ', i);
      i := next(i);
 end;
 
begin
    i := 1;
    while i <= 10 do 
        print(i);
end.

Працэдуры і функцыі могуць быць укладзенымі да любой ступені, і канструкцыя program — найвышэйшы блёк.

Кожны блёк мае свае аб'яўленьні метак goto, канстантаў, тыпаў, зьменных і іншых працэдур і функцый, якія маюць ісьці ў такім парадку, як тут пералічана.

У Pascal ёсьць наступныя тыпы дадзеных: цэлы лік, сімвал і лягічная зьменная (простыя тыпы), а таксама новы тып, уведзены ў Pascal — пералічальны тып[2].

program Myprog;
var
    a: integer;
    b: char;
    c: boolean;
    d: (one, two, three, four, five);

Можна стварыць «дыяпазон» любога зь пералічаных тыпаў.

var
    x: 1..10;
    y: 'a'..'z';
    z: two..four;

Можна ствараць новыя тыпы на аснове іншых за дапамогай аб'яўленьня тыпаў[3]:

program MyOtherProg;
type
    x = integer;
    y = x;
...

Болей складаныя тыпы можна стварыць за дапамогай простых тыпаў:

type 
    a = array [1..10] of integer;
    b = record
            a: integer;
            b: char;
        end;
    c = file of a;

Радкі ў клясычным Pascal — гэта масівы сымбаляў[4].

Hello World

program HelloWorld(input, output);
 
begin
    WriteLn('Hello, World!');
end.

Рэалізацыі

Першы кампілятар Pascal быў створаны ў Цюрыху ў 1970 для сямейства кампутараў CDC 6000. Першы паўночнаамерыканскі кампілятар Pascal быў напісаны ў унівэрсытэце Ілінойса для PDP-11 і ствараў машынны код.

Для хуткага распаўсюджаньня мовы ў Цюрыху быў створаны «набор інструментаў для партаваньня кампілятара», які ўключаў кампілятар у код для віртуальнай машыны і праграму, якая выконвала гэты код. Гэты набор стаў называцца P-сістэмай. Хаця зь яго дапамогай плянавалася стварэньне кампілятараў у машынны код, як мінімум адна сыстэма выкарыстоўвала яго для стварэньня інтэрпрэтуемай сыстэмы — UCSD p-System.

IP Pascal быў рэалізацыяй Pascal для Micropolis DOS, аднак ён хутка быў перанесены на CP/M для Z80.

У пачатку 1980-х гадоў UCSD Pascal быў перанесены на кампутары Apple II і Apple III як структурная мова праграмаваньня, бо ў той час з гэтымі кампутарамі пастаўляўся інтэрпрэтатар мовы BASIC.

У пачатку 1980-х гадоў Anders Hejlsberg напісаў кампілятар Blue Label Pascal для Nascom-2. Пазьней ён уладкаваўся на працу ў кампанію Borland і перапісаў свой кампілятар для IBM PC, і гэту версію назваў Turbo Pascal. Гэты новы кампілятар каштаваў 49,95$, што было намнога меней за цану на кампілятар Blue Label Pascal.

Танны кампілятар Borland меў вялікі ўплыў на карыстальнікаў Pascal, якія ў канцы 1980-х гадоў карысталіся ў асноўным IBM PC. Шматлікія аматары праграмаваньня на PC, якія раней шукалі структурную замену для мовы праграмаваньня BASIC, пачалі карыстацца гэтым прадуктам. Turbo Pascal быў даступны толькі для адной архітэктуры, таму ён кампіляваў код наўпрост у машынныя коды працэсара Intel 8088, што дазваляла выконваць праграмы на Pascal хутчэй, чым праграмы на інтэрпрэтуемых мовах праграмаваньня.

Super Pascal быў версіяй, якая дадала не лічбавыя меткі, аператар return і выразы як імёны тыпаў.

У 1990-х гадах кампілятары, на якіх можна скампіляваць код для розных сістэм, сталі выкарыстоўвацца часьцей, у тым ліку і Pascal, які дазваляў кампіляцыю ў машынны код і ў той жа час лёгка пераносіўся на новае апаратнае забесьпячэньне.

У вэрсыі Turbo Pascal 5.5 Borland дабавіла ў Pascal аб'ектна-арыентаванае праграмаваньне (ААП).

Аднак потым у Borland вырашылі, што патрэбен Pascal зь лепей прадуманай рэалізацыяй ААП, і пачалі распрацоўку Delphi, які выкарыстоўваў ідэі Object Pascal, прапанаваныя Apple як аснову. (Гэтыя ідэі Apple дагэтуль ня сталі фармальным стандартам.) Borland таксама называў сваю рэалізацыю Object Pascal у першых вэрсыях Delphi, аднак зьмяніў назву на «мова праграмаваньня Delphi» у далейшым. Асноўнае дапаўненьне ў параўнаньні з папярэднімі вэрсыямі — заснаваная на спасылках (reference-based) аб'ектная мадэль, віртуальныя канструктары і дэструктары, і ўласьцівасьці. Існуе некалькі кампілятараў, аснаваных на гэтым дыялекце.

Turbo Pascal і іншыя рэалізацыі з канцэпцыяй модуляў (units ці module) — гэта модульныя мовы. Turbo Pascal скапіяваў гэтая канцэпцыі ці з стандарту пашыранага Pascal, ці зь яго пасьлядоўніка Modula-2. Аднак у ім адсутнічае падтрымка канцэпцыі ўкладзеных модуляў і імпарту/экспарту асобных сімвалаў.

Для кампілятараў Turbo Pascal радок рrogram неабавязковы.

Стандарты

У 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.

Даступныя кампілятары

Ёсьць некалькі кампілятараў Паскаля, даступных для агульнага выкарыстаньня:

  • P4 compiler, аснова шматлікіх кампілятараў Паскаля, напісаных на Паскалі, у тым ліку UCSD p-System.
  • Free Pascal напісаны на Паскалі (таму можа скампіляваць сам сябе), і яго мэта – стварэньне зручнага і магутнага кампілятара, які можа кампіляваць гатовыя праграмы і ствараць новыя. Ен таксама вольна распаўсюджваецца па ўмовам GNU GPL. Ён дазваляе зьмешваць код Turbo Pascal і Delphi, а таксама падтрымлівае шмат платформ і апэрацыйных сыстэм.
  • Turbo Pascal быў асноўным кампілятарам Паскалю у 80-х і на пачатку 90-х, які выкарыстоўвалі, таму што ў яго былі магутныя разшырэньні і вельмі малы час кампіляцыі. Зараз старыя версіі Turbo Pascal (да 5.5) даступны для загрузкі з сайта Borland (патрэбна рэгістрацыя).
  • Chrome – гэта кампілятар Паскалю для новага пакаленьня мовы Object Pascal для .NET і Mono, створаны RemObjects Software.
  • GNU Pascal Compiler (GPC) — гэта кампілятар Паскалю з GNU Compiler Collection (GCC, Калекцыі кампілятараў GNU). Сам кампілятар напісаны на Сі, бібліятэка часу выкананьня — у асноўным на Паскалі. Вольна распаўсюджваецца згодна з умовамі GNU General Public License, і запускаецца на шматлікіх платформах і апэрацыйных сыстэмах. Ён падтрымлівае як мову стандартаў ANSI/ISO, так і мову Borland/Turbo Pascal. Падтрымка Borland Delphi і іншых версій мовы пакуль што вельмі малая.
  • Delphi – гэта прадукт Borland з падтрымкай RAD (хуткага стварэньня праграм). Ён выкарыстоўвае мову праграмаваньня Delphi, якая пайшла ад мовы 'Pascal', для стварэньня праграмаў для Windows. Апошняя вэрсыя таксама падтрымлівае кампіляцыю для плятформы .NET.
  • Kylix – гэта найноўшая распрацоўка Borland сярод іх паскальных прадуктаў. Гэта пасьлядоўнік Delphi з падтрымкай апэрацыйнай сыстэмы Linux і палепшанай бібліятэкай аб'ектаў. Кампілятар і IDE (серадовішча разробкі) зараз даступны для некамэрцыйнага выкарыстаньня. Зараз гэты праэкт закінуты.
  • Dr. Pascal – гэта інтэрпрэтатар, які выконвае стандартны Паскаль. Варта адзначыць рэжым "бачнага выкананьня", у якім паказваецца выконваемая праграма і яе зьменныя, і развітую праверку на памылкі ў час выкананьня. Выконвае праграмы, але не стварае асобных выконваемых дваічных файлаў. Працуе ў MS-DOS, у Windows у акне эмуляцыі DOS і на старых Macintosh.
  • Virtual Pascal быў створаны Vitaly Miryanov у 1995 як кампілятар для OS/2 з падтрымкай сынтаксысу Borland Pascal. Потым яго камерцыйна развінула fPrint, дадала падтрымку Win32, і ў 2000 ён стаў freeware. Сёньня ён можа кампіляваць праграмы для Win32, OS/2 і Linux і большай часткай сумяшчальны з Borland Pascal і Delphi.
  • IP Pascal быў арыгінальна Паскалем для Z80/CP/M. Потым ён быў перанесены на Intel 80386/PC. У IP Pascal ёсць убудаваная бібліятэка для партаваньня. Напрыклад, стандартную праграму вываду тэксту на Паскалі 1970-х гадоў можна перакампіляваць, і яна будзе працаваць у акне, нават з дадатковымі графічнымі канструкцыямі. IP Pascal падтрымлівае ISO 7185 з часткай лягічных дапаўненьняў. Напрыклад, "padded right" радкі стандартнага Паскалю падтрымліваюцца і інтэграваны ў дынамічныя радкі. Статычныя масівы стандартнага Паскалю дапоўнены дынамічнымі масівамі, якія цалкам сумяшчальныя з статычнымі масівамі, і так далей.
  • Pocket Studio – гэта кампілятар/RAD мовы Object Pascal (Delphi?) для ARM/Palm з часткай уласных дапаўненьняў.
  • Lazarus – гэта кросплятформавая вэрсыя візуальнага RAD IDE. Lazarus выкарыстоўвае кампілятар Free Pascal.

Вельмі вялікі сьпіс можна знайсьці на сайце Pascaland. Гэта сайт на французкай мове, аднак у асноўным гэта проста сьпіс кампілятараў, таму гэта ня так важка. Вы таксама можаце паглядзець на сайт Pascal Central, на якім зьмешчаная інфармацыя пра Паскаль для Mac, у тым ліку багатая калекцыя артыкулаў, і спасылкі на шмат кампілятараў і падручнікаў.

Крытыка ў мінулым

Калі Паскаль быў вельмі папулярным (аднак ён быў яшчэ болей папулярным у 1980-х і на пачатку 1990-х, чым у час напісаньня), раннія вэрсыі Паскаля шырока крытыкаваліся ў тым, што іх ня можна "сур'ёзна" выкарыстоўваць, акрамя як для навучаньня. Браян Кэрыган, знакаміты папулярызатар мовы Сі, апісаў свае аргумэнты ў 1981 годзе ў рабоце «Чаму Паскаль не з'яўляецца маёй улюбленай мовай праграмаваньня». З другога боку, шмат вялікіх распрацовак 1980-х, такія як Apple Lisa і Macintosh, шмат у чым абапіраліся на Паскаль. У наступным дзесяцігодзьдзі пасьля гэтага Паскаль працягваў сваё разьвіцьцё, таму большасьць аргумэнтаў таго часу нельга выкарыстоўваць да яго сучасных рэалізацый. Аднак большасьць гэтых дапаўненьняў несумяшчальныя паміж кампілятарамі, хоць у апошнім дзесяцігодзьдзі яны, здаецца, аформіліся ў дзьве групы: ISO ці Borland-падобныя.

Выкарыстоўваючы досьвед, атрыманы пры стварэньні Паскаля, Ніклаўс Вірт стварыў яшчэ дзьве мовы праграмаваньня, Modula-2 і Oberon, якія былі яшчэ болей разьвітыя, аднак ня мелі камэрцыйнага посьпеху Паскаля.

Далейшае чытаньне

Заўвагі

  1. ^ У адрозьненьне ад яго нашчадка – мовы Oberon, дзе ключавыя словы павінны быць напісаныя вялікімі літарамі.
  2. ^ Дарэчы, у сваіх пазьнейшых працах Вірт прызнае, што гэты тып зьяўляецца лішкавым, і вынімае яго з мовы Oberon, прапануючы карыстацца замест яго звычайнымі канстантамі.
  3. ^ У пашырэньні мовы ад кампаніі BorlandObject Pascal (Delphi) – уведзены спэцыяльны сынтаксіс для абвешчаньня тыпу, несумяшчальнага з тым, ад якога ён атрыманы: type TSpecInteger = type integer;
  4. ^ У пашырэньні ад Borland (пачынаючы з Turbo Pascal) уведзены спэцыяльны тып – string, які падтрымлівае большасьць апэрацый над радкамі сымбаляў, у тым ліку складаньне двух радкоў запісам S:=S1+S2;. Пазьней гэты тып быў пашыраны для таго, каб падтрымліваць любую колькасьць сымбаляў (спачатку да 255 – Turbo Pascal 4.0, потым да сымбаляў – Object Pascal/Delphi 4.0).