Компиляторы. Оптимизация кода
Интерпритатор – программа которая не выдает результат программы
Целью компилятора является трансляция программы, написанной на ЯВУ в машинные коды некоторого компьютера. Большинство ЯВУ построено так чтобы независимыми от тех машин на которых они будут исполняться. Это означает что процесс анализа синтаксиса программ написанных на этих языках должен быть так же машинно-независимым. Но процесс генерации кода является машинно-зависимым поскольку необходимо знать систему команд компьютера для которого этот код генерируется.
Компилятор должен выполнять анализ программы а затем синтез объектной программы. Сначала исходная программа разлагается на ее составные части. Затем из них строятся части эквивалентной объектной программы. Для этого на на этапе анализа компилятор строит несколько т-ц, которые затем исполняются , как при анализе так и при синтезе. Для облегчения построения компиляторов ЯВУ обычно описывается в терминах некоторой грамматики. Эта грамматика определяет форму или синтаксис допустимых предложений языка. Проблема компиляции может быть сформулирована как проблема поиска соответствия написанных программой предложений, структурам определяемым грамматикой и генерацией соответствующего кода для каждого предложения. Наиболее существенная часть любого процесса компиляции это определение в исходной программе элементарных составляющих , идентификаторов, ограничителей, операторов, чисел и т.д. которые называются лексемами. Предложения исходной программы удобнее представлять виде последовательности лексем. Просмотр исходного текста распознавания и классификации различных лексем называется лексическим анализом.
Синтаксический анализ – Во время синтаксического анализа предложения исходной программы распознаются как язык. Конструкции описываемые используемые грамматикой. Можно рассматривать этот процесс как построение дерева грамматического разбора для транслируемых предложений.
Методы грамматического разбора можно разбить на 2 больших класса: восходящие и нисходящие в соответствии с порядком построения дерева грамматического разбора. Нисходящие методы начинают с правила грамматики, определяющие конечную цель анализа с корня дерева грамматического разбора и пытаются так его наращивать чтобы последующие узлы дерева соответствовали синтаксису анализируемого предложения.
Дата добавления: 2015-07-30; просмотров: 745;