Формальные языки, грамматики и основы построения трансляторов. Кревский И.Г - 7 стр.

UptoLike

7
1. СТРУКТУРА КОМПИЛЯТОРА. ТИПЫ
ТРАНСЛИРУЮЩИХ ПРОГРАММ
Каждый компьютер способен непосредственно выполнять
ограниченный набор относительно простых команд. Любые более сложные
действия представляются последовательностью таких команд. Для
выполнения программы, написанной на языке высокого уровня, ее обычно
переводят в последовательность команд машинного кода.
Исходная программа
(написанная на каком-либо языке
программирования) представляет собой последовательность символов,
которая вводится в компьютер и преобразуется в форму, пригодную для
непосредственного выполнения.
Компилятор
является программой, которая способна воспринимать
строку символов определенного вида (т.е. текст программы на исходном
языке) и выдавать другую строку символов (программу на машинном языке).
Компиляторам присущ ряд общих черт, что упрощает процесс создания
компилирующих программ. В состав любого компилятора входят три
основных компонента:
- лексический анализатор (блок сканирования);
-
синтаксический анализатор;
- генератор кода машинных команд.
Принцип действия анализаторов можно описать с помощью
формальных моделей, в то время как для генератора кода пока не существует
общепринятых четких формальных представлений. На фазе лексического
анализа исходный текст программы в виде цепочки несвязанных друг с
другом символов разбивается на единицы, называемые лексемами
. Такими
текстовыми единицами являются ключевые слова, используемые в языке
(например, IF,DO и др.), имена переменных, константы и знаки операций
(например,* или +). Далее эти слова рассматриваются как неделимые
образования, а не как группы отдельных символов. После разбиения
программы на лексемы следует фаза синтаксического анализа
, называемая
                                                                              7

                1. СТРУКТУРА КОМПИЛЯТОРА. ТИПЫ
                    ТРАНСЛИРУЮЩИХ ПРОГРАММ

     Каждый      компьютер      способен     непосредственно        выполнять
ограниченный набор относительно простых команд. Любые более сложные
действия   представляются    последовательностью      таких     команд.    Для
выполнения программы, написанной на языке высокого уровня, ее обычно
переводят в последовательность команд машинного кода.
     Исходная      программа     (написанная     на      каком-либо       языке
программирования) представляет     собой последовательность         символов,
которая вводится в компьютер и преобразуется в форму, пригодную для
непосредственного выполнения.
     Компилятор является программой, которая способна воспринимать
строку символов определенного вида (т.е. текст программы на исходном
языке) и выдавать другую строку символов (программу на машинном языке).
Компиляторам присущ ряд общих черт, что упрощает процесс создания
компилирующих программ. В состав любого компилятора входят три
основных компонента:
      -    лексический анализатор (блок сканирования);
      -    синтаксический анализатор;
      -    генератор кода машинных команд.
    Принцип     действия    анализаторов   можно      описать   с   помощью
формальных моделей, в то время как для генератора кода пока не существует
общепринятых четких формальных представлений. На фазе лексического
анализа исходный текст программы в виде цепочки несвязанных друг с
другом символов разбивается на единицы, называемые лексемами. Такими
текстовыми единицами являются ключевые слова, используемые в языке
(например, IF,DO и др.), имена переменных, константы и знаки операций
(например,* или +). Далее эти слова рассматриваются как неделимые
образования, а не как группы отдельных символов. После разбиения
программы на лексемы следует фаза синтаксического анализа, называемая