- •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. Событийная модель взаимодействия и событийно-управляемое программирование. Обработчик событий.
4. Автоматизация программирования. Язык ассемблера.
Главный вопрос – как перейти от постановки задачи предметной области к уровню, понятному вычислительной системе (машинному коду).
Язык ассемблера — машинно-ориентированный язык низкого уровня с командами, обычно соответствующими командам машины.
Преимущества:
значительное увеличение скорости выполнения программ;
большая гибкость (независимость от операционной системы, более оптимально используются возможности компьютера);
полученные программы занимают меньше памяти.
Недостатки:
программы требуют больше времени и внимательности при написании;
сложность отладки (отсутствуют привычные сообщения об ошибках, текст трудно читать);
трудно выполнять арифметические действия (микропроцессор не может обрабатывать дробные числа, да и применение целых чисел имеет ряд ограничений).
При создании программ на ассемблере вы в той или иной степени лишаетесь опеки операционной системы и вынуждены самостоятельно следить за размещением в памяти кодов программы, переменных, массивов и различных рабочих областей, ежели таковые потребуются. Поэтому необходимо четко представлять, как распределяется память между различными областями, а также какие области памяти вообще существуют и для чего они предназначены.
На языке ассемблера пишут программы или их фрагменты в тех случаях, когда критически важны:
быстродействие (драйверы, игры);
объём используемой памяти (загрузочные секторы, встраиваемое программное обеспечение, программы для микроконтроллеров и процессоров с ограниченными ресурсами, вирусы, программные защиты).
5. Автоматизация программирования. Язык программирования.
Главный вопрос – как перейти от постановки задачи предметной области к уровню, понятному вычислительной системе (машинному коду).
ЯП – подмножество алгоритмических языков.
ЯП – достаточно содержательная богатая формально знаковая система записи алгоритмов в форме пригодной для их обработки средствами вычислительной системы.
Для работы с ЯП нужна система программирования.
СП – система программирования - программное средство, поддерживающее процесс программирования.
СП содержит:
1) Средства, переводящие в МЯ (компилятор).
Исходная программа на ЯП Компилятор Программа на МЯ
2) Модули языковой среды.
For ex: pascal:
CRT (ЭЛТ) – реализованы специальные процедуры и функции для работа с текстом.
Graph – графический режим.
3) Отладчик (выявление конкретных ошибок)
4) Редактор связей (или компоновщик, linker). Программа производит компоновку, принимает на вход один/несколько модулей и собирает по ним исполнимый модуль (программа в виде, в котором она может быть исполнена в компьютере).
5) Текстовый редактор
Особенности:
- Удобнее писать, чем на ЯП предыдущих уровней.
- Уровень абстракции выше (абстракция – модель), т.е. повышается уровень адекватности.
- Программа при соблюдении хорошего стиля программирования является ясной и наглядной. Стиль программирования — (вопрос личного мнения и вкуса) - набор приемов или методов программирования, которые используют программисты, чтобы получить правильные, эффективные, удобные для применения и легкочитаемые программы.
- Модернизация и сопровождение не является слишком сложной задачей.
- Проще создать комплекс программ.
- Не привязана к системе команд определенного процессора (конкретной ЭВМ).
