Методические указания к лабораторным работам по курсу "Теория вычислительных процессов и структур". Домашова Д.В - 16 стр.

UptoLike

4 Семантический анализ
4.1 Основные понятия
Задачи семантического анализапроверка правильности опи-
сания переменных и проверка соответствия типов переменных в
выражениях и операторах.
Семантический анализ проводится с помощью КЗ - грамматик.
Семантический анализатор (СеА) - программа, производящая
семантический анализ.
В оптимизированном варианте СиА и СеА совмещены и
дополняют друг друга.
4.2 Семантический анализатор для языкa MPL
О6работка описаний
Задача - проверить, все ли переменные описаны., причем
один раз. Эта задача решается следующим образом.
Таблица идентификаторов, введенная на этапе лексического
анализа, расширяется, приобретая вид:
Таблица 4.1
идентификатор описан тип адрес
1
2
K
Sum
1
0
Int
Ее описание:
Type TABID = record
ID : string
descrid : byte;
typid : string [4];
addrid : word
end;
var TI : array [1.. n] of TABID
Поле "описан" на этапе лексического анализа заполняется ну-
лем; при правильном описании переменных на этапе семантическо-
го анализа заменяется единицей.
При выполнении процедуры D вводится стековая
переменная-массив, в которую заносится контрольное число 0, а
затем, по мере успешного выполнения процедуры I заносятся
номера считываемых из файла лексем, которые эти лексемы имеют
в таблице идентификаторов.
Var k,zum: int
(1,2) (4,1) (2,3) (4,2)
210
19
                  4 Семантический анализ

4.1 Основные понятия
     Задачи семантического анализа – проверка правильности опи-
сания переменных и проверка соответствия типов переменных в
выражениях и операторах.
     Семантический анализ проводится с помощью КЗ - грамматик.
     Семантический анализатор (СеА) - программа, производящая
семантический анализ.
     В оптимизированном варианте СиА и СеА совмещены и
дополняют друг друга.

4.2 Семантический анализатор для языкa MPL
     О6работка описаний
     Задача - проверить, все ли переменные описаны., причем
один раз. Эта задача решается следующим образом.
      Таблица идентификаторов, введенная на этапе лексического
анализа, расширяется, приобретая вид:

           Таблица 4.1

                     идентификатор    описан         тип        адрес
             1             K            1            Int         …
             2            Sum           0             …          …
      Ее описание:
                     Type TABID = record
                               ID : string
                          descrid : byte;
                            typid : string [4];
                           addrid : word
                                     end;
                            var TI : array [1.. n] of TABID
      Поле "описан" на этапе лексического анализа заполняется ну-
лем; при правильном описании переменных на этапе семантическо-
го анализа заменяется единицей.
      При выполнении          процедуры          D вводится стековая
переменная-массив, в которую заносится контрольное число 0, а
затем, по мере успешного выполнения процедуры I заносятся
номера считываемых из файла лексем, которые эти лексемы имеют
в таблице идентификаторов.
      Var k,zum: int                    (1,2) (4,1) (2,3) (4,2)
                         0   1   2



                                                                  19