
- •Язык программирования. Общие принципы построения и использования языков программирования.
- •Стандарты языков программирования.
- •Лямбда-исчисление. Аппликация, абстракция, редукция, преобразование.
- •Списки и функциональные выражения в функциональных языках программирования.
- •Механизмы и средства взаимодействия программы с операционной системой.
- •Функциональное программирование. Основные положения. Основные отличия от других типов языков программирования.
- •Классификация языков программирования. Близость языков программирования к естественному языку.
- •Унификация и хорновский клоз в логических языках программирования.
- •Модель вычислений функциональных языков программирования.
- •Языки программирования низкого уровня.
- •Средства разработки графического интерфейса пользователя. Эргономические свойства человеко-машинного интерфейса.
- •Процедурные языки программирования. Основные отличия от других типов языков.
- •Обоснование выбора языка программирования.
- •Перегрузка в языках программирования.
- •Логические языки программирования. Основные положения и понятия. Основные отличия от других типов языков программирования.
- •Объектно-ориентированные языки программирования (ооп). Основные отличия от других концепций языков программирования.
- •Полиморфизм в ооп. Виртуальные функции. Таблицы виртуальных функций.
- •Структура языка программирования. Синтаксис и семантика языка программирования. Расширенная форма Бэкуса-Наура.
- •Наследование в ооп. Множественное наследование. Проблемы множественного наследования.
- •Инкапсуляция в ооп. Контроль доступа.
- •Понятие класса и объекта в ооп. Атрибуты, методы, конструктор и деструктор, статические члены класса.
- •Диаграммы классов uml. Основные элементы и обозначения.
- •Данные. Средства описания данных. Типизация языка.
- •Преобразования типов. Контроль соответствия типов данных.
- •Ооп. Основные концепции ооп.
- •Современные интегрированные схемы разработки программ. Основные компоненты среды программирования.
- •Декомпозиция программ.
- •Трансляторы. Интерпретация и компиляция.
- •Макропроцессоры и макрогенераторы.
- •Потоки и процессы. Сходства и различия.
- •Мониторы и защищаемые переменные в параллельном программировании.
- •Семафоры в параллельном программировании. Типы семафоров.
- •Отладчики. Генераторы кода и приложений.
- •Параллельная обработка данных и параллелизм. Параллельное и распределенное программирование.
- •Основные проблемы параллельного и распределенного программирования.
- •Оценка максимально возможного параллелизма.
- •Основные модели параллельного программирования.
- •Оптимизатор. Основные функции оптимизатора.
- •Обработка исключительных ситуаций. Иерархия и виды исключительных ситуаций.
- •Операторы обработки исключительных ситуаций в различных языках программирования.
- •Элементарные типы данных.
- •Перегрузка данных, операторов, методов.
- •Составные типы данных.
- •Механизмы логического вывода. Прямая и обратная цепочки рассуждений.
- •Пространство имен, область видимости, время жизни переменных.
- •Ошибки при работе с вещественными числами. Смешанная арифметика.
- •Операторы выбора и условные операторы.
- •Вещественные числа. Способы представления. Операции над вещественными числами.
- •Оператор присваивания. Операторы цикла.
- •Распределение памяти при выполнении программы.
- •Динамические структуры данных. Реализация динамических структур данных с помощью указателей.
- •Библиотеки программ и классов. Статические и динамические библиотеки. Критерии проектирования библиотек.
- •Подпрограммы. Формальные и фактические параметры подпрограмм.
- •Передача параметров подпрограмме.
- •Программный стек и его изменение.
- •Рекурсивный и итерационный методы решения задач. Виды рекурсий.
- •Общая характеристика языков ассемблера: назначение, принципы построения и использования; структура языка.
- •Сериализация и десериализация. Методы сериализации объектов в базу данных.
-
Модель вычислений функциональных языков программирования.
-
Языки программирования низкого уровня.
Язык программирования низкого уровня — язык программирования, близкий к программированию непосредственно в машинных кодах используемого реального или виртуального (например, Java, Microsoft .NET) процессора. Для обозначения машинных команд обычно применяется мнемоническое обозначение. Это позволяет запоминать команды не в виде последовательности двоичных нулей и единиц, а в виде осмысленных сокращений слов человеческого языка (обычно английских).
Языки низкого уровня представляют собой линейные последовательности элементарных операций с регистрами, в которых хранятся данные. Языки низкого уровня ориентированные для (аппаратную структуру) конкретного вычислительное устройство.
Как правило, использует особенности конкретного семейства процессоров. Общеизвестный пример низкоуровнего языка — язык ассемблера, хотя правильнее говорить о группе языков ассемблера. Более того, для одного и того же процессора существует несколько видов языка ассемблера. Они совпадают в машинных командах, но различаются набором дополнительных функций (директив и макросов).
Низкоуровневое – программирование, основанное на прямом использовании возможностей и особенностей конкретной вычислительной системы.
Намечают три вида низкоуровневых языков
1 Машинный код
2 Мнемо код
-
Ассемблер , макроассемблер
Машина Кода программа представляется в виде последовательности чисел являющихся кодами команд процессора, адресами оперативной памяти, номерами регистров процессора и внешних устройств.
Позволяют вместо чисел использовать символьный имена, отражающие смысл выполняемой команды.
Ассемблеры от мнемо кодов отличаются обширным набором директив транслятора. В первую очередь директивами программ в виде логически законченных элементов.
Макроассемблеры является расширением ассемблера за счет включения макросредств.
-
Средства разработки графического интерфейса пользователя. Эргономические свойства человеко-машинного интерфейса.
На начальной фазе разработки важно определить показатели, отражающие эргономические свойства разрабатываемого изделия. Желательно, чтобы они могли быть количественно измерены, что обеспечивает возможность их сравнить до и после внедрения соответствующих изменений, повышающих эргономичность изделия. К таким показателям относятся:
• эргономичность — интегральный показатель степени выполнения эргономических требований;
• показатели качества деятельности оператора (время решения задачи, производительность, число ошибок, состояние здоровья и т.д.);
• надёжность деятельности оператора (своевременное и безошибочное выполнение функций);
• эффективность СЧМ;
• напряжённость и экстремальность деятельности и т.д.
Человеко-машинный интерфейс - это широкое понятие, охватывающее инженерные решения, обеспечивающие взаимодействие оператора с управляемыми им машинами. Создание систем человеко-машинного интерфейса тесно связано с эргономикой (Эргономика - научная дисциплина, комплексно изучающая производственную деятельность человека и ставящая целью её оптимизацию), но не тождественно ей. Проектирование ЧМИ включает в себя создание рабочего места: кресла, стола, или пульта управления, размещение приборов и органов управления, освещение рабочего места, а, возможно, и микроклимат. Далее рассматриваются действия оператора с органами управления, их доступность и необходимые усилия, согласованность (непротиворечивость) управляющих воздействий и "защита от дурака", расположение дисплеев и размеры надписей на них.
Сложность создания человеко-машинного интерфейса состоит в том, что данные, которые нужно “донести” до пользователя, нужно “донести” так, чтобы пользователю было это “донесение” удобным и понятным.
Человеко-машинный интерфейс условно можно разделить на 3 подгруппы:
текстовый (командные строки) интерфейс;
смешанный (псевдографический) интерфейс
(Псевдографический интерфейс обособлен присутствием графических интерфейсных элементов, например, кнопки, индикаторы процесса выполнения, меню. Как пример можно привести известную программу FAR);
графический интерфейс
(это система средств для взаимодействия пользователя с компьютером, основанная на представлении всех доступных пользователю системных объектов и функций в виде графических компонентов экрана (окон, значков, меню, кнопок, списков и т.п.) К этому виду интерфейсов относятся такие системы как, Mac OS, Solaris, GNU/Linux, Microsoft Windows, NeXTSTEP