Программно-методический комплекс для обучения процессу создания компиляторов

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



?ца 1);

  • Написать исходный текст на учебном языке с использованием заданной грамматики;
  • Заполнить таблицы: символьных имен (таблица 2);
  • литералов (таблица 3);

    лексического анализа (выходных символов);

    1. Проверить правильность заполнения таблиц встроенным анализатором;
    2. При наличии ошибок, исправить имеющиеся, и повторно обработать программой LEXAN;
    3. Получить листинг полученных результатов.
    4. Сохранить результат в файл.

    Сначала производится анализ, какие терминальные символы входят в грамматику: тАЭPROGRAMтАЭ, тАЭVARтАЭ, тАЭBEGINтАЭ, тАЭENDтАЭ, тАЭ.тАЭ, тАЭINTEGERтАЭ, тАЭ;тАЭ, тАЭ:=тАЭ, тАЭ+тАЭ, тАЭ-тАЭ, тАЭFORтАЭ, тАЭDOтАЭ, тАЭTOтАЭ.

    Исходная программа, написанная с использованием терминов исходной грамматики:

    program prog1;

    var

    i, x:integer;

    begin

    x:=0;

    for i:=1 to 10 do

    x:=x+i;

    end.

    Далее выбираются терминальные символы, использованные в программе, заполняется таблица выбранных терминальных символов. Примерное представление таблицы выбранных терминальных символов показано в таблице 19.

    Таблица 19

    № стр.Терминальный символКомментарий (обозначение)Код1PROGRAM12;273VAR24,29Продолжение таблицы 19

    № стр.Терминальный символКомментарий (обозначение)Код5:316INTEGER57BEGIN38:=289FOR810TO911DO1012+3213END414.30

    Определяются символические имена, встречающиеся в программе, и заполняется таблица 20 в порядке их появления в тексте

    Таблица 20

    СпецифИдентификаторТипРазмер, занимаемый в памяти, байтОтносительный адрес в памяти1prog12i3x

    В тексте определяются литералы и заносятся в таблицу 21 в порядке их появления.

    Таблица 21

    СпецифЛитералТипРазмер, занимаемый в памяти, байт10Integer221Integer2310Integer2

    Во время заполнения этих трех таблиц заполняется четвертая таблица 22 (таблица выходных кодов лексем): в поле Таблица подставляются номера таблиц (таблица терминальных символов №1, таблица символических имен №2, таблица литералов №3), в поле строка код элемента (из таблицы 1), спецификаторы (из таблицы 2 и 3). Поле №п.п. заполняется автоматически.

    Таблица 22

    № п.п.123456789101112131415Таблица121121211112131Строка112722293315273328127

    № п.п.161718192021222324252627282930Таблица121313121212111Строка822829310328332227430

    Copyright © 2008-2014 geum.ru   рубрикатор по предметам  рубрикатор по типам работ  пользовательское соглашение