I i 1

Проектирование трансляторов
Семестр: Отладка разработанного ПО и оформление протоко- В строке ...SiSj... символы Si и Sj входят в одну и ту В множество L(U) самых левых символов нетерминального Пусть между некоторыми двумя символами Si и Sj сущес- I i 1 Не предусмотрен выход при выполнении условия R > R , так как Потом повторяется п. 5 Если выполнение шага 4 пpиведет к тому, что значения всех Перевод инфиксной записи в польскую. Всякий раз, когда в Когда редуцируется основа XY..Z, тетрады для всех нетер- Опреанды и операторы Если сканируемый символ - унарный оператор, то он приме- А * В + С * D => *, A, B, T1 ┐ тетрады располагаются в Устраняет недостатки программы,вызванные небрежностью или Проверяется непртиворечивость типов получателя и ис- ДИСПЛЕЙ Выделение памяти под рамку в процессе трансляции ОРГАНИЗАЦИЯ ПАМЯТИ ВО ВРЕМЯ ТРАНСЛЯЦИИ Алгоритм Биледи Возможные параметры описания переменных и процедур
319724
знака
0
таблиц
0
изображений

1 i i 1

где x и y - строки, возможно, пустые, N, N , С V U V .

1 t n

Описание языка программирования неукорачивающими грамматика-

ми позволяет вводить символы языка типа IF, BEGIN, ELSE, FOR и

идентификаторы стандартных функций типа SIN, COS, EXP и т. п. в

виде нетерминальных символов в грамматические правила, что облег-

чает анализ этих символов и ускоряет процесс трансляции.

Теперь рассмотрим алгоритм анализа входного текста, написан-

ного на языке, порожденном неукорачивающей грамматикой предшест-

вования типа 1 по классификации Хомского. Блок-схема алгоритма

показана на рис. 4.

┌─────┐

│ 1 │

└──┬──┘

┌──────────────────────┼───────────────────┐

│ │ │ нет

│ ┌────┐ пусто / \ = ┌─────┐ / \

│ │ 15 ├───┬───────< 2 >────┤ 3 ├────< 4 >

│ └─┬─┬┘ │ \ / < └─────┘ \ /

│ │ │ │ ├─────────┐ │ да

│ │ │ │ │ │ │

│ │ │ │ пусто / \ = ┌──┴──┐ / \ ┌────┐

│ │ │ └───────< 5 >────┤ 6 │ < 13>─1──┤ 14 │

│ │ │ \ / └─────┘ \ / да └────┘

│ │ │ │< нет│

│ │ └──────────────┼───────────────────┘

│ │ / \

│ └──────────────< 7 >

│ нет \ /

│ │ да

│ ┌──┴──┐

│ │ 8 │

│ └──┬──┘

│ ┌──┴──┐

│ │ 9 │

│ └──┬──┘

│ ├────────┐

│ ┌────┐ / \ ┌─┴───┐

└─┤ 11 ├─────────────<10 >────┤ 12 │

└────┘ = \ / =/= └─────┘

Рис.2

1. k,i=1 8. q := │Xn│

Мi=1 9. ГП

2. Ri ? Lk2 10. q=1

3. i=i+1 Ri=Lk3 11. i::=j

k=k+1 12. k=k-1

j=i Lk=n(q)

4. Ri=4 q=q-1

5. Rj=Ri 13. Y=R1...Ri

6. j=j-1 14. выход

7. Сущ. правило Y =Rj...Ri 15. обработка ошибки

При анализе входного текста используется стек R, работающий

по правилу FILO (first in, last out), чтение исходного текста

производится слева направо, а дерево сворачивания строится снизу

вверх.

Алгоритм в каждом текущем предложении Si выделяет самую ле-

вую строку, заключенную между отношениями > и <, и заменяет ее по

соответствующему правилу грамматики. Если грамматика предшество-

вания не имеет двух правил с одинаковыми строками y i, то данный

алгоритм для каждого предложения S L(G) всегда порождает одну и

ту же последовательность правил сворачивания. Для того, чтобы

строки сворачивания всегда были заключены между отношениями > и

<, в грамматиках анализируемых языков, как и в случае КС-грамма-

тик, вводятся ограничители начала и конца текста @.

В начале анализа строки в верхнюю ячейку стека R записыва-

ется первый символ программы, т. е. символ @. Индексам i (номер

символов стека R) и k (номер смвола входного текста) присваива-

ются начальные значения 1.

Блок 2. Проверяется отношение предшествования между верхним

символом стека Ri и очередным символом входного текста Lk . Если

между ними отношение вида _ (пусто), значит во входном тексте до-

пущена ошибка.

Блок 3 записывает в стек R очередной символ входного текста.

Блок 4 выделяет признак окончания текста Ri = @.

Блоки 5 и 6 определяют левую границу сворачиваемой строки.

Для этого проверяется отношение предшествования между каждой па-

рой символов R и R до выполнения условия R < R . В блоке

j-1 j j-1 j


Информация о работе «Проектирование трансляторов»
Раздел: Информатика, программирование
Количество знаков с пробелами: 319724
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
84334
30
0

... работы. В ходе работы над дипломным проектом разработан транслятор. Проблема создания такого транслятора является очень актуальной, т.к. многим пользователям САПР необходимо доступ к технической документацию, которую удобнее хранить на удаленных серверах в формате HTML. Поэтому степень положительного эффекта от выполнения дипломного проекта научно-исследовательского характера 1=6.5. В ...

Скачать
50249
0
1

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

Скачать
36295
1
7

... 166, 16 Mb RAM, Windows 95 Вывод   В ходе разработки курсового проекта я ближе ознакомился с теорией МП- трансляторов, научился писать программы - конструкторы для построения МП – транслятора по его параметрам с последующей проверкой задаваемых цепочек, закрепил знания по системному программированию. Разрабатывая программу, я научился применять знания дискретной математике, что облегчает ...

Скачать
141647
0
0

... позволяет связывать твёрдотельные модели, сборки или чертежи, созданные с помощью SolidWorks 97, с файлами других приложений, что значительно расширяет возможности автоматизации процесса проектирования. С помощью технологии OLE можно использовать информацию, полученную в других приложениях Windows, для управления моделями и чертежами SolidWorks. Например, размеры модели могут быть рассчитаны в ...

0 комментариев


Наверх