Pascal je imperatívny a procedurálny programovací jazyk.
Prvá verzia Pascalu bola publikovaná v roku 1971, v roku 1974 bola definícia jazyka opravená a v roku 1981 bola vydaná ako norma ISO 7185.
Jazyk bol navrhnutý na začiatku 70. rokov profesorom Niklausom Wirthom. Cieľom bolo vytvoriť programovací jazyk vhodný pre výuku programovania, pomocou malého množstva základných dátových štruktúr. Jazyk bol pomenovaný po francúzskom matematikovi Blaise Pascalovi.
História Pascal, pomenovaný po francúzskom matematikovi a filozofovi Blaise Pascalovi, bol vytvorený na začiatku 70. rokov Niklausom Wirthom.
Wirth pred vytvorením Pascalu vytvoril programovacie jazyky Euler a ALGOL W, a neskôr sa podujal vytvoriť Pascalu podobné jazyky Modula-2 and Oberon.
Pascal bol spočiatku zamýšľaný najmä ako nástroj pre výuku štruktúrovaného programovania.Essential Pascal by Marco Cantù Jedna celá generácia študentov používala Pascal ako úvodný jazyk na vysokých školách. Varianty Pascalu boli často používané vo viacerých oblastiach od vedeckých projektov po PC hry a vnorené systémy. Existujú aj novšie kompilátory Pascalu a sú široko dostupné.TIOBE Programming Community Index for January 2011
Pascal bol ako primárny jazyk vyššej úrovne použitý pri vývoji Apple Lisa, a tiež v počiatočných rokoch existencie Macintoshu. Pôvodné časti operačného systému Mac OS boli ručne preložené zo zdrojových kódov v Pascale do jazyka symbolických inštrukcií Motoroly 68000.Hertzfeld, Andy. "Hungarian." Folklore.org: Macintosh Stories. Retrieved 2012-03-06. TeX, populárny program pre sadzbu textu od Donalda E. Knutha, bol napísaný vo WEBe, čo je pôvodný literate programming systém založený na DEC PDP-10 Pascale. Aplikácie ako napríklad Total Commander, Skype a Macromedia Captivate boli napísané v Delphi, čiže v Object Pascale.
Object Pascal (Embarcadero Delphi) je stále používaný pri vytváraní Windows aplikácií, a navyše má tiež schopnosť krížového prekladu pre Mac a iOS. Ďalšia medzi-platformová verzia Pascalu Free Pascal, ktorá podporuje napíš raz, skompiluj hocikde a obsahuje Lazarus IDE, je populárna u používateľov Linuxu.
Krátky opis Wirthovym zámerom bolo vytvoriť efektívny jazyk (vzhľadnom na rýchlosť kompilácie ako aj generovaného kódu) založený na takzvanom štruktúrovanom programovaní, koncepte, ktorý začal byť v tej dobe populárny. Pascal má svoje korene v jazyku ALGOL 60, ale tiež zaviedol pojmy a mechanizmy (nad rámec skalárov a polí ALGOLu), ktoré umožnili programátorom definovať ich vlastné zložené (štruktúrované) dátové typy, a taktiež umožnil jednoduchšie vytváranie dynamických a rekurzívnych dátových štruktúr ako napríklad zoznamy (angl. list), stromy a grafy. Medzi najdôležitejšie vlastnosti jazyka patria záznamy (angl. record), vymenovania, subranges, dynamicky alokované premenné s ukazovateľmi, a množiny. Aby to bolo umožnené a zmysluplné, Pascal má silnú typovú kontrolu všetkých objektov, čo znamená, že bez explicitných konverzií nie je možné jeden dátový typ skonvertovať na iný dátový typ alebo ho interpretovať ako iný dátový typ. Podobné mechanizmy sú štandardnou súčasťou mnohých dnešných programovacích jazykov. Niektoré vlastnosti jazyka Pascal pochádzajú z iných programovacích jazykov ako COBOL, Simula 67 a z Wirthovho vlastného programovacieho jazyka ALGOLa W.
Pascal, ako mnoho dnešných programovacích jazykov (ale na rozdiel od väčšiny jazykov patriacich do rodiny jazyka C), dovoľuje definovať vnorené procedúry na ľubovoľnej hĺbke vnorenia, a tiež dovoľuje vo vnútri funkcií a procedúr uvádzanie väčšiny druhov definícií a deklarácií. Toto umožňuje veľmi jednoduchú a koherentnú syntax, kde celý program môže byť syntakticky takmer identický jedinej procedúre (procedure) alebo funkcii (function), samozrejme až na samotné kľúčové slová "program", "procedure" a "function".
Implementácie Prvé kompilátory Pascalu Prvý kompilátor Pascalu bol vytvorený v Zürichu pre sálové počítače série CDC 6000. Niklaus Wirth uvádza, že prvý pokus o implementáciu vo Fortrane v roku 1969 nebol úspešný z dôvodu nevhodnosti Fortranu pre vyjadrovanie zložitých dátových štruktúr. Druhý pokus bol naformulovaný v samotnom Pascale a stal sa funkčným v polovici 70-tych rokov. Od toho času bolo veľa kompilátorov Pascalu podobne samo-hostiteľských, čiže tieto kompilátory boli napísané v Pascale, a väčšinou boli schopné samé seba rekompilovať keď boli do jazyka pridané nové črty alebo keď bol kompilátor portovaný do nového prostredia. Kompilátor GNU Pascal, napísaný v jazyku C, je jediná podstatná výnimka z tohto pravidla.
Prvý úspešný port kompilátora CDC Pascal na iný sálový počítač bol dokončený Welshom a Quinnom na Queen's University v Belfaste (QUB) v roku 1972. Cieľovým počítačom bola séria ICT 1900 vyrobená spoločnosťou International Computers Limited (ICL). Tento kompilátor sa v zápätí stal predchodcom kompilátora Pascalu pre minipočítač ICS Multum. Multum bol vytvorený, s predpokladom používať na ňom Pascal ako systémový programovací jazyk, Findlayom, Cupplesom, Cavourasom a Davisom pracujúcimi na oddelení počítačových vied na univerzite v Glasgow. Myslí sa, že Multum Pascal, ktorý bol dokončený v lete 1973, mohol byť prvou 16-bitovou implementáciou.
Úplne nový kompilátor bol dokončený Welshom et al. na QUB v roku 1977. Ponúkal diagnostiku zdrojového jazyka (zahŕňajúcu profilovanie, trasovanie a postmortem výpisy (angl. dump) formátované podľa typov), ktorá bola implementovaná Findlayom a Wattom na univerzite v Glasgow. Táto implementácia bola v roku 1980 portovaná na sériu počítačov ICL 2900 tímom situovaným na univerzitách v Southampton a v Glasgow. Štandardná implementácia modelu jazyka Pascal bola tiež založená na tomto kompilátore, a v roku 1984 bola adaptovaná Welshom a Hayom na Manchesterskej univerzite za účelom rigorózneho overenia súladu so štandardom BSI 6192/ISO 7185 a za účelom generovania kódu pre prenosný abstraktný stroj.
Prvý kompilátor Pascalu napísaný v severnej Amerike bol skonštruovaný na University of Illinois pod vedením Donalda B. Gilliesa pre PDP-11 a generoval natívny strojový kód.
Systém Pascal-P Aby sa jazyk rýchlo rozšíril, v Zürichu bol vytvorený portabilný nástroj, ktorý obsahoval kompilátor generujúci kód pre virtuálny zásobníkový stroj (čiže kód, ktorý sa dá bez väčšej námahy pomerne rýchlo interpretovať), spolu s interpreterom tohto kódu - systém Pascal-P. Kompilátory systému P boli označené Pascal-P1, Pascal-P2, Pascal-P3 a Pascal-P4. Pascal-P1 bola prvá verzia, zatiaľ čo posledná verzia pochádzajúca z Zürichu bola Pascal-P4.
Pascal-P4 kompilátor/interpreter je stále možné spustiť na systémoch kompatibilných s originálnym Pascalom. Avšak, akceptuje len podmnožinu jazyka Pascal.
Pascal-P5, ktorý už nebol vytvorený pracovnou skupinou v Zürichu, akceptuje celý jazyk Pascal a je kompatibilný s normou ISO 7185.
UCSD Pascal, odnož Pascalu-P2, bol použitý Kennethom Bowlesom pri vytvorení interpretačného UCSD p-systému. Na začiatku 1980-tych rokov bol UCSD Pascal portovaný na počítače Apple II a Apple III, aby poskytol štruktúrovanú alternatívu k interpreterom BASICu, ktoré boli dodávané s týmito počítačmi. UCSD p-System bol jedným z troch operačných systémov dostupných pri uvedení pôvodného IBM PC. "An Interview with JOHN BRACKETT AND DOUG ROSS", p15, Charles Babbage Institute, 2004
Kompilátor založený na kompilátore Pascal-P4, ktorý vytváral natívne binárne súbory, bol Austrálskou komisiou pre atómovú energiu (AAEC) vypustený pre sálový počítač IBM System/370. Bol pomenovaný „AAEC Pascal Compiler“ podľa skratky mena tejto komisie.
Na začiatku 1980-tych rokov bol vytvorený Watcom Pascal, ktorý bol taktiež určený pre System 370.
IP Pascal bola implementácia programovacieho jazyka Pascal pre Micropolis DOS, ale rýchlo bola presunutá na CP/M bežiacim na Z80. V roku 1994 bola presunutá na počítače kompatibilné s procesorom 80386, a dnes existuje vo forme Windows/XP a Linux implementácií. V roku 2008 bol systém pozdvihnutý na novú úroveň a výsledný jazyk bol označený menom "Pascaline" (podľa Pascalovej mechanickej kalkulačky). Obsahuje objekty, nástroje pre menné priestory (angl. namespace controls), dynamické polia, ako aj veľa ďalších rozšírení, a vo všeobecnosti poskytuje tú istú funkcionalitu a typovú ochranu ako C#. Je to jediná takáto implementácia, ktorá je zároveň kompatibilná s originálnou implementáciou Pascalu, ktorá bola štandardizovaná normou ISO 7185.
Ako príklad využitia vo výuke je možné uviesť, že až po 1990-te roky bol Pascal používaný na VAX termináloch GMU. Boli predávané a vyučované knihy o Pascale, ktoré pokrývali s tým súvisiace programátorské potreby.
Object Pascal, Turbo Pascal Apple Computer vytvorili svoj vlastný Lisa Pascal pre Lisa Workshop v roku 1982 a prepísali tento kompilátor pre Apple Macintosh a MPW v roku 1985. V roku 1985 Larry Tesler, za prispenia Niklausa Wirtha, definoval Object Pascal a tieto rozšírenia boli začlenené tak do Lisa Pascal kompilátora ako aj do Mac Pascal kompilátora.
V roku 1980 Anders Hejlsberg napísal pre Nascom-2 kompilátor Blue Label Pascal. Reimplementácia tohto kompilátora pre IBM PC bola predávaná pod označeniami Compas Pascal a PolyPascal, až kým kompilátor neprešiel pod Borland. Premenovaný na Turbo Pascal sa stal neuveriteľne populárnym, sčasti vďaka agresívnej cenovej stratégii, sčasti vďaka tomu, že mal prvé celo-obrazovkové integrované vývojové prostredie a rýchly čas obrátky (obrátka compile-link-run trvala iba niekoľko sekúnd). Tiež bol napísaný a vysoko optimalizovaný v jazyku symbolických inštrukcií, čo z neho robilo program s malou spotrebou pamäte a rýchlosťou lepšou akú mala konkurencia. V roku 1986 Anders preportoval Turbo Pascal na Macintosh a zahrnul do neho rozšírenia pre Object Pascal. Tieto rozšírenia boli neskôr pridané do PC verzie Turbo Pascalu (Turbo Pascal 5.5). V tom istom čase Microsoft implementoval svoj Object Pascal kompilátor.Jon Udell, Crash of the Object-Oriented Pascals, BYTE, July, 1989.M.I.Trofimov, The End of Pascal?, BYTE, March, 1990, p.36. Turbo Pascal 5.5 mal veľký vplyv na Pascal komunitu, ktorá sa začala koncom 1980-tych rokov koncentrovať najmä okolo IBM PC. Produkt začalo používať veľa PC amatérov ako štruktúrovanú náhradu za BASIC. Produkt tiež začal byť prijímaný profesionálnymi vývojármi softvéru. Približne v tomto čase boli do neho pridané koncepty z jazyka C, aby programátori používajúci Pascal mohli priamo využívať C API Microsoft Windows. Medzi tieto rozšírenia patrili nulou-ukončené reťazce, aritmetika s ukazovateľmi, ukazovatele na funkcie, operátor umožňujúci získať adresu premennej, a nezabezpečené pretypovanie.
Spoločnosť Borland sa neskôr rozhodla, že chce viac prepracované objektovo-orientované črty, a ako základ svojho produktu Delphi použila návrh štandardu Object Pascal od Apple. (Tento Apple návrh ešte stále nie je plnohodnotným štandardom.) Prvé verzie jazyka Delphi sa preto nazývali Object Pascal. Hlavnými novými vlastnosťami v porovnaní so staršími OOP rozšíreniami boli objektový model založený na referenciách, virtuálne konštruktory a deštruktory, a privlastnenia (angl. properties). Tento dialekt implementuje aj viacero iných kompilátorov.
Turbo Pascal, a jeho odvodeniny s "jednotkami" (angl. unit) alebo konceptom modulov, sú modulárnymi jazykmi. Avšak, neposkytujú vnorené moduly ani kvalifikované importovanie a exportovanie programátorom určených symbolov.
Ostatné varianty Super Pascal bol variant, ktorý pridal ne-numerické návestia, príkaz return a výrazy ako mená typov.