У вас вопросы?
У нас ответы:) SamZan.net

варианты организации языковых процессоров Процесс трансляции состоит из 2х логических частей- Анализ

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 28.12.2024

15. Фазы трансляции программ и варианты организации языковых процессоров

Процесс трансляции состоит из 2-х логических частей:

  1.  Анализ исходного выражения;    
  2.  Синтез объектной программы.

Фазы трансляции:

                                                   цепочка символов

           последовательн ость лексем          Анализ исходной

            программы

                                                                                                                

                                                                                                                            

          внутренний фор мат программы

                        улучшенная внутренн  яя форма программы

  

   

    последовательность   машинных комманд

              улучшенная последоват  ельность машинных команд

                                                                                            Синтез объектного кода

 Исходная программа подается на вход лексического анализа в виде цепочки символов.                                                                                                               

Лексический анализ – выделение в тексте исходной проги элементарных единиц языка (идентификаторы, константы, ключевые слова, символы операций, разделители и др.) – лексемы. Часть транслятора, выполняющая лексический анализ – сканер (лексический анализатор). Для удобства выполнения последующих этапов сканер преобразует выделенные лексемы в некоторую унифицированную числовую форму (коды лексем).

Синтаксический анализ (грамматический разбор) –в последовательности лексем выделяются более крупные программные структуры – синтаксических единиц языка (выражения, операторы присваивания, управляющие операторы, описания данных и др.). Во время синтаксического анализа идет проверка грамматической правильности исходной программы.

Семантический анализ – выполняется при взаимодействии с процессом грамматического разбора. Каждая распознанная синтаксическая конструкция анализируется с точки зрения смысла (семантики языка)  (в операторах присваивания проверяется соответствие типов левых и правых частей, проверяется, не были ли описаны какие либо данные многократно, наличие одинаковых меток и др). Семантический анализ каждой выделенной конструкции исходной программы завершается ее преобразованием в некоторую внутреннюю форму представления. Такая внутренняя форма уже не зависит от синтаксиса исходного языка, но еще не зависит от системы команд конкретной машины. В качестве внутренней формы наиболее часто используется семантическое дерево, польская запись и тетрадная форма представления.

С этапа машинно-независимой оптимизации начинается синтез объектной программы. Такой вид оптимизации выполняется над программой, представленной во внутренней форме. Целью оптимизации является сокращение времени выполнения программы или объема используемой памяти. Это достигается за счет ряда преобразований программы:

1) операторы, расположенные внутри циклов, но независящие от переменных цикла, выносятся за пределы цикла;

2) выполняются действия с константами, формируются новые константы;

3) общие выражения и подвыражения, встречающиеся несколько раз, а в остальных местах указываются ссылки на результат;

4) оптимизируется использование регистровой памяти для хранения данных.

Генерация кода – перевод полученного внутреннего представления программы на язык ассемблера или непосредственно в двоичный машинный код.

Машинно-зависимая оптимизация – выполняется с учетом особенностей архитектуры и системы команд конкретной модели ЭВМ. Преследуются две цели:

  1.  Сокращение длины полученного объектного кода за счет исключения избыточных машинных команд.
  2.  Уменьшение количества ячеек памяти, используемых под хранение промежуточных данных.

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

Информационные таблицы используются для хранения данных, требуемых при работе транслятора. На этапах анализа данные заносят в таблицы с целью последующего использования на этапах синтеза. Основной таблицей транслятора является таблица имен, где сохраняются все уникальные имена (идентификаторы), используемые программистом в теле программы, а так же соответствующие данные о них. Кроме того могут присутствовать таблица констант (информация о константах), таблица циклов, вложенности блоков и др.

Замечание: 1) Рассмотренные процесс трансляции соответствует работе компилятора. Для реальных компиляторов некоторые фазы могут объединяться или отсутствовать.

2) Интерпретатор, подобно компилятору, выполняет фазы анализа, но отдельно для каждого оператора (строки программы), переводит во внутреннее представление и моделирует выполнение программы.

Варианты организации языковых процессоров

Языковой процессор (транслятор) – программная система, которая переводит (транслирует) исходную программу в выполняемую форму, называемую объектной программой. Процесс преобразования исходной программы в эквивалентную объектную программу называется трансляцией.

Различают два типа языковых процессоров, используемых в САПР: компилятор и интерпретатор.  Компилятор – системная программа, которая полностью формирует объектную программу и только после этого передает её на исполнение. Объектной программой в этом случае обычно является программа в машинных командах – объектный код.

При использовании компиляторов процесс трансляции – компиляция. Т. о. компилятор – это системная программа, написанная на некотором языке, для которой входной информацией является исходная программа, а результатом - эквивалентная ей объектная программа.

Интерпретатор – системная программа, которая считывает исходную программу небольшими фрагментами (отдельными операторами или строками), анализирует их и моделирует выполнение каждого в отдельности.

Промежуточное положение занимают:

    - компиляторы интерпретирующего типа: обрабатывают исходную программу в 2 этапа: на первом текст исходной программы полностью компилируется в некоторую промежуточную форму, а на втором – производится интерпретация этой программы. Такие компиляторы эффективны если: промежуточная форма занимает меньший объем памяти, чем объектный код; интерпретация промежуточной формы выполняется быстрее, чем интерпретация текста исходной программы.

- шаговые компиляторы делят текст исходной программы на части, которые последовательно транслируются и передаются на исполнение. Шаговые компиляторы удобны при работе с языками проектирования, т.к. позволяют организовать поэтапное выполнение проектных процедур САПР.

PAGE  1




1. ТЕМА 7 Організаційноправовий статус посадових осіб органів доходів і зборів лекція 2 години
2. Max Linder.html
3. 11 - Русский язык и культура речи Зачет
4. Гражданско-правовой способ защиты прав потребителей
5. Название Лисичка обыкновенная 2
6. финансы было использовано в предисловии к изданной в 1767 году Московским университетом книге Переводы из э
7. Тематический план лекционных занятий
8. На тему- Благотворительность представителей просвещенной дворянской предпринимательской и купеческой фи
9. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата медичних наук9
10. В процессе внедрения ИС необходимо как можно быстрее и с наименьшими затратами ресурсов развернуть систему
11. Деньги и ценные бумаги в гражданском праве
12. Наследование приобретение имущества оставшегося после смерти иного лица наследодателя
13. Мечта Мечта идеальная сеть магазинов электроники и бытовой техники создана для полезных и
14. 6. Релейная защита Системы электроснабжения это сложный производственный комплекс все элементы кото
15. Почему я не могу оставаться баптистом и вообще протестантом
16. Честным Твоим крестом Христе- диавола посрамил еси- и воскресением Твоим жало греховное притупил еси- и с
17. Лекция 6 Эластичность ~ это процентное изменение одной величины в результате процентного изменения друго
18. тема наукових знань практичних умінь і навичок засвоєння й набуття яких закладає основи для розвитку та фор
19. Промедол 2 1 мл в шприцтюбике противоболевое средство применяется при переломах обширных травмах и ожог
20. 2013 Задачи для тренировки1- Метеорологическая станция ведет наблюдение за влажностью воз