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

279 байтаў дададзена ,  13 гадоў таму
артаграфія, шаблён
д (робат дадаў: af:Pascal)
(артаграфія, шаблён)
{{Артаграфія}}
'''Pascal''' (Паска́ль) — [[мовы праграмавання|мова праграмаванняпраграмаваньня]] агульнага прызначэнняпрызначэньня, створаная [[НіклаусНіклаўс Вірт|НіклаусамНіклаўсам Віртам]] у [[1970]] годзе як мова [[структурнае праграмаваннепраграмаваньне|структурнага праграмаванняпраграмаваньня]].
 
''Pascal'' заснаваны на мове праграмаванняпраграмаваньня ''[[Algol]]'' і названы ў гонар матэматыка і філосафафілёзафа [[Блез Паскаль|Блеза Паскаля]]. Вірт таксама стварыў мовы праграмаванняпраграмаваньня ''[[Modula-2]]'' і ''[[Oberon]]'', падобныя на ''Pascal'', аднак з дадатковымі сродкамі для [[аб'ектна-арыентаванае праграмаваннепраграмаваньне|аб'ектна-арыентаванага праграмаванняпраграмаваньня]].
 
Спачатку ''Pascal'' быў гіпатэтычнай мовай для навучэннянавучаньня студэнтаў структурнаму праграмаваннюпраграмаваньню, і шмат студэнтаў вучыліся па ім. Варыянты ''Pascal'' выкарыстоўваюцца дагэтуль як у асвецеасьвеце, так і ў праграмаванніпраграмаваньні.
 
Вялікая частка арыгінальнаяарыгінальнай аперацыйнайапэрацыйнай сістэмы ''[[Apple Macintosh|Macintosh]]'' была напісана на ''Pascal''. Папулярная [[друкарня|друкарская]] сістэма ''[[TeX]]'' напісана на мове пад назвай ''[[WEB]]'', пры стварэнністварэньні якой [[Дональд Кнут]] шмат чаго узяўпераняў з ''Pascal''.
 
== Мова ==
 
Усе [[праграма|праграмы]] на ''Pascal'' пачынаюцца з ключавога слова ''<code>program</code>'', неабавязковага спіскасьпісу унутраныхўнутраных дэскрыптараў файла і блокублёку кода, які знаходзіцца паміж словамі ''<code>begin</code>'' і ''<code>end</code>''. РозніцыРозьніцы паміж вялікімі і маленькімі літарамі ў ''Pascal'' няма<ref>У адрозненнеадрозьненьне ад яго нашчадка – мовы ''[[Oberon]]'', дзе ключавыя словы абавязаныяпавінны пісаццабыць напісаныя вялікімі літарамі.</ref>. [[Кропка з коскай]] раздзяляеразьдзяляе выразы, а [[кропка]] заканчвае праграму (ці [[модуль]]).
 
<code>
</code>
 
''Pascal'', у сваёй арыгінальнай форме, — выключна [[Працэдурнае праграмаваньне|працэдурная мова праграмаванняпраграмаваньня]] са звыклымі для гэтага тыпатыпу моў канструкцыямі ''<code>if</code>'', ''<code>while</code>'', ''<code>for</code>'' і падобнымі.
 
''Pascal'' — гэта [[структурнае праграмаваннепраграмаваньне|структурная мова праграмаванняпраграмаваньня]], а гэта значыць, што ўвесь код разбіты на стандартныя выразы, лепей за ўсё без канструкцый безумоўнага пераходу (''<code>goto</code>'').
 
<code>
</code>
 
У ''Pascal'' праграмы разбіваюццаразьбіваюцца на [[працэдура|працэдуры]] і [[функцыя|функцыі]].
 
<code>
</code>
 
Працэдуры і функцыі могуць быць укладзенымі да любой ступені, і канструкцыя ''<code>program</code>'' — найвышэйшы блокблёк.
 
УКожны кожнагаблёк блока ёсцьмае свае аб'яўленняяўленьні [[метка|метак]] ''<code>goto</code>'', [[канстанта|канстант]]ў, [[тып|тыпаў]]аў, [[зменнаязьменная|зменныхзьменных]] і іншых працэдур і функцый, якія маюць ісціісьці ў такім парадку, як тут пералічана.
 
У ''Pascal'' ёсцьёсьць наступныя тыпы дадзеных: [[цэлы лік]], [[сімвал]] і [[лагічнаялягічная зменнаязьменная]] (простыя тыпы), а таксама новы тып, уведзены ў ''Pascal'' — пералічальны тып<ref>Дарэчы, у сваіх пазнейшыхпазьнейшых працах Вірт прызнае, што гэты тып з'яўляеццазьяўляецца лішкавым, і вынімае яго з мовы ''Oberon'', прапануючы карыстацца замест яго звычайнымі канстантамі.</ref>.
 
<code>
</code>
 
Можна стварыць «дыяпазон» любога ззь пералічаных тыпаў.
 
<code>
</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>.
 
=== Заўвагі ===
<references/>
 
== Hello World ==
== Рэалізацыі ==
 
Першы кампілятар ''Pascal'' быў створаны ў [[Цюрых|Цюрыхе]]у ў [[1970]] для сямейства кампутараў ''CDC 6000''. іПершы ёнпаўночнаамерыканскі кампілятар ''Pascal'' быў гатовынапісаны ў [[1970Унівэрсытэт Ілінойса|унівэрсытэце Ілінойса]] годзедля ''[[PDP-11]]'' і ствараў [[машынны код]].
 
Для хуткага распаўсюджанняраспаўсюджаньня мовы ў ЦюрыхеЦюрыху быў створаны «набор інструментаў для партаванняпартаваньня кампілятара», які ўключаў кампілятар у код для віртуальнай машыны і праграму, якая выконвала гэты код. Гэты набор стаў называцца ''P''-сістэмай. Хаця ззь яго дапамогай планаваласяплянавалася стварэннестварэньне кампілятараў у машынны код, як мінімум адна сістэмасыстэма выкарыстоўвала яго для стварэннястварэньня інтэрпрэтуемай сістэмысыстэмы — ''[[UCSD p-System]]''.
Першы паўночнаамерыканскі кампілятар ''Pascal'' быў напісаны ў [[Універсітэт Ілінойса|Універсітэце Ілінойса]] для ''[[PDP-11]]'' і ствараў [[машынны код]].
 
Для хуткага распаўсюджання мовы ў Цюрыхе быў створаны «набор інструментаў для партавання кампілятара», які ўключаў кампілятар у код для віртуальнай машыны і праграму, якая выконвала гэты код. Гэты набор стаў называцца ''P''-сістэмай. Хаця з яго дапамогай планавалася стварэнне кампілятараў у машынны код, як мінімум адна сістэма выкарыстоўвала яго для стварэння інтэрпрэтуемай сістэмы — ''[[UCSD p-System]]''.
 
''[[IP Pascal]]'' быў рэалізацыяй ''Pascal'' для ''Micropolis DOS'', аднак ён хутка быў перанесены на ''[[CP/M]]'' для ''[[Z80]]''.
 
У пачатку [[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''.
 
Танны кампілятар ''Borland'' меў вялікі ўплыў на карыстальнікаў ''Pascal'', якія ў канцы 1980-х гадоў карысталіся ў асноўным ''IBM PC''. Шматлікія аматары праграмаванняпраграмаваньня на ''PC'', якія раней шукалі структурную замену для мовы праграмаванняпраграмаваньня BASIC, пачалі карыстацца гэтым прадуктам. ''Turbo Pascal'' быў даступны толькі для адной архітэктуры, таму ён кампіляваў код напрамуюнаўпрост ўу машынныя коды працэсара ''[[Intel 8088]]'', што дазваляла выконваць праграмы на ''Pascal'' хутчэй, чым праграмы на інтэрпрэтуемых мовах праграмаванняпраграмаваньня.
 
''Super Pascal'' быў версіяй, якая дабавілададала не лічбавыя меткі, аператар ''return'' і выразы як імёны тыпаў.
 
У [[1990-я|1990-х]] гадах кампілятары, на якіх можна скампіляваць код для розных сістэм, сталі выкарыстоўвацца часцейчасьцей, у тым ліку і ''Pascal'', які дазваляў кампіляцыю ў машынны код і ў той жа час лёгка пераносіўся на новае [[апаратнае забеспячэннезабесьпячэньне]].
 
У версіівэрсыі ''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]]''. Аднак у ім адсутнічае падтрымка канцэпцыі ўкладзеных модуляў і імпарту/экспарту асобных сімвалаў.
 
Для кампілятараў ''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.
 
== Даступныя кампітлятарыкампілятары ==
ЕсцьЁсьць некалькі кампілятараў Паскаля, даступныядаступных для агульнага выкарыстаннявыкарыстаньня:
* [http://homepages.cwi.nl/~steven/pascal/ P4 compiler], аснова шматлікіх кампілятараў Паскаля, напісаных на паскалеПаскалі, у тым ліку [[UCSD p-System]].
* [[Free Pascal]] напісаны на ПаскалеПаскалі (таму можа скампіляваць сам сябе), і яго мэта – стварэннестварэньне зручнага і магутнага кампілятара, які можа кампіляваць гатовыя праграмы і ствараць новыя. Ен таксама вольна распаўсюджваецца па ўмовам GNU GPL. Ён дазваляе змешвацьзьмешваць код Turbo Pascal і Delphi, а таксама падтрымлівае шмат платформ і аперацыйныхапэрацыйных сістэмсыстэм.
* [[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.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/kylix/ Kylix] – гэта навейшаянайноўшая разробкараспрацоўка Borland сярод іх паскальных прадуктаў. Гэта паслядоўнікпасьлядоўнік [[Delphi|Delphi]] з падтрымкай аперацыйнайапэрацыйнай сыстэмы [[Linux]] і палепшанай бібліятэкай аб'ектаў. Кампілятар і IDE (серадовішча разробкі) зараз даступны для некамерцыйнаганекамэрцыйнага выкарыстаннявыкарыстаньня. Зараз гэты праэкт закінуты.
* [http://www.visible-software.com/prod-dp.html Dr. Pascal] – гэта інтэрпрэтатар, які выконвае стандартны паскальПаскаль. Варта адзначыць рэжым "бачнага выкананнявыкананьня", у якім паказваецца выконваемая праграма і яе зменныязьменныя, і развітую праверкаправерку на памылкі ў час выкананнявыкананьня. Выконвае праграмы, але не стварае асобных выконваемых дваічных файлаў. Працуе ў MS-DOS, у WindowWindows у акне эмуляцыі 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.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.lazarus.freepascal.org Lazarus] – гэта кросплатформенаякросплятформавая версіявэрсыя Візуальнагавізуальнага RAD IDE. [[Lazarus_(software)|Lazarus]] выкарыстоўвуевыкарыстоўвае кампілятар [[Free Pascal]].
 
Вельмі вялікі спіссьпіс можна знайцізнайсьці на сайце [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-падобныя.
 
ВыкарыстоўвуючыВыкарыстоўваючы досветдосьвед, атрыманы пры стварэнністварэньні Паскаля, [[НіклаусНіклаўс Вірт|Вірт, Ніклаус]] стварыў яшчэ дзведзьве мовы праграмаванняпраграмаваньня, [[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
* [[Bill Catambay]], [http://pascal-central.com/ppl/index.html The Pascal Programming Language]
* [http://www.allegro.com/papers/htpp.html How To Code: Pascal]
 
=== Заўвагі ===
{{зноскі}}
 
[[Катэгорыя:Мовы праграмаваньня]]
140 641

зьмена