- •1. Проблемы автоматизации программирования. Уровни автоматизации и их эффективность (общая характеристика).
- •2. Уровни автоматизации программирования (общая характеристика) и их использование при разработке программного обеспечения автоматизированных систем.
- •3. Автоматизация программирования. Машинный код.
- •4. Автоматизация программирования. Язык ассемблера.
- •5. Автоматизация программирования. Язык программирования.
- •6. Трансляция как способ реализация языка программирования. Виды трансляторов.
- •7. Интерпретация как способ реализации языка программирования. Типовой алгоритм работы интерпретатора.
- •8. Процессы трансляции и интерпретации. Сравнительная характеристика.
- •Основные различия
- •1. Транслятор
- •2. Интерпретатор
- •9. Процесс трансляции и его этапы. Типовая структура транслятора (общая характеристика).
- •10. Процесс трансляции. Лексический анализ исходной программы.
- •11. Процесс трансляции. Синтаксический анализ исходной программы.
- •12. Процесс трансляции. Семантический анализ исходной программы.
- •13. Процесс трансляции. Этап синтеза выполняемой программы.
- •14. Понятие уровня языка программирования. Способы реализации языков программирования (общая характеристика).
- •15. Объекты данных и их виды. Основные понятия. Время жизни и область видимости.
- •16. Атрибуты объектов данных. Понятие типа данных. Связывание объектов данных с атрибутами.
- •17. Понятие связывания. Время связывания и атрибуты объектов данных.
- •18. Структуры данных. Основные понятия и атрибуты.
- •19. Массив как механизм структуризации данных.
- •Недостатки
- •20. Строка как механизм структуризации данных.
- •21. Запись как механизм структуризации данных.
- •22. Сравнительный анализ основных языковых механизмов структуризации данных.
- •23. Множество как механизм структуризации данных, объявления множеств и операции с множествами.
- •24. Файловые структуры данных, особенности работы с файлами различного типа.
- •25. Модули как библиотеки ресурсов и особенности работы с ними.
- •26. Понятия вычислительной модели языка программирования. Императивная и объектно-ориентированная модели.
- •27. Базовые идеи структурного и объектно-ориентированного подхода к разработке программных продуктов.
- •28. Понятие визуального проектирования и визуальные компоненты системы программирования.
- •29. Особенности функционирования приложений в современных ос.
- •30. Событийная модель взаимодействия и событийно-управляемое программирование. Обработчик событий.
9. Процесс трансляции и его этапы. Типовая структура транслятора (общая характеристика).
Рассматривая транслятор, будем ориентироваться на компилятор.
Компилятор – транслятор, входным языком которого является ЯВУ, а объектным – язык близкий к МЯ реальной или виртуальной ЭВМ.
Достоинство компилятора: программа компилируется один раз и при каждом выполнении не требуется дополнительных преобразований. Соответственно, не требуется наличие компилятора на целевой машине, для которой компилируется программа. Недостаток: отдельный этап компиляции замедляет написание и отладку и затрудняет исполнение небольших, несложных или разовых программ.
Процесс трансляции:
1) анализ исходной программы
2) синтез объектной программы
Существует 2 способа анализа текста программы:
Рекурсивный спуск.
Наличие в программе конструкций, использованных и предшествующих их определению. Набор процедур ориентирован на анализ одной или иной конструкции.
Табличный распознаватель.
Работает как КА (тетрадь).
Если транслятор однопроходный, то скорость трансляции достаточно высока. Для работы однопроходного транслятора нужен большой объём доступной памяти. Если нужна скорость выполнения программы, то требуется многопроходная (или если есть недостаток памяти) трансляция.
10. Процесс трансляции. Лексический анализ исходной программы.
1 этап анализа исходной программы. Лексический анализ – сканирование, выполняется выявление в исходной программе исходных составляющих. (идентификаторы, разделители, числа, ключевые слова, пробелы, символы операций, текст комментариев).
В результате получается совокупность объектов - лексические единицы – лексемы.
Делается перевод во внутренне машинное представление таких элементов, как числа и идентификаторы (они заносятся в таблицу символов, и затем вместо строки символов используется адрес из этой таблицы).
Обычно этот этап занимает больше всего времени в анализе. Частично это происходит просто потому, что транслятор вынужден сканировать и анализировать исходную программу символ за символом. На практике трудно определить границы между лексемами, не прибегая к помощи достаточно сложных контекстно-зависимых алгоритмов. Например, два оператора Fortran
DO 10 I = 1,5 – оператор цикла
И
DO 10 I = 1.5 – оператор присваивания (в Fortran пробелы игнорируются)
11. Процесс трансляции. Синтаксический анализ исходной программы.
2 этап анализа исходной программы. Синтаксический анализ (разбор) - набор правил формирования языка программирования.
На этом этапе лексемы, полученные в результате лексического анализа, используются для идентификация крупных программных структур (операторы, выражения, объявления итд).
Синтаксический анализ обычно чередуется с семантическим. Обычно для связи синтаксического и семантического анализаторов используется стек. Синтаксический анализатор заносит в стек различные элементы обнаруженной синтаксической единицы, а затем они извлекаются семантическим анализатором и обрабатываются.
For i:=1 to 5 do begin – норм, а For i:=1 to begin 5 do - нет
