Задачи по программированию по курсу ЯПиМТ. Родионова Т.Е. - 21 стр.

UptoLike

Составители: 

21
Фрагмент программы c использованием функции getch() из библиотеки Conio.h.
char c;
c=getch();
if(c==0) getch();
.................
Фрагмент программы c использованием прерывания 16h
char c;
union REGS r;
r.h.ah:=1;
intr(0x16,&r,&r);
if (r.h.al==0)
c=r.h.ah;
else c=r.h.al;
2.5 ВАРИАНТЫ ЗАДАНИЙ
Решить задачи, приведенные в конце главы 1, с использованием прерываний ROM-BIOS. Библио-
теки Crt и Conio.h к программному файлу не присоединять.
ЛАБОРАТОРНАЯ РАБОТА 3. ИЗУЧЕНИЕ ЭТАПА ЛЕКСИЧЕСКОГО АНАЛИЗА
ТРАНСЛЯТОРОВ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
Цель работы: Изучить методы построения лексических сканеров на основе конеч-
ных автоматов и формальных грамматик.
3.1. АРХИТЕКТУРА КОМПИЛЯТОРА
Исходная программа, написанная на некотором языке программирования, есть не что иное, как це-
почка знаков. Программа, которая переводит программу с языка высокого уровня в эквивалентную ей объ-
ектную называется транслятором. Если происходит перевод в машинные коды, то транслятор называется
компилятором. Компилятор превращает эту цепочку знаков в цепочку битов - объектный код. Очень удобно
процесс компиляции разделить логически на несколько последовательных этапов:
- препроцессирование;
- лексический анализ;
- синтаксический анализ;
- генерация кода;
- оптимизация программы.
Рассмотрим более подробно этап лексического анализа. Программа, которая вы-
полняет этот этап называется лексический анализатор или сканер. Сканер переводит текст
исходной программы из последовательности символов или строк в последовательность