34
3. ТУРБО ПАСКАЛЬ ТІЛІНЕ КІРІСПЕ
3.1 Паскаль тілінің жалпы сипаттамалары
Паскаль тілін 1968-71 жылдары Швейцарияда профессор Никлаус Вирт оқып үйренуге қолайлы программалау тілі ре-тінде ұсынған болатын. Қазіргі кезде барлық дербес компьютер-лер осы тілде жұмыс атқара алады. Паскаль тілінде жазылған программаның дұрыстығы компьютерде жеңіл тексеріледі жəне жіберілген қате тез түзетіледі.
Бұл тілде жазылған программаны компьютерде орындау ке-зінде ол алдымен трансляция сатысынан өтіп (машина тіліне аударылып), объектілік программа түріне ауысады да, сонан кейін барып орындалады. Осы сəтте компьютерде программаның екі нұсқасы болады, оның біріншісі – алгоритмдік тілдегі алғашқы жазылған нұсқасы, ал екіншісі – объектілік кодтағы машина ко-дында жазылған программа. Есептің нəтижесін тек машиналық кодта жазылған программа арқылы аламыз, ал программаны түзету қажет болғанда оның алғашқы нұсқасы өңделіп, оны қайта түрлендіру сатысы жүзеге асырылады.
Біз мысалдар келтіріп, оқу процесінде қарастырып отырған тіл – Турбо Паскаль деп аталатын дербес ЭЕМ-дерге арналған Паскаль программалау тілінің бір нұсқасы, осы тəрізді Турбо Паскаль нұсқасы да жиі қолданылады. Бұлардың бір-бірінен айырмашылығы онша көп емес. Оқу орындарында қолданыла-тын компиляторларға байланысты осы екеуі де пайдаланыла береді. Төменде келтіріліген мысалдар осы екі нұсқада да орын-дала береді.
Қазіргі кезде Паскаль тілі кез келген күрделі есептерді шығара алатын, кең таралған стандартты оқып үйрену тіліне айналды. Оған бірнеше себептер бар.
Біріншіден, Паскаль тілі өз идеологиясы бойынша қазіргі программалау технологиясына өте жақын, оның негізгі оператор-лары құрылымдық программалау талаптарын толық орындай алады.
35
Екіншіден, бұл тіл программалардағы жоғарыдан төмен қарай құру технологиясын (қадамдар бойынша жіктей отырып талдау мүмкіндігі) толық жүзеге асыра алады.
Үшіншіден, мұнда мəліметтер құрылымының көптеген түр-лері бар, сондықтан алгоритмдерді қарапайым етіп құра аламыз, ол программа жасаудағы еңбек өнімділігін арттырудың негізгі кепілі бола алады.
Алгоритмдік тілдердің машиналық тілдерден негізгі айырма-шылықтары:
алгоритмдік тіл алфавиті машина тілі алфавитінен əлдеқайда көлемді, сол себепті программа мəтіні көрнекі түрде жазылады да, оны оқу, түсіну жеңіл болады;
пайдаланылатын операциялар жиыны машиналық операция-лардан тəуелсіз, олар кез келген есептің алгоритмін жазу ыңғай-лылығына қарай математикалық амалдарға байланысты таңда-лып алынады;
операцияларда қолданылатын мəліметтерге – операндтарға қайталанбайтын қарапайым атаулар беріледі, сонан кейін опе-рандтар тек өз аттары бойынша шақырылып пайдаланылады;
программалау тілінде мəліметтердің машиналық типтеріне қарағанда кең ауқымды көптеген типтер түрлері қолданылады.
Осыдан алгоритмдік тілдің машинадан тəуелсіз, математикаға жақындау, ыңғайлы тіл екенін аңғаруға болады.
Алгоритмдік тілдің синтаксисін жазу үшін арнайы метатіл қолданылады, ол алгоритмдік тілдің нақты конструкцияларының барлық ерекшеліктерін жинақы түрде көрсете алады. Біз осы мақсатта Джон Бэкус пен Питер Наур ұсынған қысқаша жазу тəсілі – Бэкус-Наурдың металингвистикалық формулаларын пай-даланатын боламыз. Бұл жазу тəсілі Backus Naur Form немесе қысқаша BNF (БНФ тілі) деп аталып жүр. Ол кезінде АЛГОЛ тілінің синтаксисін көрсету үшін кең қолданылды.
Тілдің синтаксисін жазуда оның кейбір түсініктері пайдала-нылады: олардың ең қарапайым мүмкіндіктерін анықтап алып, солар арқылы ең басты болып саналатын – программа түсінігіне дейінгі барлық күрделі ұғымдарды анықтап шығамыз. Синтаксис тұрғысынан алғанда, əрбір анықталатын ұғым (негізгі символ емес) БНФ тілінің метаайнымалысы болып табылады, ал оның
36
мəні ретінде белгілі бір берілген шекті элементтерден тұратын кез келген конструкцияны қарастыра аламыз (яғни негізгі символдар тізбегі).
Тілдің əрбір ұғымы үшін тек бір ғана метаформула болуы тиіс, оның сол жағында анықталатын ұғым (БНФ тілінің ме-таайнымалысы) тұрады, ал формуланың оң жағында осы мета-айнымалының мүмкін болатын барлық мəндері (осы ұғымға кіретін барлық мүмкін болатын конструкциялар) орналасады.
Барлық метаайнымалылар бұрыштық жақшаларға <...> алы-нып жазылады, олар анықталатын тілдің алфавитіне кірмейді, яғни метасимволдар болып табылады, мысалы, <өрнек>, <сан> жəне т.с.с. Ал тілдің негізгі символдары тікелей көрсетіледі. Метаформуланың сол жағы мен оң жағы мынадай арнайы таңбамен ::= бөлініп жазылады. Бұл таңбаның мағынасы «анықтама бойынша мынаған тең» деген түсінікті береді. Əдетте метаайнымалы мəні ретінде мүмкін болатын бірнеше конструкциялардың кез келген бірі қабылдана алады. Мүмкін болатын барлық конструкциялар формуланың оң жағында мынадай «|» метасимволмен бөліне отырып жазылады, оның мағынасын «немесе» сөзі деп түсіну керек. Метаформуланың оң жағында метаайнымалының барлық мүмкін мəндерінен басқа сол мəндердің құрылу ережесі де көрсетіле алады.
Тағы да, біз қарастыратын екінші тəсіл – тіл ережелерін графикалық түрде бейнелейтін синтаксистік диаграмма болып табылады. Мұндай диаграммаларды Паскаль тілін жасаушы Н.Вирт көп қолданған болатын, сондықтан оны Вирт синтак-систік диаграммасы деп айтып жүр.
Синтаксистік диаграммаларда екі геометриялық фигура – тіктөртбұрыш жəне эллипс (кейде дөңгелек немесе овал) кең пайдаланылады. Тіктөртбұрыш ішінде тілдің анықталатын эле-менттері (бейтерминалды символдар), ал эллипс ішінде терми-налдық символдар, яғни анықтауды қажет етпейтін таңбалар жазылады (3.1-сурет).
Диаграмма құрылымы бойынша жылжу, яғни оны оқу бағыты бағыттауыш тілсызық (стрелка) арқылы көрсетіледі.
Синтаксистік диаграммаларды пайдаланып, тілдің дұрыс конструкциясын түсіну үшін көрсетілген бағыт бойынша бір
|