Сродкі алгарытмічнай мовы Pascal Агульная характарыстыка алгарытмічных моў
Асноўная мэта, якая ставіцца пры распрацоўцы алгарытмічнай мовы, заключаецца ў тым, каб прапанаваць некаторы фармалізаваны сродак зносін паміж людзьмі, а галоўным чынам паміж чалавекам і машынай, прызначаны для выканання алгарытмаў.
Кожная мова ахоплівае нейкую абмежаваную вобласць прыкладання, бо патрабаванні кампактнасці мовы, зручнасці запісу алгарытмаў, зразумеласці пры вывучэнні яе, пэўная прастата стварэння транслятараў, а таксама парк ЭВМ, якія будуць яе скарыстоўваць, накладваюць пэўныя абмежаванні.
Кожная алгарытмічная мова характарызуецца сваёй арыентацыяй на азначаныя тыпы даных і на азначаныя дзеянні над данымі. Напрыклад, алгарытмічныя мовы, якія арыентаваны на задачы матэматыкі (аналізу, алгебры), павінны мець даныя цэлалікавыя, сапраўдныя, камплексныя і г. д. Існуюць і іншыя мовы, якія апрацоўваюць тэксты, графы, банкаўскія і падобныя дакументы. Там узнікаюць свае характэрныя тыпы даных.
Элементы даных могуць групавацца ў структуры і наогул утвараць аб’екты мовы. Дзеянні над данымі выконваюцца пры дапамозе аператараў – сказаў мовы.
Для абазначэння канкрэтных аб’ектаў алгарытмічнай мовы выкарыстоўваецца паняцце пераменнай велічыні. Пераменная ў матэматычных выразах тлумачыцца так: тут нешта будзе; пераменная ў выразе на алгарытмічнай мове – тут нешта ёсць (пэўнага зафіксаванага тыпу), і гэта можа быць зменена.
Фундаментальным дзеяннем у любой алгарытмічнай мове з’яўляецца дзеянне надання значэння, якое змяняе значэнне некаторай пераменнай. Надаваць значэнне можна праз аператар «:=» ці ўводам, а можна і ўскосна (напрыклад, залезці на чужое поле памяці).
Базавыя элементы мовы Pascal
Н. Вірт у 1968 г. распрацаваў для мэт навучання алгарытмічную мову Pascal. У 1971 г. з’явіўся першы транслятар, у 1973 г. – стандарт, у 1979 г. – прыблізна 80 транслятараў. У 80-я гг. XX ст. – Turbo Pascal для ПЭВМ тыпу IBM са сваёй інструментальнай сістэмай праграміравання (мова, транслятар, рэдактар, адладчык).
Алфавіт
Тэкст Pascal-праграмы ўяўляе сабой паслядоўнасць радкоў, якія складаюцца з сімвалаў, што ўтвараюць алфавіт мовы. Радкі праграмы заканчваюцца спецыяльнымі кіруючымі сімваламі, якія не ўваходзяць у алфавіт. Максімальная даўжыня радка – 126 сімвалаў.
Алфавіт складаецца з наступных сімвалаў:
вялікіх і малых літар і сімвала «падкрэсліванне», які аднесены да літар: A, …, Z, a, … , z, _. Літары выкарыстоўваюцца для фарміравання ідэнтыфікатараў і службовых слоў (звярніце ўвагу, што тут адсутнічаюць літары кірыліцы);
дзесяці арабскіх лічбаў ад 0 да 9: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Лічбы выкарыстоўваюцца для запісу лікаў і ідэнтыфікатараў;
дваццаці двух спецыяльных сімвалаў і прабелу: + – * / = > < . , ; : @ ‘ ( ) [ ] { } # $ ^ (няма сімвала !, % і некаторых іншых).
Спецыяльныя сімвалы выкарыстоўваюцца для канструявання знакаў аперацый, выразаў, каментарыяў, а таксама як сінтаксічныя раздзяляльнікі.
Лексічная структура мовы
Сімвалы з алфавіта мовы выкарыстоўваюцца для пабудовы базавых элементаў Pascal-праграм – лексем. Лексема (лексічны элемент) – мінімальная адзінка мовы, якая мае самастойны сэнс.
У мове Pascal існуюць наступныя класы лексем: 1) службовыя словы; 2) ідэнтыфікатары; 3) выявы канстант; 4) знакі аперацый; 5) раздзяляльнікі; 6) дырэктывы кампілятара.
1. Службовыя (зарэзерваваныя) словы. Гэта абмежаваная група слоў, пабудаваных з літар. Іх прыкладна 55. Кожнае службовае слова ўяўляе сабой непадзельнае ўтварэнне, сэнс якога зафіксаваны. Службовыя словы нельга выкарыстоўваць для другіх мэт.
Службовае слова трактуецца як адзін сімвал і ўжываецца для нагляднасці, каб не прыдумваць новых знакаў. Для кожнага службовага слова з мноства значэнняў, якія існуюць у англійскай мове, выбрана адно, якое адпавядае службовай ролі гэтага слова ў мове Pascal.
Разгледзім службовыя словы.
Назва |
Пераклад |
Тлумачэнне |
ABSOLUTE |
Абсалютна |
Опцыя (рэжым) |
AND, OR, XOR |
І, ці, якое выключае ці |
Аперацыі |
ARRAY |
Масіў |
Масіў |
ASM, ASSEMBLER |
– |
Опцыя падпраграмы |
BEGIN, END |
Пачатак, канец |
Аператарныя дужкі |
CASE, OF |
Выбар з |
Варыянт |
CONST |
Канстанты |
Секцыя канстант |
CONSTRUCTOR, DESTRUCTOR |
Ствараць, разбураць |
Тыпы працэдур |
DIV, MOD |
Дзяленне цэлалікавае |
Аперацыі |
FOR, DO, TO, DOWNTO, REPEAT, WHILE, UNTIL |
Для, выконваць, да, да, паўтараць, пакуль, пакуль |
Для ўтварэння аператараў цыклаў |
IF, THEN, ELSE |
Калі, тады, інакш |
Для ўтварэння аператара выбару |
EXTERNAL |
Знешні |
Опцыя |
FILE |
Файл |
Найменная сукупнасць даных на знешнім носьбіце |
FORWARD, FUNCTION, PROCEDURE, PROGRAM |
Уперадзе, функцыя, працэдура, праграма |
Службовыя словы |
GOTO |
Перайсці да |
Аператар |
IMPLEMENTATION, INTERFACE |
Рэалізацыя, сукупнасць сродкаў |
Пры вызначэнні знешняга модуля |
INLINE, INTERRUPT |
Убудаваны, перарыванне |
Опцыі падпраграм |
IN |
У (чымсьці) |
Аперацыя |
LABEL |
Метка |
Секцыя метак |
NIL |
Пуста |
Канстанта |
NOT |
Не |
Аперацыя |
OBJECT |
Аб’ект |
Тып |
PACKET |
Упакаваны |
Тып |
PRIVATE |
Прыватны |
Секцыя |
RECORD |
Запіс |
Састаўны элемент даных з кампанентамі розных тыпаў |
SET OF |
Мноства з |
Аператар |
SHL, SHR |
Зрух улева, управа |
Аперацыя |
STRING |
Радок (сімвалаў) |
Тып данага |
TYPE |
Тып (данага) |
Секцыя |
UNIT, USES |
Модуль, выкарыстанне |
Службовыя словы |
VAR |
Пераменныя |
Секцыя |
VIRTUAL |
Мяркуемы |
Які не мае фізічнага ўвасаблення |
WITH |
Разам з, з |
Аператар |
2. Ідэнтыфікатары (імёны). Уводзяцца для абазначэння ў праграме пераменных, канстант, тыпаў, метак, працэдур, функцый і фарміруюцца з літар і лічбаў у адпаведнасці з наступнай дыяграмай.
Ідэнтыфікатар:
Даўжыня ідэнтыфікатара можа быць адвольнай, але кампілятар успрымае толькі першыя 63 (або 8 – залежыць ад версіі) сімвалы.
Трэба памятаць, што ў мове Pascal адпаведныя вялікія і малыя літары ў ідэнтыфікатарах і службовых словах не адрозніваюцца. Напрыклад, INDEX, index, Index – гэта адно і тое ж.
Ідэнтыфікатары ўводзяцца ў праграму пры дапамозе апісанняў.
У мове існуюць так званыя стандартныя ідэнтыфікатары для абазначэння загадзя вызначаных распрацоўшчыкамі мовы тыпаў даных, канстант, працэдур, функцый. Іх лепш выкарыстоўваць без якіх-небудзь змен (напрыклад, Integer, Pi, Maxint, Sin, Cos і інш.).
3. Выявы канстант. Гэта група лексем абазначае нязменныя аб’екты: лікі, радок сімвалаў і інш. (13.14; ‘ОХ-ОХ’, $F7F0, #55).
4. Знакі аперацый. Яны фарміруюцца з аднаго ці некалькіх спецыяльных сімвалаў і прызначаны для задання дзеянняў па пераўтварэнні даных і падліку значэнняў выразаў. Прыклады аперацый: <>, <=, >=, *, +, /, –, @, ^, DIV, MOD, AND, OR, XOR, NOT.
5. Раздзяляльнікі. Яны таксама фарміруюцца са спецыяльных сімвалаў і ў асноўным выкарыстоўваюцца, каб павысіць нагляднасць тэкстаў праграм. Да раздзяляльнікаў належаць ; : ( ) = і інш. Прабел выкарыстоўваюць для аддзялення лексем тады, калі іх злітнае напісанне зменіць змест праграмы. Колькасць прабелаў не абмежавана. Іх можна ўжываць разам з любым раздзяляльнікам.
У тэкстах праграм дапускаюцца фрагменты тлумачальнага характару – каментарыі, якія не ўплываюць на выкананне праграмы.
Каментарый – гэта паслядоўнасць сімвалаў неабавязкова з алфавіта мовы (г. зн. могуць быць і рускія літары), якія заключаны ў фігурныя дужкі {…} ці раздзяляльнікі віду (*...*). Напрыклад:
{каментарый (*укладзены каментарый*)
каментарый на двух радках}
Каментарыі могуць знаходзіцца паміж любымі дзвюма лексемамі праграмы.
6. Дырэктывы кампілятара. Яны задаюць або адмяняюць зададзены рэжым кампіляцыі ці даюць іншую інфармацыю кампілятару. Сінтаксіс: {$імя_дырэктывы...}. Гэтыя канструкцыі таксама, як і каментарыі, заключаюцца ў фігурныя дужкі, але па спецыяльным сінтаксісе.
Напрыклад: {$R+}, {$R–} – дазвол ці забарона праверкі межаў скалярных даных ці індэксаў масіваў; {$Q+}, {$Q–} – дазвол ці забарона праверкі перапаўнення цэлалікавых даных.