29376

Принципы работы сканера

Доклад

Информатика, кибернетика и программирование

Синтаксис целых констант представляется: целое ::=цифра знак цифра целое цифра знак ::= Для представления грамматики состояния целых констант диаграмма имеет вид:Вершины соответствуют состояниям автомата и определяются нетерминальными символами. Построим диаграмму состояний для автомата который распознает лексемы трех типов: целые константы десятичные константы идентификаторы идентр ::=буква идентр буква идентр цифра десятичная константа: дес.число цифра смеше число цифра смеше число ::= целое целое ::=цифра знак цифра целое цифра...

Английский

2013-08-21

95.5 KB

0 чел.

12) Принципы работы сканера.

Синтаксис отдельных лексем описывается, главным образом, с использованием регулярных грамматик. Для них продукция имеет следующую форму:
А→а|Ва или А→а|аВ
а – терминальные символы, А,В – нетерминальные
Функционирование сканера базируется на грамматическом описании лексем, в основе построения сканера лежит конечный автомат, соответствующий используемой грамматике.
Конечный автомат – математическая машина, которая определяется множеством возможных состояний, множеством возможных переходов между состояниями и множеством возможных символов, управляющих этими переходами.
Геометрическое функционирование конечного автомата можно задать графовой моделью, которая называется диаграммой состояния.
Пример. 
Синтаксис целых констант представляется:

<целое>::=цифра|<знак>цифра|<целое>цифра
<знак>::= +|-
Для представления грамматики состояния целых констант диаграмма имеет вид:

Вершины соответствуют состояниям автомата и определяются нетерминальными символами. Дуги описывают возможные переходы между состояниями и соответствуют продукции грамматики.
Для заданной грамматики определяются следующие лексемы:
1) каждому нетерминальному символу сопоставляется вершина графа с соответствующим именем
2) добавляется дополнительная вершина, соответствующая начальному состоянию автомата с именем Старт
3) каждому правилу вывода следующего вида А→а сопоставляется дуга, связывающая вершины Старт и А, которая помечается терминальным символом а
4) каждой продукции А→Ва сопоставляется дуга 
, которая также помечается терминальным символом а
Распознавание лексем с использованием диаграмм состояний конечного автомата осуществляется следующим образом:
1) исходным состоянием является состояние Старт
2) последовательно сканируются (считываются) символы входной цепочки и в соответствии с очередным считывающимся символом выполняется переход автомата в следующее состояние. Этот переход происходит из текущей вершины в то состояние ( вершину), в которую направлена дуга, помеченная символом, совпадающим со считанным символом входной цепи.
3) Переходы между состояниями продолжаются до остановки автомата, которая происходит в двух случаях:
• Считаны все символы входной цепочки
• Переход в следующее состояние невозможен, т.к. не найдена дуга, помеченная считанным символом.
В итоге лексемы будут распознаны, если работа автомата заканчивается в состоянии, соответствующем начальному символу грамматики. На диаграмме эта вершина выделена 

По мере считывания символов входной цепочки фиксируется символ, на котором автомат начинает работу ( выходит из состояния Старт) и на котором заканчивает работу, т.е. останавливается. 
Сама лексема состоит из тех считанных символов, начиная с которых автомат вышел из сосояния старт и до символа, на котором автомат завершил работу. 

Построим диаграмму состояний для автомата, который распознает лексемы трех типов: целые константы, десятичные константы, идентификаторы

<идент-р>::=буква|<идент-р>буква|<идент-р>цифра



десятичная константа:

<дес.число>::=<дес.число>цифра|<смеш-е число>цифра
<смеш-е число>::=<целое>
<целое>::=цифра|<знак>цифра|<целое>цифра
<знак>::=+|-


С точки зрения процесса трансляции в целом, сканер может быть реализован в двух вариантах:
1) сканер выполняет полный лексический анализ всей программы и формирует эквивалентную последовательность лексем, которая потом используется на фазе синтаксического анализа

2) сканер выполняется в виде подпрограмм, к которым обращается синтаксический анализатор, когда требуется очередная лексема для грамматического разбора

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


 

А также другие работы, которые могут Вас заинтересовать

55263. Основні фактори розміщення продуктивних сил, їх вплив на розміщення виробництва 25.69 KB
  Фактори розміщення це реалізація закономірностей і принципів при врахуванні конкретних умов, що впливають на вибір місць розташування промислових підприємств і формування територіально-виробничих комплексів.
55264. Поняття компютерної презентації. Основне призначення системи підготовки презентації 68.5 KB
  Мета уроку: навчальна: отримати уявлення про мультимедіа, познайомитися з програмою для створення мультимедійних презентацій; навчитися технології створення і демонстрації електронних презентацій; розвиваюча: розвиток мислення, пізнавальних інтересів, навиків роботи на компютері, роботи з мультимедійними програмними засобами...
55265. Чисельність населення України, особливості його динаміки. Природний рух населення. Демографічна ситуація в Україні, основні шляхи її розв’язання 25.61 KB
  Демографічні передумови є найважливішою складовою розміщення продуктивних сил. Населення країни фактор її комплексного економічного та соціального розвитку. Населення це трудові ресурси і споживач, яке впливає на формування міжрайонних функцій виробництва, потужність і структуру потоку продукції, що вивозиться за межі певної території, розвиток місцевого виробництва.
55266. Комп’ютерна презентація 107.5 KB
  Мета: 1) ввести поняття “презентація”, навчити учнів проектувати презентації, ознайомити з програмою Power Point та її можливостями. З’ясувати призначення комп’ютерної презентації. 2) розвивати алгоритмічне та логічне мислення, вміння порівнювати, виділяти головне, роботи узагальнення і висновки. Розвивати пізнавальну, комунікативну та інформаційну компетентності.
55268. Принципи економічного районування України. Районний господарський комплекс та його галузева структура (три групи галузей) 25.18 KB
  Спеціалізація як основна народногосподарська функція (спеціалізація району на певних виробництвах і послугах певною мірою відповідає його географічному розташуванню, природним, економічним і соціальним умовам та спирається на раціональний поділ праці з іншими районами);
55269. Пригоди в осінньому лісі 44 KB
  Любі гості мами й тата В дитсадку у нас розвага Починаємо увага Під музику заходять діти сідають. Погляньте діти у віконце: Де сховалось наше сонце Хмарини у небі пропливають Холодним дощиком лякають. Кукловська Діти виконують пісню Осінь сл. Діти давайте разом попросимо дощик щоб він перестав.
55270. Казкові пригоди 40 KB
  Математика: продовжувати вчити дітей орієнтуватись в просторі; розвязувати цікаві математичні задачі; формувати навички орієнтування в часі; закріплювати знання цифр у межах 10 вміння їх відшукувати на картинках; назви геометричних фігур та їхні ознаки; назви днів тижня частини доби місяців.