Оптимальні програми обчислення виразів, Детальна інформація
Оптимальні програми обчислення виразів
Додаток 2.
Програмна реалізація простого компілятора виразів.
Нижче подано текст програми, написаної для компілятивної обробки [2] арифметичних виразів, записаних в інфіксній формі. Ця програма може бути використана як частина компілятора, котра відповідає за генерацію асемблерного коду для операторів присвоєння.
Особливості даної програми:
однопрохідна генерація коду;
відсутній лексичний сканер, тому всі ідентифікатори включаються в асемблерний код без перевірки;
всі обчислення є цілочисловими;
арифметичні функції не приймають параметрів, а результат повертають в регістрі AX;
розпізнається більшість синтаксичних помилок;
коректно розпізнаються пробіли та символи табуляції у виразі.
Текст програми:
const TAB = ^I;
CR = ^M;
Var Look: Char;
Procedure GetChar;
Begin
Read(Look);
End;
Procedure Error(s: String);
Begin
WriteLn;
WriteLn(^G, 'Помилка : ', s, '.');
End;
Procedure Abort(s: String);
Begin
Error(s);
Halt;
End;
Procedure Expected(s: String);
Begin
Програмна реалізація простого компілятора виразів.
Нижче подано текст програми, написаної для компілятивної обробки [2] арифметичних виразів, записаних в інфіксній формі. Ця програма може бути використана як частина компілятора, котра відповідає за генерацію асемблерного коду для операторів присвоєння.
Особливості даної програми:
однопрохідна генерація коду;
відсутній лексичний сканер, тому всі ідентифікатори включаються в асемблерний код без перевірки;
всі обчислення є цілочисловими;
арифметичні функції не приймають параметрів, а результат повертають в регістрі AX;
розпізнається більшість синтаксичних помилок;
коректно розпізнаються пробіли та символи табуляції у виразі.
Текст програми:
const TAB = ^I;
CR = ^M;
Var Look: Char;
Procedure GetChar;
Begin
Read(Look);
End;
Procedure Error(s: String);
Begin
WriteLn;
WriteLn(^G, 'Помилка : ', s, '.');
End;
Procedure Abort(s: String);
Begin
Error(s);
Halt;
End;
Procedure Expected(s: String);
Begin
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021