ВУЗ:
Составители:
13
Пример 2.4. Программа на модельном языке М, вычисляющая среднее
арифметическое чисел, введенных с клавиатуры.
program
var k
, n, sum: int;
begin
read
(n);
sum
:= 0;
i
:=1;
while i
<=n do
begin
read
(k);
sum
:=sum+k;
k
:=k+1
end
;
write
(sum/n)
end
.
2.2 Общая структура компилятора
Определение 2.2. Компилятор – это программа, которая осуществляет
перевод исходной программы на входном языке в эквивалентную ей объектную
программу на языке машинных команд или языке ассемблере.
Основные функции компилятора:
1) проверка исходной цепочки символов на принадлежность к входному
языку;
2) генерация выходной цепочки символов на языке машинных команд
или ассемблере.
Процесс компиляции состоит из двух основных этапов: синтеза и анали-
за. На этапе анализа выполняется распознавание текста исходной программы и
заполнение таблиц идентификаторов. Результатом этапа служит некоторое
внутреннее представление программы, понятное компилятору.
На этапе синтеза на основании внутреннего представления программы и
информации, содержащейся в таблице идентификаторов, порождается текст ре-
зультирующей программы. Результатом этого этапа является объектный код.
Данные этапы состоят из более мелких стадий, называемых фазами. Со-
став фаз и их взаимодействие зависит от конкретной реализации компилятора.
Но в том или ином виде в каждом компиляторе выделяются следующие фазы:
1)
лексический анализ;
2)
синтаксический анализ;
3)
семантический анализ;
4)
подготовка к генерации кода;
5)
генерация кода.
Определение 2.3. Процесс последовательного чтения компилятором дан-
ных из внешней памяти, их обработки и помещения результатов во внешнюю
память, называется проходом компилятора.
Пример 2.4. Программа на модельном языке М, вычисляющая среднее арифметическое чисел, введенных с клавиатуры. program var k, n, sum: int; begin read(n); sum:= 0; i:=1; while i<=n do begin read(k); sum:=sum+k; k:=k+1 end; write(sum/n) end. 2.2 Общая структура компилятора Определение 2.2. Компилятор – это программа, которая осуществляет перевод исходной программы на входном языке в эквивалентную ей объектную программу на языке машинных команд или языке ассемблере. Основные функции компилятора: 1) проверка исходной цепочки символов на принадлежность к входному языку; 2) генерация выходной цепочки символов на языке машинных команд или ассемблере. Процесс компиляции состоит из двух основных этапов: синтеза и анали- за. На этапе анализа выполняется распознавание текста исходной программы и заполнение таблиц идентификаторов. Результатом этапа служит некоторое внутреннее представление программы, понятное компилятору. На этапе синтеза на основании внутреннего представления программы и информации, содержащейся в таблице идентификаторов, порождается текст ре- зультирующей программы. Результатом этого этапа является объектный код. Данные этапы состоят из более мелких стадий, называемых фазами. Со- став фаз и их взаимодействие зависит от конкретной реализации компилятора. Но в том или ином виде в каждом компиляторе выделяются следующие фазы: 1) лексический анализ; 2) синтаксический анализ; 3) семантический анализ; 4) подготовка к генерации кода; 5) генерация кода. Определение 2.3. Процесс последовательного чтения компилятором дан- ных из внешней памяти, их обработки и помещения результатов во внешнюю память, называется проходом компилятора. 13
Страницы
- « первая
- ‹ предыдущая
- …
- 11
- 12
- 13
- 14
- 15
- …
- следующая ›
- последняя »