Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Построение детерминированного конечного автомата

Автор:   •  Декабрь 18, 2023  •  Лабораторная работа  •  11,708 Слов (47 Страниц)  •  49 Просмотры

Страница 1 из 47

 МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

Учреждение образования
«Гомельский государственный технический университет имени П.О. Сухого»

Факультет автоматизированных и информационных систем

Кафедра «Информационные технологии»

Специальность 1-40 04 01 «Информатика и технологии программирования»

Отчет
по лабораторной работе №7
по теме: «Построение детерминированного конечного автомата»
по дисциплине: «Методы трансляции»

Составил: студент гр. ИП-31                 Доктренко Д.И.

(подпись, дата)

Принял: доцент кафедры ИТ                 Кравченко О.А.

(должность)

        

Гомель 2023


Цель работы: проведение синтаксического анализа конструкции языка программирования с помощью детерминированного конечного автомата (ДКА).

Задание

Дано общее описание конструкции некоторого языка программирования. Задана конкретная конструкция. Предполагается, что проведен лексический анализ этой конструкции, в результате которого составлен новый (упрощенный) алфавит исходного языка. Данный алфавит характерен тем, что в нем каждое служебное слово, каждый идентификатор и каждое число, входящие в конструкцию языка программирования, рассматриваются как отдельные символы. Требуется:

1) составить ДКА, который анализирует синтаксическую правильность заданной конструкции, т. е. соответствие структуры конструкции общему описанию;

2) разработать программу (на одном из изученных языков программирования), которая моделирует работу ДКА;

3) проверить работу программы при анализе правильной и неправильной конструкции.

Вариант индивидуального задания

Вариант 16

Описание функции языка программирования имеет следующую структуру:

function имя_функции(список_параметров_функции) begin оператор_присваивания; оператор_присваивания; оператор_присваивания; end;

Оператор присваивания имеет одну из следующих структур:

переменная := выражение

переменная := алгебраическое_сложение выражение

переменная := выражение алгебраическое_сложение выражение

В левой части оператора присваивания в качестве переменной может использоваться имя функции.

Алгебраическое сложение – это одна из операций + или -.

Выражение – это переменная или число.

Список параметров функции разделяется символом «;». Количество параметров – от одного до трех. В качестве параметра функции может использоваться только переменная.

Пробелы могут стоять в конструкции в любом месте. Каждое служебное слово должно быть выделено пробелами.

Алфавит языка после лексического анализа:

Служебные слова: function, begin, end.

Знаки: ;, +, -, (, ), пробел.

Имена функций: f1, f2, f3, f4.

Переменные: a1, a2, a3, a4, a5, a6.

Числа: r1, r2, r3, r4, r5, r6.

Пример правильной конструкции:

function f1(a2; a5; а1) begin a3:= r1-a2-a5; a4:= r1+a2; f1:=-a4; end;

Пример неправильной конструкции:

function f1(a2, a5) begin a3:= r1-a2; a4:= r1+a2; f1:=-a4; end;

Модель ДКА:

[pic 1]

Таблица состояний:

Состояния

Символы

пробел

function

begin

end

f1,…,f4

a1,…,a6

r1,…,r6

:=

(

)

+, -

;

0

1

E

E

E

E

E

E

E

E

E

E

E

1

1

2

E

E

E

E

E

E

E

E

E

E

2

3

E

E

E

E

E

E

E

E

E

E

E

3

3

E

E

E

4

E

E

E

E

E

E

E

4

4

E

E

E

E

E

E

E

5

E

E

E

5

5

E

E

E

E

6

E

E

E

E

E

E

6

6

E

E

E

E

E

E

E

E

11

E

7

7

7

E

E

E

E

8

E

E

E

E

E

E

8

8

E

E

E

E

E

E

E

E

11

E

9

9

9

E

E

E

E

10

E

E

E

E

E

E

10

10

E

E

E

E

E

E

E

E

11

E

E

11

12

E

E

E

E

E

E

E

E

E

E

E

12

12

E

13

E

E

E

E

E

E

E

E

E

13

14

E

E

E

E

E

E

E

E

E

E

E

14

14

E

E

E

E

15

E

E

E

E

E

E

15

15

E

E

E

E

E

E

16

E

E

E

E

16

16

E

E

E

E

18

18

E

E

E

17

E

17

17

E

E

E

E

18

18

E

E

E

E

E

18

18

E

E

E

E

E

E

E

E

E

17

19

19

20

E

E

E

E

E

E

E

E

E

E

E

20

20

E

E

21

E

15

E

E

E

E

E

E

21

21

E

E

E

E

E

E

E

E

E

E

22

22

E

E

E

E

E

E

E

E

E

E

E

E

E

E

E

E

E

E

E

E

E

E

E

E

E

Код программы:

using System;

using System.Collections.Generic;

...

Скачать:   txt (28.5 Kb)   pdf (348.6 Kb)   docx (169.7 Kb)  
Продолжить читать еще 46 страниц(ы) »
Доступно только на Essays.club