Будь умным!


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

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

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

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

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

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

от 25%

Подписываем

договор

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

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

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

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

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

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

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

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

            программы

                                                                                                                

                                                                                                                            

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

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

  

   

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

PAGE  1




1. Пигмалион- Наш век ~ это век выскочек
2. го курса ФОПФ МФТИ лектор Маймистов А
3. First you cn elicit from your Students wht they know bout the British Fther Christms.html
4. ма рефинанся банк
5. Победа но всетаки впустил за собой вихрь зернистой пыли1
6.  Гармонические колебания и их характеристики- амплитуда фаза период и частота
7. Расчет тепловой схемы котельной
8. Понятие расторжения трудового договора по инициативе работодателя Глава 2
9. Психология нации
10. за высокого уровня летальных исходов СПИД оказался в центре внимания исследователей всего мира
11. Политическое консультирование стало развиваться в Европе в период зарождения политических партий
12. приводят к выводу что его интенсивность быстро растет с высотой достигает максимума затем уменьшается и.html
13. Государь и Рассуждения на первую декаду Тита Ливия он рассматривает государство как политическое состоя
14. безграничность потребностей т
15. Литература - Гистология (Печень)
16. Эволюция образа прекрасной дамы в лирике А Блока
17. вариантов исторического развития человечества западного восточного и русского
18. ПРАВОВЫЕ ОСНОВЫ ГОСУДАРСТВЕННОЙ СЛУЖБЫ В ОРГАНАХ ВНУТРЕННИХ ДЕЛ
19. на тему- Основи SQL
20. тема научных знаний