- •Язык программирования. Общие принципы построения и использования языков программирования.
- •Стандарты языков программирования.
- •Лямбда-исчисление. Аппликация, абстракция, редукция, преобразование.
- •Списки и функциональные выражения в функциональных языках программирования.
- •Механизмы и средства взаимодействия программы с операционной системой.
- •Функциональное программирование. Основные положения. Основные отличия от других типов языков программирования.
- •Классификация языков программирования. Близость языков программирования к естественному языку.
- •Унификация и хорновский клоз в логических языках программирования.
- •Модель вычислений функциональных языков программирования.
- •Языки программирования низкого уровня.
- •Средства разработки графического интерфейса пользователя. Эргономические свойства человеко-машинного интерфейса.
- •Процедурные языки программирования. Основные отличия от других типов языков.
- •Обоснование выбора языка программирования.
- •Перегрузка в языках программирования.
- •Логические языки программирования. Основные положения и понятия. Основные отличия от других типов языков программирования.
- •Объектно-ориентированные языки программирования (ооп). Основные отличия от других концепций языков программирования.
- •Полиморфизм в ооп. Виртуальные функции. Таблицы виртуальных функций.
- •Структура языка программирования. Синтаксис и семантика языка программирования. Расширенная форма Бэкуса-Наура.
- •Наследование в ооп. Множественное наследование. Проблемы множественного наследования.
- •Инкапсуляция в ооп. Контроль доступа.
- •Понятие класса и объекта в ооп. Атрибуты, методы, конструктор и деструктор, статические члены класса.
- •Диаграммы классов uml. Основные элементы и обозначения.
- •Данные. Средства описания данных. Типизация языка.
- •Преобразования типов. Контроль соответствия типов данных.
- •Ооп. Основные концепции ооп.
- •Современные интегрированные схемы разработки программ. Основные компоненты среды программирования.
- •Декомпозиция программ.
- •Трансляторы. Интерпретация и компиляция.
- •Макропроцессоры и макрогенераторы.
- •Потоки и процессы. Сходства и различия.
- •Мониторы и защищаемые переменные в параллельном программировании.
- •Семафоры в параллельном программировании. Типы семафоров.
- •Отладчики. Генераторы кода и приложений.
- •Параллельная обработка данных и параллелизм. Параллельное и распределенное программирование.
- •Основные проблемы параллельного и распределенного программирования.
- •Оценка максимально возможного параллелизма.
- •Основные модели параллельного программирования.
- •Оптимизатор. Основные функции оптимизатора.
- •Обработка исключительных ситуаций. Иерархия и виды исключительных ситуаций.
- •Операторы обработки исключительных ситуаций в различных языках программирования.
- •Элементарные типы данных.
- •Перегрузка данных, операторов, методов.
- •Составные типы данных.
- •Механизмы логического вывода. Прямая и обратная цепочки рассуждений.
- •Пространство имен, область видимости, время жизни переменных.
- •Ошибки при работе с вещественными числами. Смешанная арифметика.
- •Операторы выбора и условные операторы.
- •Вещественные числа. Способы представления. Операции над вещественными числами.
- •Оператор присваивания. Операторы цикла.
- •Распределение памяти при выполнении программы.
- •Динамические структуры данных. Реализация динамических структур данных с помощью указателей.
- •Библиотеки программ и классов. Статические и динамические библиотеки. Критерии проектирования библиотек.
- •Подпрограммы. Формальные и фактические параметры подпрограмм.
- •Передача параметров подпрограмме.
- •Программный стек и его изменение.
- •Рекурсивный и итерационный методы решения задач. Виды рекурсий.
- •Общая характеристика языков ассемблера: назначение, принципы построения и использования; структура языка.
- •Сериализация и десериализация. Методы сериализации объектов в базу данных.
-
Язык программирования. Общие принципы построения и использования языков программирования.
ЯП - набор правил описания последовательностей символов составляющих программу и какое вычисление производит программа.
Программа - последовательность символов определяющих вычисления. Запись программы на ЯП называют исходным кодом.
Язык программирования – это механизм абстрагирования, который дает возможность описывать вычисления абстрактно. Но в тоже время это описание может быть переведено в понятную форму конкретному исполнителю (процессору).
Язы́к программи́рования — формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под её управлением.
Язык программирования применятся для составления программ решающих задачи на определенном уровне абстракции. Появление и применение нового языка программирования может быть оправдано только тем, если он позволяет легче составить программу для конкретной области.
Основной принцип: Чем выше уровень абстракции, тем больше деталей скрыто от программиста. Но в то же время снижается детализация реализация.
-
Стандарты языков программирования.
Язык программирования может быть представлен в виде набора спецификаций, определяющих его синтаксис и семантику.
Для многих широко распространённых языков программирования созданы международные стандарты. Специальные организации проводят регулярное обновление и публикацию спецификаций и формальных определений соответствующего языка. В рамках таких комитетов продолжается разработка и модернизация языков программирования и решаются вопросы о расширении или поддержке уже существующих и новых языковых конструкций.
Стандарты языков программирования: 1. Частный стандарт Определяется командой разработчиков ЯП и имеет авторские права.
2. Согласительный стандарт Создание специальных организационных документов, основанных на соглашении всех заинтересованных участников. Является основным способом обеспечить единообразие различных форм языка. ANSI - объединение американских промышленных и деловых групп, разрабатывающее торговые и коммуникационные стандарты.
IEEE - международная некоммерческая ассоциация специалистов в области техники, мировой лидер в области разработки стандартов по радиоэлектронике и электротехнике.
-
Лямбда-исчисление. Аппликация, абстракция, редукция, преобразование.
Это простейший из семейства прототипных языков программирования, чистое λ-исчисление, термы которого, называемые также объектами (обами), или λ-термами, построены исключительно из переменных применением аппликации и абстракции. Изначально наличия каких-либо констант не предполагается.
Лямбда-исчисление: В основе лежит 2 операции: Аппликация: Означает применение или вызов функции по отношению к заданному значению )
где - алгоритм, вычисления по заданному входному значению
Абстракция: Строит функции по заданным выражением
Если это выражение свободно содержит х, тогда означает, что лямбда функция от аргумента х, которая имеет вид , означает функцию х->t[x] .
Редукция: Поскольку выражение обозначает функцию, ставящую в соответствие каждому значение , то для вычисления выражения
, в которое входят и аппликация и абстракция, необходимо выполнить подстановку числа 3 в терм вместо переменной . В результате получается . Это соображение в общем виде записывается как
.