LexAN – лексический анализатор

Автор работы: Пользователь скрыл имя, 15 Апреля 2014 в 00:23, лабораторная работа

Описание работы

Цель работы:
Научиться переводить исходный текст программы в коды лексем.

Файлы: 1 файл

laba.doc

— 108.00 Кб (Скачать файл)

МИНОБРНАУКИ РОССИИ

Воткинский филиал

федерального государственного образовательного учреждения

высшего профессионального образования

"Ижевский государственный технический  университет имени М.Т. Калашникова"

(ВФ ФГБОУ ВПО ИжГТУ имени  М.Т. Калашникова)

 

 

 

 

 

 

 

Кафедра ОВПиСУ

 

ОТЧЁТ

 

По лабораторной работе №1 «LexAN – лексический анализатор»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выполнил: студент группы  Б04-782-1                                        Мельников Г.С.                         

Проверил:  доцент, к.т.н                                                                Кучерова Е.А

                                                            

 

 

 

 

г. Воткинск

2014

Цель работы:

 

Научиться переводить исходный текст программы в коды лексем.

 

Скриншет программы LexAN:

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Листинг программы:

Текст программы

Program chalk;

var i, x:integer;

begin

  x:=0;

  for i:=1 to 10 do

    if x>i

    then x:=x+i;

write (i);

end.

 

Таблица терминальных символов

----------------------------------------------------------

| Код  | Терминальн. символ   | Комментарий               |

| 1    | PROGRAM              | Объявление программы      |

| 27   | ;                    | Конец операции            |

| 2    | VAR                  | Объявление переменных     |

| 29   | ,                    | Разделение идентификаторо |

| 31   | :                    | Разделитель идентификат.  |

| 5    | INTEGER              | Тип целое                 |

| 3    | BEGIN                | Начало тела               |

| 8    | FOR                  | Цикл с параметром - ДЛЯ   |

| 9    | TO                   | Цикл с параметром - ДО    |

| 14   | IF                   | Условный оператор - ЕСЛИ  |

| 28   | :=                   | Присвоение                |

| 40   | >                    | Больше                    |

| 15   | THEN                 | Условный оператор - ТО    |

| 18   | WRITE                | Вывести на консоль        |

| 30   | .                    | Конец программы/отделение |

| 32   | +                    | Сложение                  |

| 35   | (                    | Открытая скобка           |

| 36   | )                    | Закрытая скобка           |

| 4    | END                  | Конец тела                |

| 10   | DO                   | ВЫПОЛНИТЬ                 |

----------------------------------------------------------

 

Таблица символических имен

-------------------------------

| Спец | Идентификатор        |

| 1    | chalk                |

| 2    | i                    |

| 3    | x                   |

-------------------------------

 

Таблица литералов

----------------------------------------------------

| Специф.    | Литерал    | Тип        | Размер  в п |

| 1          | 0          | INTEGER    | 2          |

| 2          | 1          | INTEGER    | 2          |

| 3          | 10         | INTEGER    | 2          |

-----------------------------------------------------

 

Таблица выходных кодов

-----------------------------------------------------------------------

| № по | 1    | 2    | 3    | 4    | 5    | 6    | 7    | 8    | 9    |

| № та | 1    | 2    | 1    | 1    | 2    | 1    | 2    | 1    | 1    |

| Код, | 1    | 1    | 27   | 2    | 2    | 29   | 3    | 31   | 5    |

-----------------------------------------------------------------------

 

Таблица выходных кодов, продолжение

-----------------------------------------------------------------------

| 10   | 11   | 12   | 13   | 14   | 15   | 16   | 17   | 18   | 19   |

| 1    | 1    | 2    | 1    | 3    | 1    | 1    | 2    | 1    | 3    |

| 27   | 3    | 3    | 28   | 1    | 27   | 8    | 2    | 28   | 2    |

-----------------------------------------------------------------------

 

Таблица выходных кодов, продолжение

-----------------------------------------------------------------------

| 20   | 21   | 22   | 23   | 24   | 25   | 26   | 27   | 28   | 29   |

| 1    | 3    | 1    | 1    | 2    | 1    | 2    | 1    | 2    | 1    |

| 9    | 3    | 10   | 14   | 3    | 40   | 2    | 15   | 3    | 28   |

-----------------------------------------------------------------------

 

Таблица выходных кодов, продолжение

-----------------------------------------------------------------------

| 30   | 31   | 32   | 33   | 34   | 35   | 36   | 37   | 38   | 39   |

| 2    | 1    | 2    | 1    | 1    | 1    | 2    | 1    | 1    | 1    |

| 3    | 32   | 2    | 27   | 18   | 35   | 2    | 36   | 27   | 4    |

-----------------------------------------------------------------------

 

Таблица выходных кодов, продолжение

-----------------------------------------------------------------------

| 40   | 41   |      |      |      |      |      |      |      |      |

| 1    |      |      |      |      |      |      |      |      |      |

| 30   |      |      |      |      |      |      |      |      |      |

-----------------------------------------------------------------------

 

Сообщения

Проверка удачна. Таблица выходных кодов лексем заполнена верно


Информация о работе LexAN – лексический анализатор