Содержимое курса 2014 (1161133)
Текст из файла
Содержание курса лекций «Языки программирования» (2014 год)1.Введение. Основные понятия языков программированияОпределение языков программирования (ЯП), ЯП и основные парадигмыпрограммирования. Исторический очерк развития ЯП. Основные позиции прирассмотрении ЯП. Схема рассмотрения ЯП: базис, средства развития и средствазащиты. Основные понятия языков программирования: данные, операции исвязывание. Понятие о виртуальной машине языка2.Базис языков программирования: базисные типы и структуры данных,операторный базисАрифметические типы данных: целые, плавающие, фиксированные.Проблемы представления чисел и способы их решения в ЯП. Символьные илогические типы данных. Порядковые типы: диапазоны и перечисления.Особенности реализации перечислений в современных ЯП. Ссылки иуказатели. Управление памятью. Автоматическая сборка мусора. Объектнореференциальная модель в современных ЯП.
Составные типы данных.Массивы и их особенности в современных ЯП. Записи. Недостатки системытипов в традиционных ЯП. Объединения как средство преодоления этихнедостатков. Проблемы, связанные с объединениями. Ассоциативные массивыи записи.Понятие о структурном программировании. Разновидности управляющихконструкций в современных языках программирования. Условные операторы имноговариантные развилки. Циклы. Оператор перехода, связанные с импроблемы и способы их решения в современных ЯП. Особенности реализациициклов-итераторов в современных ЯП3.Определение новых абстракций.
Процедурные абстракции, определениеновых типов данных, классы. Инкапсуляция и абстрактные типы данныхСопрограммы и подпрограммы. Сопрограммы в современных ЯП (напримере итераторов в C# и Python).Процедурные абстракции. Процедуры и функции в современных ЯП.Передача параметров: семантика и способы реализации. Статическийполиморфизм и перегрузка имен подпрограмм. Подпрограммные типы данных.Делегаты и события в языке C#. Анонимные функции. Лямбда-функции изамыкания в современных ЯП (C#, Python, C++).Понятие логического модуля.
Использование модулей для определенияновых типов данных. Особенности понятия модуля в современных ЯП. Импорти экспорт имен. Видимость имен: непосредственная и потенциальная.Управление видимостью. Области видимости и пространства имен.Модульность и технология программирования: проектирование «сверху-вниз» и«снизу-вверх».Понятие класса. Класс как тип данных.
Члены класса: функции, данные.Статические и нестатические члены. Члены - вложенные классы. Статические инестатические классы. Классы и области видимости.Понятие специальных функций-членов. Проблема инициализации объектови способы ее решения. Конструкторы, деструкторы, операторы using и tryfinally.Преобразование типов и классы. Явные и неявные преобразования.Управление преобразованиями в современных ЯП: проблемы и способы ихрешения.
Классы и перегрузка имен. Перегрузка встроенных знаков операций.Итераторы и индексаторы. Классы и стандартные библиотеки. Встроенныеклассы стандартной библиотеки.Понятие инкапсуляции. Понятие абстрактного типа данных (АТД) и егодостоинства. Инкапсуляция и логические модули. Управление видимостью.Реализация АТД в модульных языках программирования (Ада, Оберон,Модула). Инкапсуляция и классы. Управление видимостью и управлениедоступом. Пространства имен и инкапсуляция.
Реализация АТД с помощьюпонятия класса. Принцип разделения определения, реализации и использования(РОРИ). Эволюция принципа РОРИ в современных ЯП.Модульность и раздельная трансляция.4.Объектно-ориентированные свойства языков программирования.Наследование и динамический полиморфизм.
Абстрактные классы иинтерфейсы.Иерархии типов, статические и динамические типы в объектноориентированных ЯП. Наследование и области видимости имен. Замещение,перегрузка и скрытие имен при наследовании. Наследование и инкапсуляция.Управление видимостью и доступом при наследовании. Запрещениенаследования для классов и методов. Наследование и специальные функции.Понятие о множественном наследовании.Статическое и динамическое связывание методов. Динамический тип данныхи динамическое связывание. Замещение функций и динамическое связывание.Особенности динамического связывания в современных ЯП.
Достоинства инедостатки динамического связывания. Снятие динамического связывания.Понятие о мультиметодах. Понятие абстрактного класса (АК). Необходимостьпонятия АК при проектировании иерархий классов. Воплощение концепции АКв современных ЯП. Абстрактные классы и интерфейсы. Интерфейс какязыковая конструкция. Связь интерфейсов и других языковых конструкций(итераторов, сохраняемых объектов и т.д.).
Интерфейсы и иерархии классов.Множественное наследование интерфейсов. Реализация интерфейсов и ееособенности современных ЯП. Явная и неявная реализация интерфейсов.Понятие о динамической идентификации типа.5.Обобщенное программирование и статический полиморфизмПонятие о статической параметризации и родовых объектах. Достоинствастатической параметризации.
Статическая параметризация и ООП. Родовыемодули и подпрограммы в языке Ада. Механизм шаблонов в языке Си++.Шаблоны-классы и шаблоны-функции. Параметры шаблонов. Выводпараметров шаблонов. Генерация кода по шаблонам. Полная и частичнаяспециализация шаблонов. Обобщенное программирование на языке Си++.Шаблоны и функциональное программирование.
Сравнение механизмашаблонов Си++ и родовых объектов Ады. Особенности статическогополиморфизма в языках С# и Java..
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.