Паскал се данас користи као почетни програм за обуку будућих програмера, нарочито оних који намеравају да раде на програмском језикуC.
снимак екрана
Паскал је развијен по обрасцу језикаАЛГОЛ 60.Вирт је већ развио неколико побољшања овог језика у оквируАЛГОЛ X предлога, али они нису прихваћени и Паскал је развијен одвојено и објављен 1970. године.Објектни Паскал, грана објектно оријентисаног дела Паскала, дизајниран заобјектно оријентисано програмирање је развијен 1985. године. Ово је користиоЕпл Компјутер иБорланд крајем осамдесетих година, а касније се развио наДелфи на платформиWindows.Проширења Паскал концепта довеле су до програмских језика сличним ПаскалуМодула-2 иОберон.
Програмски језик Паскал је непревазиђен на плану обуке у програмирању, тамо где је основни циљ упознавање са програмирањем на логичан и систематичан начин.[1] Крајем 60-их година швајцарски научник Никлаус Вирт имао је за циљ да направи језик у коме би се могла ефикасно реализовати обука програмера. Међутим, данас Паскал има много ширу примену. Он се користи не само за писање програма у разним областима примене рачунара већ и као језик за системско и визуелно програмирање. Визуелни Паскал, реализован пакетом Делфи, данас је један од најпопуларнијих језика за пројектовањеWindows апликација иако иза њега не стоји моћниМајкрософт.
То је једноставан језик који се може брзо научити, и у њему се могу писати алгоритамски врло сложени програми. Он на известан начин утиче на начин размишљања програмера, тако да лако усваја основне принципе програмирања.
Програмски језик Паскал развио је, између 1968 и 1970., швајцарски научник Никлаус Вирт, на темељима тад популарног језика АЛГОЛ-а, ради превазилажења потешкоћа које су се јављале програмирањем у вишим програмским језицима секвенцијалног карактера (ФОРТРАН, КОБОЛ, АЛГОЛ и БЕЈЗИК), као и због потреба увођења стандардног програмског језика за учење у школама и факултетима. Вирт је програмском језику дао име Паскал у част француског филозофа и математичара Блеза Паскала, који је 1641. изумео механичкикалкулатор. Прва спецификација објављена је 1971, следећа ревизија направљена је 1973. Већ од 1972. Паскал се почиње изучавати на факултетима као језик прикладан за увод у програмирање. Првобитна стандардизација језика догодила се 1983. (ИСО 7185:1983).
Већина историје дизајна рачунарског језика током1960.тих година траје своју историју према језику АЛГОЛ 60. АЛГОЛ је развијен током педесетих година прошлог века са експлицитним циљем да би могли јасно описати алгоритме. То је укључивало низ функција за структурно програмирање које остаје уобичајено на језицима до данас.
Убрзо након увода, 1962. године Вирт је почео радити на дисертацији са Хелмут Вебером на програмском језикуЕулер. Еулер је заснован на синтаксиАЛГОЛ-а и многим концептима, али није био дериват. Његов примарни циљ био је додавање динамичких листи и типова, омогућавајући да се она користи у улогама сличнимЛисп-у. Језик је објављен 1965.
До тог времена идентификован је велики број проблема уАЛГОЛ-у, посебно недостатак стандардизованог система низа. Група која је задужена за одржавање језика почела је процес АЛГОЛ X да идентификује побољшања. Вирт иТони Хор су поднели конзервативни скуп модификација за додавање жица и чишћење неке синтаксе. Они су сматрали сувише ситним да би били корисни као нови стандардАЛГОЛ, тако да је Вирт написао компајлер за језик, који је постао познат каоАЛГОЛ В.
АЛГОЛ X напори би наставили да бирају драматично сложенији језик,АЛГОЛ 68. Сложеност овог језика довела је до значајних потешкоћа у производњи компилатора високих перформанси и није се широко примјењивала у индустрији. Ово је оставило отвор за нове језике.
Паскал уводи парадигму структурног и процедуралног програмирања, што значи да се програмски код разлаже на самосталне структуре - податке и подпрограме, који се не извршавају у истом редоследу у ком су наведени, као што је случај код наредби секвенцијалних програмских језика, него се по потреби позивају и изводе. Увођењем подпрограма избегава се нужност да програм секвенцијално, то јест редоследно, изврши све блокове кода док не дође до наредбе која означава крај програма (ГоТо) до поједине лабеле у коду, што може довести до великих потешкоћа при писању или ревидирању озбиљнијих програма, јер је коришћење ГоТо функције доводило до непрегледног кода с једне стране (феномен такозваног Шпагети-кода), с друге стране захтевало учитавање читавог програма у меморију, уместо позивања појединачних процедура по потреби. За тадашње доба врло скупих меморија и почетка убрзаног развоја софтвера у односу на хардвер, изналажење решења као што је Паскал имало је због наведених разлога велики значај.
У исто време (1972)АмериканацДенис Ричи развијапрограмски језик Ц заснован на једнаким процедуралним и структурним поставкама као и Паскал, с већим могућностима већ у стандардној изведби за манипулисање врстама података, а самим тим и већим могућностима за смањење заузећа меморије. Док је програмски језик Ц послужиоКену Томсону и Денису Ричију за програмирањеУНИX-а седамдесетих година, УЦСД верзија Паскала коришћена је наУниверзитету у Калифорнији, у Сан Дијегу за писање п-Сyстема. п-Сyстем се могао инсталирати на велики број тадашњих компјутера захваљујући чињеници да је требало само програмирати модуле који су преносили и компајловали п-сyстем на дати компјутер.[2]
Седамдесетих година Паскал стиче велику популарност те се у великој мери користи за апликацијско и системско програмирање. Оперативни системи заЕпл (Лиса иМакинтош) с краја седамдесетих и почетка осамдесетих били су развијани у Паскалу, због чега писање програма у Ц-у за наведене системе није имало смисла јер су програми морали бити писани тако да раде с типовима података које подржава стандардни Паскал као и сам АПИ, у Паскалу написан Епл оперативни систем. До 1980-их Паскал је изучаван на већини факултета информатичког усмерења у свету.Варијанте Паскала су такође често коришћене за све од истраживачких пројеката до ПЦ игара и уграђених система. Постоје нови компилатори Паскала који се широко користе.
Током рада на Лиси,Лери Теслер је почео да се слаже са Вирт-овом идејом o додавању објектно оријентисаних проширења на језик. Ово је у почетку довело доКласкала, уведеног 1983. године. Како је програм Лиса избледио и заменио Мек, направљена је још једна верзија позната каоОбјектни Паскал. Ово је представљено наМакинтош-у 1985. године, у оквируМекЕп апликативног оквира, и постао је основни развојни језик компаније Епл почетком деведесетих.
Проширења објеката Паскал касније су додатеТурбо Паскал-у, а током година су посталиДелфи систем заWindows. Делфи се и даље користи за развијање Windows апликација, али такође има могућност да компајлира исти код код Мек, иОС и Андроид. Друга различита платформа под називомБесплатан Паскал, саЛазарус ИДЕ-ом, популарна је код корисника Линукса, пошто такође нуди пиши једном, компајлирај било где развој.КодТифон је Лазарус дистрибуција са више унапред инсталираних пакета и унакрсних компајлера.
Године 1983, појављује се Турбо Паскал фирме Борланд, првоинтегрисано развојно окружење (ИДЕ) за системе ЦП/М и ДОС. Турбо Паскал обједињује све функције циклуса развоја софтвера у један целовит програм (писање кода, компајловање, линковање, дебуговање), а истовремени приступ свакој од функција без потребе покретања засебних програма и гашења претходно покренутих је допринео још већој популаризацији Паскала у софтверској индустрији, јер су програмери до тад морали покретати засебно неколико различитих програма (едитор, компајлер, линкер, дебугер) да би довршили коначан програм. ИДЕ Турбо Паскал је масовно коришћен, како због могућности велике уштеде времена при развоју софтвера, тако и због своје ниске цене и лиценце која је омогућивала куповину само једне копије производа без обзира на коликом броју компјутера ће софтвер бити коришћен. Осим Турбо Паскала, Борланд је испоручивао и скупљу верзију ИДЕ-а под називом Борланд Паскал која се од Турбо Паскала незнатно разликовала по могућностима и имала укључен изворни код стандардних модула. Временом се Турбо Паскал развија као засебна верзија програмског језика и остаје у широкој употреби све до почетка деведесетих, када Паскал губи предност у односу наC++ и Јаву. Већ 1999. Паскал је замењенC++-ом као стандардом на свим америчким факултетима.
Од новина које уводи Борланд у Турбо Паскал значајна је могућност дељења кода на одвојене датотеке, такозване модуле (енглески: unit). Овај концепт преузет је из језика Модула, односно Модула-2 (каснија ревизија језика), за чије је креирање такође заслужан Никлаус Вирт, аутор првобитног Паскала. Могућност је додата почевши с верзијом 4.00 Турбо Паскал ИДЕ-а, а програмски пакет садржавао је и стандардну збирку модула преведених из изворног кода, прво у једној датотеци TURBO.TPL (.TPL = Turbo Pascal Library), а касније у броју одвојених бинарних. TPU (Turbo Pascal Unit) датотека. Седма верзија ТП-а укључивала је следеће модуле: APP, COLORSEL, CRT, CURSU, DIALOGS, DRIVERS, EDITORS, GRAPH, GRAPH3, HISTLIST, MEMORY, MENUS, MSGBOX, OBJECTS, OUTLINE, STDDLG, STRINGS, TEXTVIEW, TGKSI, TURBO3, VALIDATE, VIEWS и WINDOWS.
Последња верзија Турбо Паскала изишла је 1993. под бројем 7.0. Након тога, Борланд напушта даљи развој овог производа и уместо њега 1995. издаје Делфи за 16-битни Windows 3x, RAD окружење за Борланд Паскал који се од тад развија као посебан програмски језик Delphi. Delphi, као објектно-оријентисани Паскал нарочито је погодан за развијање графичких Windows апликација, задржао се у широкој употреби све до данас, а стекао је и широку популарност због лакоће коришћења и визуелног интерфејса за креирање ГУИ-ја. Од 2006. развојем Delphi језика бави се CodeGear, некадашња Борландова сарадница за развојне алате Borland Developers Tool Group (DTG). OpenSource алтернатива Delphi језику су Free Pascal Compiler и Lazarus IDE.
Виртова намера је била стварање ефикасног језика (у односу на брзину компилације и генерисаног кода) на основуструктурног програмирања, недавно популаризованог концепта који је промовисао у својој књизиAlgorithms + Data Structures = Programs . Паскал има своје корене у језикуАЛГОЛ 60, али је такође увео концепте и механизме који су (поредАЛГОЛ-ових скалара и низова) омогућили програмерима да дефинишу своје сложене (структурне) типове података, а такође су олакшали изградњу динамичких и рекурзивних структура података као што су листе, стабла и графикони. Важне карактеристике које су укључене у ово су биле записи, енумерације, подређене, динамички додељене променљиве са придруженим показивачима и скуповима. Да би ово направио могућим и значајним, Паскал имастрого типизирање на свим објектима, што значи да се једна врста података не може конвертовати или тумачити као друга без "експлицитних" конверзија. Слични механизми су стандардни у многим програмским језицима данас. Други језици који су утицали на развој Паскала суСимула 67 и Вирт-ов сопствениАЛГОЛ В.
Паскал, као и многи програмски језици данашњице (али за разлику од већине језика из Ц фамилије), дозвољаваугнеждене процедуралне дефиниције на било који ниво дубине, а такође дозвољава већину врста дефиниција и декларација унутарподпрограма (процедуре и функције). Ово омогућава веома једноставну и кохерентну синтаксу у којој је потпуни програм синтаксички готово идентичан једној процедури или функцији (осим за наслов, који има једну од ове три кључне речи).
Први Паскалкомпајлер је дизајниран уЦириху за породицу рачунараЦДЦ 6000 серије.Никлаус Вирт извештава да је први покушај имплементације уФортран-у 1969. године био неуспешан због Фортранове неадекватности за изражавање сложених структура података. Други покушај примењен је на Ц-овске језике (Сцалоп од Макса Енглија), а потом ручно преведен (од Р. Шилд-а) у сам Паскал за обртање.[3] Био је оперативан до средине 1970. године. Многи компајлери Паккал-а су, с обзиром на то да су сличносамо-хостинг, тј. Компајлер је сам написан у Паскал-у, а компилатор је обично способан да се поново компајлира када се додају нове функције на језик или када се компајлер пренесе на ново окружење.ГНУ Паккал компајлер је један изузетан изузетак, који је написан у Ц.
Прва успјешна лука ЦДЦ Паскал компајлера у други меинфрејм (енг. mainframe) завршили су Веш и Квин (Welsh, Quinn) наКраљичином универзитету у Белфасту (КУБ) 1972. Циљ је била серијаИЦЛ 1900. Овај компајлер је, заузврат, био родитељ Паскаловог компајлера за информациони рачунарски систем (ИЦС) Мултум мини рачунар. Мултум порт је развијен - у циљу коришћења Паскал-а као системског програмског језика - од стране Финдлија, Каплса, Кавоураса и Дејвиса (Findlay, Cupples, Cavouras, Davis), који ради на одсеку за рачунарску науку на Универзитету уГлазгову. Сматра се да је Мултум Паскал, који је завршен у лето 1973. године, могао бити прва 16-битна имплементација.
Потпуно нови компајлер је завршио Велш на КУБ-у 1977. Понуђена је дијагностичка функција изворног језика (обухваћена профилирање, праћење и обликовање смерница у облику пост-мортемом (енг. post-mortem) отпадака) које је имплементирао Финдли и Ват (Findlay, Watt) на Универзитету у Глазгову. Ова имплементација је представљена 1980. године серијиИЦЛ 2900 од стране тима са УниверзитетаСаутамптон и Универзитета Глазгов. Имплементација модела Стандард Паскал такође је заснована на овом компајлеру, након што су адаптирали Велш и Хаи на Универзитету уМанчестеру 1984. године, да се ригорозно провери усклађеност с БСИ 6192 / ИСО 7185 Стандардом и да генерише код за преносиву апстрактну машину.
За брзо пропагирање језика, у Цириху је направљен компајлерски "преносни комплет" који је укључивао компајлер који је генерисао код за "виртуелну" машину,тј. код који се може разумно и ефикасно тумачити, заједно са тумачем за тај код - систем "Паскал-П". Компилатори П-система називани суПаскал-П1,Паскал-П2,Паскал-П3 иПаскал-П4. Паскал-П1 је прва верзија, а Паскал-П4 је последњи дошао из Цириха. Верзија која се назива Паскал-П1 је сконцентрисана након чињенице за многе различите изворе за Паскал-П који су постојали. Компајлер је редизајниран да би побољшао преносивост и издао се као Паскал-П2. Овај код је касније побољшан како би постао Паскал-П3, са средњим кодомкомпатибилним са Паскал-П2, и Паскал-П4, који није био компатибилан назад.
Паскал-П4 компилатор/интерпретатор се и даље може покренути и компајлирати на системима компатибилним са оригиналним Паскал-ом. Међутим, он прихвата само подскуп Паскаловог језика.
Паскал-П5, креиран изван групе из Цириха, прихвата пун Паскал језик и укључује ИСО 7185 компатибилност.
УЦСД Паскал раздвојен од Паскал-П2, где га јеКенет Болс користио за креирањеинтерпретиранУЦСД П-Систем. УЦСД П-Систем је био један од три оперативна система доступна на лансирању оригиналнеIBM Лични Рачунар.[4] УЦСД Паскал је користио средњи код базиран на вредностима бајтова, и стога је био један од најстаријих "компајлера бајтних кодова". Паскал-П1 преко Паскал-П4 није био, већ је заснован на ЦДЦ 6600 60-битној дужини ријечи.
Епл Компјутер је створио свој Лиса Паскал за Лиса радионицу 1982. године, а 1985. године преносио компајлер на Епл ?Макинтош иМПВ. 1985.Лари Теслер, у консултацији са Никлаус Вирт, су дефинисалиОбјектни Паскал и ови додаци су укључени у оба Лиса Паскал и Мек Паскал компајлера.
Током 1980-их,Андерс Хелсберг написао је Блу Лејбл Паскал (енг. Blue Label Pascal) компајлер заНасцом-2. Поновна примена овог компајлера заIBM ПС продата је под именом Компас Паскал и Поли Паскал пре него што је купиоБорланд и преименован уТурбо Паскал.
Турбо Паскал постао је веома популаран, захваљујући агресивној стратегији цена, која има једно од првих интегрисаних развојних окружења у целом екрану, и врло брзо време окончања (само секунде за компајлирање, повезивање и покретање) . Писано је и високо оптимизовано уасемблерском језику, чинећи га мањим и бржим.
Године 1986. Андерс је послао Турбо Паскал наМакинтош и инкорпорирао Еплову Објект Паскал екстензију у Турбо Паскал. Ове екстензије су затим додате назад у ПС верзију Турбо Паскала за верзију 5.5. У исто времеМајкрософт је такође имплементирао Објект Паскал компајлер.[6][7] Турбо Паскал 5.5 имао је велики утицај на заједницу Паскала, која је почела да се концентрира углавном на IBM ПС крајем осамдесетих. Многи ПС хобисти у потрази за структурираном заменом заБејсик су користили овај производ. Такође је почела да их усвајају професионални програмери. У исто време је увезено више концепта изC-а како би Паскал програмерима директно користили апликацијуАПИ изMicrosoft Windows-а. Ове екстензије укључују нал-терминиране застринг,показивачку аритметику,показиваче на функције, оператор-адреса и небезбеднуконверзију типова.
Турбо Паскал и други деривати сајединице (енг. Unit) или концепти модула сумодуларни језици. Међутим, он не пружа концепт уграђеног модула или квалификованог увоза и извоза одређених симбола.
Супер Паскал је била варијанта која је додала не-нумеричке етикете, повратну изјаву и изразе као имена типова.
Универзитети Вискансин-Медисон, Цирих, Карлсруле и Вупертал су развили Паскал-СЦ иПаскал-КССЦ[8][9] andPascal-XSC[10][11][12] (Екстенѕија ѕа научна Израчунавања) компилатори, намењени програмирању нумеричких израчунавања.ТМТ Паскал први компатибилан компајлерБорланд за 32-битниДОС заштитни мод,ОС / 2 иВин32 оперативни системи. Такође је језик ТМТ Паскал био први који је омогућио функцију ипреоптерећење оператора.[13] Развој за Паскал-СЦ је започео 1978. године који подржава ИСО 7185 Паскал ниво 0, али подршка нивоа 2 је додата касније. Паскал-СЦ је првобитно циљао наЗ80 процесор, али је касније поново написан за ДОС (к86) и68000. Паскал-КССЦ је у разним временским периодима пребачен уЈуникс (Линукс,СунОС,ХП-УКС,АИКС) и Мајкрософт/IBM (ДОС саЕМКС , ОС / 2,Windows) оперативних система. Он ради тако што генерише средњи Ц изворни код који се затим саставља на изворну извршну датотеку. Неке од проширења језика Паскал-СЦ су усвојене од странеГНУ Паскал.
Паскал Сол је дизајниран око 1983. године од стране француског тима за имплементацијуЈуникс система сличних Солама. То је био стандардни ниво Паскал-1 (са параметризираним границама низова), али дефиниција је омогућила алтернативне кључне речи и унапред дефинисане идентификаторе на француском језику, а језик је укључио неколико екстензија како би се олакшало системско програмирање (нпр. енг. equivalent to lseek)[14]>.Сол тим је касније прешао у пројекатКорусОС (енг. ChorusOS) за дизајнирање дистрибуиране оперативне систем.[15]
ИП Паскал била је имплементација програмског језика Паскал користећиМајкрополис ДОС, али је брзо померен наЦП / М-80 који се покреће на З80. Премештен је у типове машина80386. 1994. године и данас постоји као имплементација Windows / КСП и Линукс. У 2008. години систем је доведен до новог нивоа, а резултујући језик назвао је "Паскалина" (поПаскаловом калкулатору). Укључује објекте, контроле именског простора,динамички низ, заједно са многим другим екстензијама, и генерално имају исту функционалност и заштиту типа каоC Sharp. То је једина таква имплементација која је компатибилна и са оригиналном имплементацијом Паскала, која је стандардизована као ИСО 7185.
Смарт Мобиле Студио[16] креирао је Џон Асенден и саставио је свој дијалект објекта Објект Паскал у HTML5 / Јавасцрипт
[Смарт Мобиле Студио] имаИДЕ који укључује визуелни Ц.
Тип у Паскал-у иу неколико других популарних програмских језика дефинише променљиву тако да дефинише низ вредности које променљива може садржати и дефинише скуп операција које су дозвољене за извођење на променљива те врсте.Типови података у паскалу могу бити прости и сложени. Предефинисани типови су:
Тип податка
Тип вредности које је променљива способна за чување
Опсег вредности дозвољених за сваку (осим боолеан) је дефинисана имплементацијом. Функције су дате за неке конверзије података.За конверзију изreal уinteger, доступне су следеће функције:round који се заокружује на цео број користећибанкерово заокруживање) иtrunc (заокружује ка нули).
Програматор има слободу да дефинише друге стандардне типове података (нпр. Бајт, стринг, итд.) У смислу унапред дефинисаних типова користећи Паскалов објекат декларације типа, на пример:
За разлику од других програмских језика из тог времена, Паскал подржава сет тип:
varSet1:setof1..10;Set2:setof'a'..'z';
Сет је основни појам модерне математике и може се користити у многим алгоритмима. Таква функција је корисна и може бити бржа од еквивалентне конструкције на језику који не подржава скупове. На пример, за многе превођаче Паскала:
ifiin[5..10]then...
се извршава брже него:
if(i>4)and(i<11)then...
Комплети не-суседних вредности могу бити нарочито корисни у погледу перформанси и читљивости:
ifiin[0..3,7,9,12..15]then...
За ове примере, који укључују скупове у малим доменима, побољшане перформансе обично постиже компајлер који представља скуп вриједности као битних вектора. Сетоператора се затим може ефикасно имплементирати као операције кода рачунарских машина.
Као што је приказано у претходном примеру, Паскалдатотеке су секвенце компоненти. Свака датотека има бафер променљиву која је означена са f ^. Поступци get (за читање) и put (за писање) померају променљиву бафера на сљедећи елемент. Читање је уведено тако да је read(f, x) исто као и: к: = ф ^; доби (ф);. Писање је уведено тако да је write(f, x) исти каоf^ := x; put(f);. Иако би варијабилна варијабла могла бити коришћена за инспекцију следећег знака који ће се користити (проверите цифру пре читања целог броја), то доводи до озбиљних проблема са интерактивним програмима у раним имплементацијама, али је касније ријешено са "лењи И/О" концепт.
У Џенсен и Вирт Паскалу, стрингови су представљени као запаковани низови карактера; стога имају фиксну дужину и обично су просторно обложени.
typepNode=^Node;Node=recorda:integer;b:char;c:pNode{додатна тачка-зарез није потребна}end;varNodePtr:pNode;IntPtr:^integer;
Овде је променљива NodePtr показивач на тип података Node. Показивачи се могу користити пре него што се прогласе. Ово је декларација унапред, изузетак од правила да ствари морају бити деклариране пре него што се користе.
Да креирате нови рекорд и додијелите вриједност 10 и знак А у поља а и б у запису и иницијализирајте показивач ц на NIL, команде би биле:
За разлику од многих језика који садрже показиваче, Пасkал дозвољава само показивачима да реферишу динамички креиране променљиве који су анонимни и да им не дозвољава да реферишу стандардне статичке или локалне променљиве. Показивачи такође морају имати придружени тип, а показивач једној врсти није компатибилан са показивачем на други тип (нпр. Показивач на знак није компатибилан са показивачем на цео број). Ово помаже у уклањању сигурносних проблема типа који су инхерентни другим имплементацијама показатеља, посебно оних који се користе за ПЛ/И илиЦ. Такође уклања одређене ризике које изазивајувисећи показивачи, али могућност динамичког деалоцирања референтног простора користећи функцију dispose (која има исти ефекат као и функција free библиотеке која се налази уЦ) значи да ризик од висећег показивача није у потпуности елиминисан као што је то на језицима као што су Јава и Ц #, који обезбјеђујуаутоматско сакупљање смећа (али који у потпуности не уклањају сродни проблемцурења меморије.[17]
Нека од ових ограничења могу се подићи на новије дијалекте.
Паскал јеструктурно програмски језик, што значи да је ток контроле структуриран у стандарднеизразе, обично без 'ГоТо' команди.
whilea<>bdoWriteLn('Cekanje');ifa>bthenWriteLn('Uslov ispunjen'){није дозвољена тачка-зарез!}elseWriteLn('Uslov nije ispunjen');fori:=1to10do{тачка зарез није дозвољена за појединачне изразе!}WriteLn('Iteracija: ',i);repeata:=a+1untila=10;caseiof0:Write('nula');1:Write('jedan');2:Write('dva');3,4,5,6,7,8,9,10:Write('?')end;
Процедуре су издвојене програмске целине (потпрограми) које на основу одређеног алгоритма трансформишу параметре (податке), али не враћају вредност као функције. Следећи пример приказује изглед синтаксе и структуре процедуре у Паскал програму.
Свака процедура или функција може имати своје декларације о ознакама, константама, типовима, променљивама и другим процедурама и функцијама, које морају бити у том редоследу. Овај захтев за наручивање првобитно је био намењен да се омогући ефикасна компилација појединачног пасуса. Међутим, на неким дијалектима (као што је Ембаркадеро Делфи), строго наручивање захтева одељака декларације је опуштено.
Паскал је усвојио многе значајке синтаксе језика саАЛГОЛ језика, укључујући коришћење тачка-зареза као сепаратор израза. Ово је у супротности са другим језицима, као што суПЛ / И,Ц итд. Који користе тачка-зарез као терминатор израза. Као што је илустровано у горе наведеним примерима, пре кључне речиend није потребна тачка с иконама декларације типа записа, блок илиcase израз; преuntil кључна реч понављања израза; и пре кључне речиelse изразif.
Присуство додатног тачка-зареза није било дозвољено у ранијим верзијама Паскала. Међутим, додавањеАЛГОЛ - као празних израза у ревидираном извештају из 1973. године, а касније и промене језика у ИСО 7185: 1983 сада омогућавају опционалне тачка-зарезе у већини случајева. Преко кључне речи "else'" још увек није допуштена тачка-зарез у ставку "if", јерelse прати један израз, а не секвенца израза . У случају угнрждених if-ова, тачка-зарез се не може користити да би се избегао проблемвисеће else (где унутрашњи if нема else, али спољашњи if има), путно завршава угњеждени ако је са тачком-зарезом - ово уместо тога прекида оба if. Уместо тога, експлицитни блокbegin...end мора бити кориштен.
Програмери обично укључују ове додатне тачка-зарезе из навике и да избегавају промену последње линије секвенци израза када се додају нови кодови.
Ако су оба операнда тачна онда услов постаје тачан
and then
Слично је оператеру and, међутим, гарантује редослед у којем компајлер процењује логички израз. Лево надесно, и десни операнди оцењују се само када је то потребно.
or
Ако било који од два операнда су тачна онда услов постаје тачан.
or else
Слично је оператору or, међутим, гарантује редослед у којем компајлер оцењује логичан израз. Лево надесно, и десни операнди оцењују се само када је то потребно.
<=
Назван boolean NOT оператор. Користи се да се преокрене логичко стање операнда. Ако услов је тачан, а онда ће ЛОГИЧНО НИЈЕ оператор учинити лажним.
Неколико компилатора и преводилаца Паскала доступно је за општу употребу:
Делфи је Ембаркадеров (раније Борланд / КодГир) водећи производ за брз развој апликација (енгл.Rapid Application Development - RAD). Користи Обџект Паскал језик (назван "Делфи" од Борланда), пореклом из Паскала, за креирање апликација заWindows,Mac OS,иОС иАндроид. Подршка .НЕТ која је постојала од Д8 до Д2005, Д2006 и Д2007 је прекинута и замењена је новим језиком (Присм, који је преименовани Оксиџен, погледајте у наставку) који није потпуно уназад компатибилан(енг. backward compatible). Последњих година је додата подршка иУникод генерици (Д2009, Д2010, Делфи КСЕ).
Слободни (енг. Free) Паскал је мулти-платформски компајлер написан уОбјектном паскалу (и селф-хостинг). Његов циљ је да обезбеди згодан и моћан преводилац, који је способан да састави старе програме и да буде средство за развој нових. Дистрибуира се подГНУ ГПЛ, док пакети и библиотека извршавања потичу од модификованихГНУ ЛГПЛ. Осим модова компатибилности заТурбо Паскал, Делфи и Мек Паскал, он такође има сопствене процедуралне и објектно оријентисане синтаксне модове са подршком за проширене функције као што јеоператор преоптерећења. Подржава многе платформе и оперативне системе. Тренутне верзије такође садрже ИСО мод.
Модерн Паскал је мулти-платформни преводилац и п-код компајлер написан уСлободом (енгл. Free) Паскалу. Његов циљ је пружање алтернативних решења за ПХП и ноде.јс, користећи или ИСО стандардни паскални дијалект или хибридно подржавајуће ЈаваСкрипт / Ц операторе. Од ЦЛИ-а користан је као бесплатни Паскал интерпретатор.
Оксиџен (раније познат као Хром) је Објектни Паскал компајлер за.НЕТ иМоно платформе. Креиран је и продаје гаРемОбџектс Софтвер, а Ембаркадеро га је неко време продао као представник за Присм.
Киликс је био потомакДелпхи, уз подршку оперативног системаЛинукс и побољшане библиотеке објеката. Више није подржано. Компајлер и ИДЕ су сада доступни за некомерцијалну употребу.
ГНУ Паскал Компајлер (ГПЦ) је Паскал компајлерГНУ колекција компајлера (ГЦЦ). Сам компајлер је написан у Ц, библиотека за извршавање углавном у Паскалу. Дистрибуиран подГНУ-ова општа јавна лиценца, ради на многим платформама и оперативним системима. Подржава АНСИ / ИСО стандардне језике и има делимичну Турбо Паскал дијалект подршку. Један од болнијих пропуста је одсуство 100% Турбо Паскал-компатибилног (кратког) типа стринга. Подршка за Борланд Делфи и друге језичке варијанте је прилично ограничена. Међутим, постоји Мек-паскал подршка.
DWScript ДВСкрипт, од ДелпхиВебСцрипт, је интерпретатор који су створили Маттхиас Ацкерманн и Ханнес Хернлер 2000. Тренутна верзија покреће дијалект Објектног Паскала који је у великој мери компатибилан са Делпхијем, али и подржава језичке конструктивне елементе уведене у Присму. ДВСкрипт код се може уградити у Делфи апликације сличне ПаскалСкрипт-у, састављене у самосталну апликацију користећи СимплМобаилСтудио или компајлиране у ЈаваСцрипт код и стављене на веб страницу.[18]
Др. Паскал је интерпретатор који покреће Стандардни Паскал. Значајни су режим "видљиво извршење" који приказује програм који се покреће и његове променљиве, као и опсежну проверу грешке извршавања. Покреће програме, али не емитује посебан бинарни извршни програм. Покреће ДОС, Windows у ДОС прозору и стариМакинтош.
Виртуални Паскал је креирао Витали Мирианов 1995. године као изворни ОС / 2 компајлер компатибилан са синтаксом Борланд Паскал. Затим је комерцијално развио фПринт, додавши Вин32 подршку, а 2000. године постао је бесплатан. Данас се може компајлирати за Вин32, ОС / 2 и Линукс, и углавном је компатибилан са Борланд Паскал и Делфи. Развој је отказан 4. априла 2005. године.
П4 компајлер, основа за многе наредне Паскал-имплементиране-у-Паскалу компајлере. Примењује подскуп пуног Паскала.
П5 компајлер, је ИСО 7185 (пун Паскал) прилагођавање П4.
Турбо Паскал је био доминантни Паскал преводилац за ПС рачунаре током 1980-их и раних деведесетих година прошлог века, популаран и због својих моћних продужења и изузетно кратких времена компајлирања. Турбо Паскал је компактно написан и могао је преводити, покренути и дебаговати све из меморије без приступа диску. Спори дискетни дискови били су уобичајени за програмера у то време, додатно повећавајући предност Турбо Паскал-а за брзину. Тренутно, старије верзије Турбо Паскал (до 5,5) су доступне за бесплатно преузимање са Борландовог сајта.
„ИП Паскал”. Архивирано изоригинала 26. 05. 2009. г. Приступљено28. 11. 2017. Примењује језик "Паскалина" (именован поПаскаловом калкулатору), који је високо проширен Паскал компатибилан са оригиналним Паскалом према ИСО 7185. То садржи моделе са контролом именског простора(енг. namespace), укључујући паралелне модуле задатака са семафорима, објектима, динамичким низовима свих димензија које се распоређују у време извршавања, преоптерећења, преклапања и многих других екстензија. ИП Паскал има уграђену библиотеку преносивости која је посебно прилагођена језику Паскал. На пример, стандардна апликација за излаз из текста из1970.их година првобитног Паскала може се поново компајлирати да би радила у прозору са додатим и графичким конструкцијама.
ПокетСтудио је компајлер подскупова Паскал и РАД алатка заПалм ОС и МЦ68xxx процесоре са неким сопственим екстензијама за помоћ у повезивању са Палм ОС АПИ-јем. Личи на Делфи и Лазарус са дизајнером визуелне форме, објектним инспектором и уредникомизворног кода].
МИДлетПаскал - Паскал компајлер и ИДЕ који генерише мали и брз Јава бајткод специјално дизајниран за креирање софтвера за мобилне уређаје
Вектор Паскал Вектор Паскал је језик заСИМД скупове инструкција као што су ММКС и АМД 3д Нау, подржавајући све Интел и АМД процесоре и Сони ПлејСтејшн 2 Емоушн Енџин.
Морфик Паскал дозвољава развој Веб апликација које су у потпуности написане у Обџект Паскал-у (и од стране сервера и од стране претраживача).
ВДСибил – Визуелно развојно окружење и Паскал компајлер за Вин32 и ОС / 2
АмигаПаскал је бесплатан Паскал компајлер за рачунар Амига.
Веома детаљна листа може се наћи на„Паскаленду”. Архивирано изоригинала 05. 09. 2020. г. Приступљено15. 02. 2021.. Сајт је на француском, али у основи је листа са URL-овима за компајлере. Страница,„Паскал Централ”. Архивирано изоригинала 10. 03. 2010. г. Приступљено23. 03. 2006., садржи информације о Паскал-у са Мек-ом и богату колекцију архива са чланцима, плус линкове за многе компајлере и туторијале који такође могу бити веома корисни.
^Bamberger, Lothar; Davenport, James H.; Fischer, Hans-Christoph; Kok, Jan; Schumacher, Günter; Ullrich, Christian; Wallis, Peter J. L.; Winter, Dik T.; Wolff von Gudenberg, Jürgen (1990). Wallis, Peter J. L., ур.Improving Floating-Point Programming (1st изд.). Bath, United Kingdom:John Wiley & Sons Ltd.ISBN978-0-471-92437-1.
^Michel Gien, "The SOL Operating System", in Usenix Summer '83 Conference, Toronto, ON, (July 1983). стр. 75-78
Bamberger, Lothar; Davenport, James H.; Fischer, Hans-Christoph; Kok, Jan; Schumacher, Günter; Ullrich, Christian; Wallis, Peter J. L.; Winter, Dik T.; Wolff von Gudenberg, Jürgen (1990). Wallis, Peter J. L., ур.Improving Floating-Point Programming (1st изд.). Bath, United Kingdom:John Wiley & Sons Ltd.ISBN978-0-471-92437-1.
Милан Чабаркапа, Основи програмирања у Паскалу (књига 1), Круг, у Београду 2001.
C. A. R. Hoare:Notes on data structuring. In O-J Dahl, E W Dijkstra and C A R Hoare, editors, Structured Programming, pages 83–174. Academic Press, 1972.
C. A. R. Hoare, Niklaus Wirth:An Axiomatic Definition of the Programming Language Pascal. 335–355, Acta Informatica, Volume 2, 1973.
Peter Grogono:Programming in Pascal, Revised Edition, Addison-Wesley, 1980
Richard S. Forsyth:Pascal in Work and Play, Chapman and Hall, 1982
N. Wirth, M. Broy, ed, and E. Denert, ed:Pascal and its Successors inSoftware Pioneers: Contributions to Software Engineering. Springer-Verlag.Broy, M. (2002).Software Pioneers: Contributions to Software Engineering. Springer.ISBN978-3-540-43081-0.