Pascal (dasturlash tili)

**Paskal** () — eng mashhur dasturlash tillaridan biri boʻlib, oʻrta maktab hamda universitetlarning birinchi kurslarida dasturlashni oʻrgatishda qoʻllanadi. Ushbu dasturlash tili boshqa bir qator tillar uchun asos boʻlib xizmat qiladi. Paskal imperativ va protsessual dasturlash tili hisoblanadi. Ushbu dasturlash tili dasturlash va maʼlumotlar strukturasidan foydalangan holda yaxshi dasturlash amaliyotlarini ragʻbatlantirish uchun kichik va samarali til sifatida ishlab chiqilgan. U fransuz matematigi, faylasufi va fizigi Blez Paskal sharafiga nomlangan.

Shveysariyaning Syurix shahridagi oliy tеxnika maktabining profеssori Niklaus Virt tomonidan 1970-yillarda yaratilgan bo‘lib, 1979-yilda standart Pascal dеb tasdiqlangan. O‘zining soddaligi, mantiqiyligi va samaraligi tufayli bu til butun dunyoga tеz tarqaldi. Hozirgi paytda barcha hisoblash mashinalari, xususan, mikro EHMlar xam shu tilda ishlash imkoniyatiga ega. Dasturlar matnining to‘g‘riligini osonlik bilan tеkshirish mumkinligini, ularning maʼnosi yaqqol ko‘zga tashlanishi va oddiyligi bilan ajralib turadi.

Virtning “Algoritmlar + Maʼlumotlar tuzilmalari = Dasturlar” (:en:Algorithms_+_Data_Structures_=_Programs) kitobi asosida Paskal dasturlash tili ALGOL60 tilining namunasi boʻyicha ishlab chiqilgan. Virt ALGOL-X saʼy-harakatlari doirasida tilni takomillashtirish jarayonida ishtirok etdi va ALGOL-W deb nomlangan versiyani taklif qildi. Bu qabul qilinmadi va ALGOL-X jarayoni toʻxtab qoldi. 1968-yilda Virt ALGOL-X jarayonidan voz kechishga va ALGOL-Wʼni yanada takomillashtirishga qaror qildi va uni 1970-yilda Paskal sifatida chiqardi. ALGOL skalyarlari va massivlaridan tashqari, Paskal murakkab maʼlumotlar turlarini aniqlash hamda roʻyxatlar, tarmoqlanish va grafiklar kabi dinamik va rekursiv maʼlumotlar tuzilmalarini yaratish imkonini beradi.

C (va C oilasidagi koʻpgina tillardan) farqli oʻlaroq, Paskal har qanday murakkab darajadagi protsedura taʼriflariga ruxsat beradi, shuningdek, quyi dasturlar (protseduralar va funksiyalar) ichida koʻplab taʼriflar va deklaratsiyalarga ruxsat beradi. Shunday qilib, dastur sintaktik jihatdan bitta protsedura yoki funksiyaga oʻxshaydi. Bu ALGOL60ʼning blok tuzilishiga oʻxshaydi, lekin ixtiyoriy blok bayonotlaridan faqat protseduralar va funksiyalar bilan cheklanganligi bilan ajralib turadi.

Paskal 1970-yillarda, ayniqsa rivojlanayotgan minikompyuter bozorida muvaffaqiyat qozondi. Kompilyatorlar koʻplab mikrokompyuterlar uchun ham mavjud edi, chunki bu soha 1970-yillarning oxirida paydo boʻlgan. U 1980-yillarda universitet darajasidagi dasturlash kurslarida oʻqitish tili sifatida keng qoʻllangan va shu davrda tijorat dasturiy taʼminotini yozish uchun ishlab chiqarishda ham foydalanilgan. 1980-yillarning oxiri va 1990-yillarning boshlarida UNIXʼga asoslangan tizimlar ommalashgani va ayniqsa C++ dasturlash tilining chiqarilishi bilan Paskal dasturlash tili oʻrniga C dasturlash tili oilasi undan oʻzib ketdi.

Obyektga yoʻnaltirilgan dasturlash uchun moʻljallangan Object Pascal nomli dasturlash tili 1985-yilda ishlab chiqilgan. Bu 1980-yillarning oxirida Apple Computer va Borland tomonidan qoʻllangan va keyinchalik Microsoft Windows platformasida Delphi dasturlash tili ishlab chiqilgan. Paskal imkoniyatlarining kengayishi munosabati bilan Modula-2 va Oberon tillari vujud keldi.

## Paskal tilining alifbosi

Paskal dasturlash tilining alifbosi deb, shu tilda maʼlumotlarni ifodalash va dasturlar yozish jarayonida kompilyator tomonidan qabul qilishga ruxsat berilgan belgilar yoki maxsus belgilardan iborat bo‘lgan zanjirlar to‘plamiga aytiladi.
Bu alifbo o‘z ichiga ASCII (halqaro belgilar va ularning uodlari) jadvalining hamma belgilarini, yaʼni quyidagilarni oladi:

# Lotin alifbosining katta va kichik sharflari;
# 0 dan 9 gacha arab raqamlari;
# Tagiga chizish belgisi (_); 
# Bo‘shliq (probel) belgisi; (bu belgi paskal tilida barcha xizmatchi so‘zlar va maʼlumotlarni bir-biridan ajratish uchun foydalaniladi); 
# Boshqaruvchi belgilar: ASCII jadvalidagi kodlari 0 dan 31 gacha bo‘lgan belgilar. Bu belgilar satr va konstantalarni ifodalashda qo‘llanishi mumkin;
# Turli ko‘rsatmalarni yozish uchun ishlatiladigan maxsus belgilar: > = <= ; 
# Xizmatchi so‘zlar. Ular paskal tilida maʼlum bir maʼno yoki ko‘rsatmani anglatuvchi maxsus belgilar zanjiridan iborat bo‘lib, bu zanjirni o‘zgartirish yoki qisqartirib qo‘llash mumkin emas. Masalan: begin, program, end va hokazo.

*Eslatma:* Agar dasturlar yozishda yuqorida sanab o‘tilgan belgilardan boshqa belgi yoki xizmatchi bo‘lmagan so‘zlar uchrab qolsa, bu haqida kompilyator maxsus axborotni kompyuter ekraniga chiqaradi.

## Kompilyatorlari
Umumiy foydalanish uchun bir nechta Paskal kompilyatorlari va interpretatorlari mavjud:
* **Delphi** — Embarcadero kompaniyasining (sobiq Borland/CodeGear) tezkor ilovalarni ishlab chiqish (RAD) mahsulotidir. U Windows, mac OS, iOS va Android uchun ilovalar yaratish uchun Paskaldan asosidagi Object Pascal tilidan (Borland tomonidan “Delphi” deb ataladi) foydalanadi. D8 dan D2005, D2006 va D2007 oraligʻida mavjud boʻlgan .NET qoʻllab-quvvatlashi tugatildi va uning oʻrniga oldingilaridan tubdan farq qiluvchi Oxygene (Prism deb qayta nomlangan) bilan almashtirildi. Soʻnggi yillarda ishlab chiqilgan D2009, D2010, Delphi XEʼda Unicode qoʻllab-quvvatlash va generiklar qoʻshildi.
* **Free Pascal** — bu Object Pascal tilida yozilgan platformalararo kompilyatordir. U qulay va kuchli kompilyatsiyani taqdim etishga qaratilgan boʻlib, u eski ilovalarni kompilyatsiya qilish va yangilarini ishlab chiqish vositasi boʻlishi mumkin. U GNU ommaviy litsenziyasi (GNU GPL) ostida tarqatiladi, paketlar va asosiy kutubxonalar oʻzgartirilgan GNU Lesser General Public License (GNU LGPL) ostida boʻladi. Turbo Pascal, Delphi va Mac Pascal uchun moslik rejimlaridan tashqari, operatorning haddan tashqari yuklanishi kabi kengaytirilgan funksiyalarni qoʻllab-quvvatlaydigan oʻz protsessual va obyektga yoʻnaltirilgan sintaksis rejimlariga ega. U koʻplab platformalar va operatsion tizimlarni qoʻllab-quvvatlaydi. Joriy versiyalarda ISO rejimi ham mavjud.
* **Turbo51** — bu Intel 8051 mikrokontrollerlar oilasi uchun Turbo Pascal 7 sintaksisi bilan bepul Paskal kompilyatori hisoblanadi.
* **Oxygene** (eski nomi *Chrome* boʻlgan) — .NET va Mono platformalari uchun Object Pascal kompilyatoridir. U RemObjects Software tomonidan tuzilgan va sotilgan va bir muddat Embarcadero tomonidan Prismʼning backend kompilyatori sifatida sotilgan.
* **Kylix** — Delphi avlodi boʻlib, Linux operatsion tizimini qoʻllab-quvvatlaydigan va takomillashtirilgan obyektlar kutubxonasiga ega. Hozirda rasman Kylix yangilanishi toʻxtatilgan. Norasmiy foydalanish uchun kompilyator va IDE mavjud.
* **Turbo Paskal** — 1980-yillar va 1990-yillarning boshlarida shaxsiy kompyuterlar uchun dominant Paskal kompilyatori boʻlgan, u kuchli kengaytmalari va juda qisqa kompilyatsiya vaqtlari tufayli mashhur boʻlgan. Turbo Paskal ixcham tarzda yozilgan va diskdan foydalanmasdan hammasini xotiradan kompilyatsiya qilishi, ishga tushirishi va diskni raskadrovka qilishi mumkin edi. Sekin egiluvchi (floppy) disklar oʻsha paytda dasturchilar uchun keng tarqalgan boʻlib, Turbo Paskalning tezligi ustunligini yanada oshirdi. Hozirda Turbo Paskalning eski versiyalari (5,5 gacha) Borland saytidan bepul yuklab olish mumkin.

## Adabiyotlar
* Вирт Н. Алгоритмы + структуры данных = программы. — М.: Мир, 1985. — 406 с.
* Вирт Н., Йенсен К. Паскаль. Руководство для пользователя и описание языка. — М.: Финансы и статистика, 1982. — 151 с.
* Грогоно П. Программирование на языке Паскаль. — М.: Мир, 1982. — 384 с.
* Культин Н. Б. Delphi 6. Программирование на Object Pascal. — СПб.: БХВ-Петербург, 2001. — 528 с. — ISBN 5-94157-112-7.
* Моргун А. Н. Программирование на языке Паскаль (Pascal). Основы обработки структур данных. — М.: Диалектика, 2005. — 576 с. — ISBN 5-8459-0935-X.
* Перминов О. Н. Язык программирования Паскаль : Справочник. — М.: Радио и связь, 1989. — 128 с. — ISBN 5-256-00311-9.
* Рубенкинг Н. Дж. Турбо Паскаль для Windows: в 2-х томах. Пер. с англ. — М.: Мир, 1993.
* Языки программирования Ада, Си, Паскаль = Comparing and Assessong Programming Languages Ada, C, and Pascal / А. Фьюэр, Н. Джехани. — М.: Радио и Связь, 1989. — 368 с. — 50 000 экз. — ISBN 5-256-00309-7.
## Havolalar
* Pascal tili manbalari
* Pascal tili manbalari
* Программирование на pascal — online tutorial (rus) 

## Izohlar