Главная Основы трансляций » Файлы » Программы » Основы трансляций [ Добавить материал ]

Compiler - учебный компилятор 1.0

[Скачать с сервера (1.54 Mb) - бесплатно] [Скриншот] 09.02.2009, 20:18

С помощью этой программы ведутся занятия по предмету "Основы трансляции".

Программа позволяет задать КС-грамматику для какого-либо языка программирования и описать синтаксис лексических единиц с помощью графа распознавания лексических единиц, получить на их основе управляющие таблицы для лексического и синтаксического анализаторов, осуществить промежуточную трансляцию исходных текстов на заданном языке с получением матрицы интерпретации.

Выбрать нужную функцию помогут пункты меню и кнопки на передней панели главного окна.
Возможно открытие сразу нескольких грамматик, тогда дальнейшие действия будут относиться к той грамматике, окно которой активно в данный момент.


В целом работа происходит по этапам:

1. Ввод текста грамматики - используйте пункты меню Файл - Создать, Открыть, Сохранить, а также пункты меню Правка и соответствующие им кнопки для работы в текстовом редакторе.

2. Подготовка грамматики к работе - проверка написания правил - с помощью пункта меню Проверка грамматики или аналогичной кнопки.

3. Построение левых выводов - пункт Выводы или кнопка L-выводы.

4. LL(1)-анализ - выясняется, допустима ли грамматика для осуществления по ней нисходящего детерминированного анализа с предварительным просмотром одного входного символа. Происходит поиск множеств направляющих символов правил грамматики и проверка их пересечения для альтернативных правил. Используйте пункт меню LL(1)-анализ или кнопку Поиск НС.

5. Включение действий по интерпретации в грамматику – в грамматику производится ввод действий по интерпретации конструкций. Используйте пункт Выводы.

6. Проверка грамматики построением выводов с действиями - аналогично этапу 3.

7. Построение управляющей таблицы лексического анализатора (ЛА) - пункт меню ЛА или кнопки ЛА. Сначала задаются классы литер, затем граф распознавания ЛЕ во встроенном графическом редакторе, а затем строится управляющая таблица (кнопка Построение управляющей таблицы ЛА).

8. Построение управляющей таблицы синтаксического анализатора (СА) - пункт меню Построение таблиц или кнопки Управляющая таблица СА.

9. Трансляция текстов - пункт Трансляция или соответствующая кнопка. Осуществляется лексический анализ по графу распознавания, затем синтаксический анализ по полученной таблице.


Добавил: COBA (09.02.2009) | Категория: Основы трансляций
Просмотров: 4423 | Загрузок: 1449 | Рейтинг: 4.0/2 |
Теги: компилятор
Комментарии (1)
0   Спам
1. mixae1   30.01.2010   21:18 [Материал]
В бытность мою студентом написал патч к данной программе.
Блокирует вывод сообщений об ошибке на одной из последней стадии проверки (было давно не помню какой уж, может вообще всех ошибок).
Технически реализовано очень просто, меняем команду перехода по шестнадцатеричному адресу 0107556 на 0 (NOP). На самом деле заменили сообщение об ошибке на пустую строку. Программулька на паскале ниже (компилим сами ;) )
Надо положить в один каталог с учебным компилятором и запустить, если версия не поменялась то всё сработает.
---Cut---
{Программа исправляет досадное недоразумение в программе
Учебный компилятор - устраняет сообщения об ошибках трансляции,
не аккуратно вставленными туда создателями!!!}

{$I-}
program DeCompiler;
const
start_address=$0107556;
rb:string=#0+'If exist another way, then I done it!';
var
fix_file:file of byte;
q:longint;
t:byte;
begin
writeln('© PyRE STD by SHESS');
assign(fix_file,'compiler.exe');
reset(fix_file);
write('Process:');
seek(fix_file,start_address);
for q:=0 to length(rb) do
begin
write('.');
t:=ord(rb[q+1]);
write(fix_file,t);
end;
if ioresult<>0 then
begin
if ioresult=0 then;
writeln('ERROR!!!',^G);
close(fix_file);
halt;
end;
close(fix_file);
writeln('_O.K._');
end.
---Cut---


Имя *:
Email *:
Код *: