- Өткен сабақта екі оң санның ең үлкен ортақ бөлінгішін есептейтін екі түрлі машинаның формальді емес бейнесін келтірдік. Физикалық тұрғыдан олар екі басқа, бірақ математикалық тұрғыдан бір-біріне ұқсас. Олардың ең үлкен ортақ бөлінгіші есептеу қабілеттілігін дәлелдеу бір-біріне сәйкес келеді. Өйткені олар бір ғана “ойын ережелерін” әр түрлі іске асырады. Бұл ойын ережелері “Евклид алгоритмі” деген атпен белгі алгоритмнің мәнін құрайды.
Өткен сабақта Евклид алгоритм; ауызша тілмен бейнеленді. Бірақ оны қолдану мүмкін болған есептеулер саны өте көп болғандықтан оны формальді түрде қарастыру керек. Яғни бұл алгоритмді қандай да бір ыңғайлы формальді жазу түріне өткізуіміз қажет.
- Формальді жазу түрінің бір қатар артықшылықтары бар.
— Ол алгоритмдерді математикалық обьектер ретінде қарастыруға мүмкіндік береді, алгоритімнің формальді бейнесін негіз ретінде алып,мысалы формальді бейнелері жалпы құрылымдық қасиеттерге ие болған алгоритмдер классы туралы теорема дәлелдеуге мүмкіндік береді.
[Мысалы Паскаль программаларының жалпы құрылымы]
— Формальді жазба түрі алгоритмді сондай дәл бейнелеуге мүмкіндік береді, егер аргуметтер мәні берілсе (кірісі), онда сәйкес жауаптың (шығысы) қандай болуы керектігіне қатысты ешқандайкүмән болмайды. Формальді бейнеленген алгоритм мен аргуметтерін қабылдап алып, есептеу жүргізетін автомат одан әрі адамның қатысынсыз-ақ жауабын шығарады.
— Мұндай автоматты есептеуіштерге арналған алгоритмдер программа деп аталады. Программаны жазудың формальді әдістері программалау тілдері деп аталады. Тілдер деген терминнің қолданылуы табиғи тілдер үшін бұрыннан қолданылатын “грамматика”,”синтаксис”,”семантика” программалау тілдері үшін терминдерін де қарастыруға жағдай жасады. Бұл термин ұғымдары (грамматика анықтамасы арнайы сабақта беріледі) программалау тілдерінде былайша баяндалады:
- Синтаксис-қайсы бір тілдің элементтерінің құрылуын анықтайтын ережелердің жиынтығы. Басқаша айтқанда берілген символдардың симантикалық мағынасы бар тізбегінің ережелер жиынтығы. Синтаксис қайсы бір тілдің ұғымдарын сипаттайтын ережелер арқылы беріледі. Ол ұғымдардың мысалы ретінде айнымалы, өрнек, оператор және процедураны алуға болады. Ұғымдардың тізбегі мен ережелері бойынша пайдалануы программаның синтаксистік дұрыс құрылымын анықтайды.
Семантика-тілдің элементтері мен және олардың мағыналы мәндері арасындағы қатынасты анықтайтын ережелер мен шарттар.
Семантикалық анализатор-берілген операторлардың
синтаксистік ережеге және берілген программалау тілінің семантикасына сай болуын тексеруді қамтамасыз ететін компилятор компоненті. Анализатор синтаксис пен семантиканы тексерумен айналысады. Олардың әрқайсысы белгілі бір мәселені шешетін бірнеше блоктан тұрады.