Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Общие сведения о языке программирования и структуре транслятора




Начальные сведения о компиляции

Введение

Восходящее вычисление наследуемых атрибутов.

Синтезируемые атрибуты в стеке синтаксического анализатора...166

Вычисление выражений с помощью обратной польской записи..152

Дерево разбора. Преобразование дерева разбора

в дерево операций……………………………………………………..…139

8.5 Трехадресный код. Типы трехадресных инструкций……………………...142

8.6 Тетрады - многоадресный код с явно именуемым результатом………….144

8.7 Триады - многоадресный код с неявно именуемым результатом ………146

8.8 Косвенные триады………………………………………………………………148

8.9 Сравнение представлений: использование косвенного обращения ……..149

8.10 Ассемблерный код и машинные команды………………………………….150

8.11 Обратная польская запись операций……………………………………….151

9. Синтаксически управляемая трансляция……………………………..154

9.1 Синтаксически управляемые определения………………………………….155

9.2 Вид синтаксически управляемого определения……………………………..156

9.3 Синтезируемые атрибуты……………………………………………………...158

9.4 Наследуемые атрибуты………………………………………………………...159

9.5 Графы зависимости……………………………………………………………..161

9.6 Порядок выполнения…………………………………………………………...163

9.7 Восходящее выполнение S-атрибутных определений……………………..165

9.8 L-атрибутные определения…………………………………………………….169

9.9 Схемы трансляции……………………………………………………………..170

Удаление внедренных действий из схемы трансляции…………………….172

9.9.2 Наследование атрибутов в стеке синтаксического анализатора…..172

9.9.3 Замена наследуемых атрибутов синтезируемыми…………………...176

9.9.4 Память для значений атрибутов во время компиляции……………177

9.9.5 Назначение памяти атрибутам во время компиляции……………...178

9.9.6 Устранение копий………………………………………………………...179

Список литературы………………………………………………………………….181

Теория построения трансляторов в значительной части посвящена методам выявления структуры входного текста и использования этой структуры для преобразования входа с сохранением его смысла. Эти методы базируются на идеях, высказанных Наомом Хомским в середине ХХ века, с которых начиналась структурная лингвистика.

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

Рассмотрим примеры.

1) Порядок сменит хаос.

2) Казнить нельзя, помиловать.

Казнить, нельзя помиловать.

3) Бытие определяет сознание.

Схема понимания человеком предложений языка формируется в подсознании: на первом шаге строится структура предложения, на втором – по структуре «вычисляется» смысл предложения.

Итак, смысл определяется парой: предложение, его структура.

Идеи Н. Хомского являются базовыми в современных трансляторах искусственных языков.

 

 

 

Любая ЭВМ имеет собственный язык программирования – машинный язык – и может исполнять программы, записанные только на этом языке. С помощью машинного языка можно описать любой алгоритм, что оказывается достаточно сложным для неподготовленного человека, т.к. здесь необходимо знать устройство и функционирование ЭВМ. Языки высокого уровня позволяют решать эту задачу; они обладают развитой структурой данных и средствами их обработки, независящими от языка конкретной машины.

Язык высокого уровня – это входной язык, описание на языке высокого уровня – исходная программа.

Языковой процессор – это программа на машинном языке, позволяющая вычислительной машине понимать и выполнять программы на входном языке.

Языковые процессоры делятся на: интерпретаторы и трансляторы.

Интерпретатор – это программа, которая на входе имеет программу на входном языке, распознает и реализует конструкции этого языка, выдает на выходе результаты вычислений.

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

В свою очередь трансляторы делятся на ассемблеры и компиляторы.

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

Транслятор для языка высокого уровня называют компилятором.

Итак, компилятор – это программа, которая считывает текст на исходном языке и транслирует его на другой – целевой язык.

На первый взгляд разнообразие компиляторов велико. Используются тысячи исходных языков: традиционные – Паскаль, Фортран, Си; специализированные, возникающие во всех областях компьютерных приложений. Целевые языки тоже разнообразны – от языков микропроцессоров до суперкомпьютеров.

 

Компиляторы классифицируют как однопроходные, многопроходные, исполняющие, отлаживающие, оптимизирующие – в зависимости от предназначения, принципов и технологий их создания.

Несмотря на кажущееся разнообразие и сложность задач решаемых компиляторами, основные задачи, выполняемые компиляторами по сути одни и те же. Понимая это, можно создавать компиляторы для различных исходных языков и целевых машин с использованием одних и тех же базовых принципов.

Историческая справка: первый компилятор FORTRAN потребовал 18 человеко-лет работы.




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 1060; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.