E. Интерфейс с операционной системой. Создание программ на языке ассемблера для ОС Windows

Консольные Win32 приложения работают в защищённом режиме;

Эмулируют MS-DOS

Стандартный текстовый ввод-вывод

Опция /SUBSISTEM:CONSOLE

Буфер ввода:console input buffer

Буфер экрана:console screen buffer

Функции работы с консолью:

Текст(высокий уровень):

Читать символ из буфера ввода

Вывести символ на экран

Перенаправление ввода-вывода

События(низкий уровень):

Получить событие от мыши или клавиатуры

Определение действий пользователя

Направление позиции,размера и цвета окна

API и SDK:

API (Application Programming interface): набор типов, констант, функций, пре доставляемых для программирования

SDK (Software development Kit): API, набор утилит, библиотек, примеров, документаций

Платформа: архитектура, ОС, ЯП , библиотеки времени выполнения

Дескриптор консоли содержит функции работы с файлами, функции управления окном консоли, также функции управления датой и времени.


F. Модель анализа-синтеза компиляции. Лексический анализ. Синтаксический анализ. Семантический анализ. Фазы компилятора. Инструментарий для создания компиляторов.

Фазы компиляции

Процесс создания компилятора можно свести к решению нескольких задач, которые принято называть фазами компиляции (compilation phases). Обычно компилятор состоит из следующих фаз:

· лексический анализ

· синтаксический анализ

· семантический анализ

· оптимизация

· генерация кода.

Лексический анализ

Входом компилятора служит программа на исходном языке программирования. С точки зрения компилятора это просто последовательность символов. Задача первой фазы компиляции, лексического анализатора (lexical analysis), заключается в разборе входной цепочки и выделении некоторых более "крупных" единиц, лексем, которые удобнее для последующего разбора. Примерами лексем являются основные ключевые слова, идентификаторы, константные значения (числа, строки, логические) и т.п.

На этапе лексического анализа обычно также выполняются такие действия, как удаление комментариев и обработка директив условной компиляции.

Для отображения некоторых лексем достаточно всего одного числа (это может быть, например, номер ключевого слова согласно внутренней нумерации компилятора), в то время как для записи других лексем может потребоваться пара, состоящая из номера лексического класса и ссылки в таблицу внешних представлений. Хорошая модель лексического анализатора – конечный преобразователь.