Представление входных символов

 

Если входом конечного автомата служит выход какого-либо другого блока компилятора, то легко построить этот блок так, чтобы он подавал на вход конечного автомата цепочки в наиболее удобном для него виде.

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

1. транслитератор: единственная задача данного автомата – сократить входное множество до приемлемых размеров;

2. автомат, выполняющий остальную часть работы.

 

 
 

 


Выходом транслитератора является символьная, состоящая из класса и значения. Класс лексемы служит входом для второго автомата, а её значение доступно процедурам переходов этого автомата.

 

Вопросы и упражнения

С какой целью множество входных символов обрабатывают двумя автоматами?