Принцип построения и функционирование компиляторов

  • 07 апр. 2013 г.
  • 4449 Слова
Оглавление

§1 Цель курсовой работы……………………………………………………………….. 2
§2 Задание на курсовую работу………………………………………………………... 3
§3 Разделы курсовой работы…………………………………………………………… 4
§4 Теоретическая часть ………………………………………………………………….5
§4.1 Общие сведения о компиляторах………………………………………………… 5
§4.2 Фазы компиляции…………………………………………………………………..7
§4.3 Структурная схема компилятора………………………………………………….9
§4.4Краткий обзор исходного языка…………………………………………………..10
§4.5 Краткий обзор результирующего языка………………………………………….11
§4.6 Методики создания компилятора……………….………………………………...13
§5 Практическая часть …………………………………………………………………15
§5.1 Компилятор языка …………………………………………………………............15
§5.2 Интерпретатор ……………………………………………………………………..24
§5.3 Генератор кода……………………………………………………………………...26
§6Заключение …………………………………………………………………………. 28
§7 Литература…………………………………………………………………………... 29




* §1 Цель курсовой работы

Целью (назначением) курсовой работы является: изучение составных частей, основных принципов построения и функционирования компиляторов, практическое освоение методов построения простейших компиляторов для заданного входного языка.
*
*
*
*
*
*
**
*
*
*

*

* §2 Задание на курсовую работу

Курсовая работа заключается в создании компилятора. Для программной реализации компилятора рекомендуется использовать язык программирования С++ или систему программирования Microsoft Visual Studio. Возможно использовать другие языки и системы программирования по согласованию с преподавателем.

*
*
*
**
*
*
*
*
*
*
*
*

* §3 Разделы курсовой работы
1. Теоретическая часть
1) Общие сведения о компиляторах
2) Фазы компиляции
3) Структурная схема компилятора
4) Краткий обзор исходного языка
5) Краткий обзор результирующего языка
6) Методики создания компилятора
2. Практическая часть
1) Компилятор языка
2)Интерпретатор
3) Генератор кода

* §4 Теоретическая часть

* §4.1 Общие сведения о компиляторах
Большинство компиляторов переводит программу с некоторого высокоуровневого языка программирования в машинный код, который может быть непосредственно выполнен центральным процессором. Как правило, этот код также ориентирован на исполнение в среде конкретной операционной системы, посколькуиспользует предоставляемые ею возможности (системные вызовы, библиотеки функций). Архитектура (набор программно-аппаратных средств), для которой производится компиляция, называется целевой машиной.
Для того чтобы компьютер мог понять программу, написанную на каком-то языке программирования, необходим переводчик (транслятор) такой программы в машинные коды.
Трансляторы бывают двух типов: компиляторы(compiler) и интерпретаторы (interpreter). Процесс компиляции состоит из двух частей: анализа (analysis) и синтеза (synthesis). Анализирующая часть компилятора разбивает исходную программу на составляющие ее элементы (конструкции языка) и создает промежуточное представление исходной программы. Синтезирующая часть из промежуточного представления создает новую программу, которую компьютер в состояниипонять. Такая программа называется объектной программой. Объектная программа может в дальнейшем выполняться без перетрансляции. В качестве промежуточного представления обычно используются деревья, в частности, так называемые деревья разбора. Под деревом разбора понимается дерево, каждый узел которого соответствует некоторой операции, а сыновья этого узла - операндам.
Некоторые компиляторы(например, Java) переводят программу не в машинный код, а в программу на некотором специально созданном низкоуровневом языке. Такой язык называется байт-код — также можно считать языком машинных команд, поскольку он подлежит интерпретации виртуальной машиной. Байт-код не является машинным кодом какого-либо компьютера и может портироваться на различные компьютерные архитектуры....
tracking img