- •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. Событийная модель взаимодействия и событийно-управляемое программирование. Обработчик событий.
25. Модули как библиотеки ресурсов и особенности работы с ними.
Основным принципом модульного программирования является принцип «разделяй и властвуй». Модульное программирование – это организация программы как совокупности небольших независимых блоков, называемых модулями, структура и поведение которых подчиняются определенным правилам.
Модули – специальным образом оформленные библиотеки, определяющие типы, переменные, константы, процедуры, функции.
ПЕ – мешок с ресурсами, сам по себе выполняться не может.
Все ресурсы модуля делятся на 2 группы:
Внешние – предназначенные для использование другими ПЕ.
Внутренние – рабочие ресурсы данного модуля.
Всякий модуль Паскаля имеет следующую структуру:
Unit <имя_модуля>;
interface <интерфейсная часть>;
implementation
<исполняемая часть>; (секция реализации)
begin
<инициирующая часть>; (секция инициализации)
end .
Интерфейсная секция содержит объявление ресурсов (в том числе заголовки подпрограмм), к которым возможны обращения извне.
Секция реализации содержит описание подпрограмм, объявленных в интерфейсной секции, и описание внутренних ресурсов модуля (локальных переменных, типов, подпрограмм). Обращение к этим ресурсам возможно только из подпрограмм, описанных в том же модуле.
Секция инициализации содержит операторы, которые выполняют некоторые действия, необходимые для нормальной работы процедур модуля.
3 положительных момента:
Возможность строить пользовательские библиотеки.
Сегмент данных общий.
Увеличивается скорость компиляции (время на компиляцию модуля не тратиться).
26. Понятия вычислительной модели языка программирования. Императивная и объектно-ориентированная модели.
Императивные языки – управляемые командами или операторно-ориентированные языки. Основой является состояние машины – множество значений ячеек памяти.
Программа состоит из последовательности операторов, выполнение каждого из которых влечет за собой изменение значения в одной или нескольких ячеек памяти, т.е. переход машины в новое состояние.
Языки, поддерживающие эту концепцию – C, Pascal, Fortran, Алгол.
ЯП еще называются процедурными.
Первыми императивными языками были машинные коды — родной язык программирования для компьютера. В этих языках инструкции были крайне просты, что снижало нагрузку на компьютеры, однако затрудняло написание крупных программ. В 1954 появился первый «человеческий» язык программирования — FORTRAN, разработанный Джоном Бэкусом в IBM.
------------------------
ООП.
В этой модели строятся сложные объекты данных, а затем для операций над этими данным описывается ограниченный набор функций. Сложные объекты данных создаются как расширения более простых объектов и наследуют их свойства => ЯП имеет более высокий уровень (C++, Java).
По мнению Алана Кея, создателя языка Smalltalk, которого считают одним из «отцов-основателей» ООП, объектно-ориентированный подход заключается в следующем наборе основных принципов (цитируется по вышеупомянутой книге Т. Бадда).
Всё является объектом.
Вычисления осуществляются путём взаимодействия (обмена данными) между объектами. Объекты взаимодействуют, посылая и получая сообщения. Сообщение — это запрос на выполнение действия.
Каждый объект является представителем класса, который выражает общие свойства объектов (таких, как целые числа или списки).
В классе задаётся поведение (функциональность) объекта. Тем самым все объекты, которые являются экземплярами одного класса, могут выполнять одни и те же действия.
Классы организованы в единую древовидную структуру с общим корнем, называемую иерархией наследования. Память и поведение, связанное с экземплярами определённого класса, автоматически доступны любому классу, расположенному ниже в иерархическом дереве.
Таким образом, программа представляет собой набор объектов, имеющих состояние и поведение. Объекты взаимодействуют посредством сообщений. Естественным образом выстраивается иерархия объектов: программа в целом — это объект, для выполнения своих функций она обращается к входящим в неё объектам.
