Концепции Языков Программирования
Введение.
Цель курса. Положение курса в Computer Science.
Другие курсы CS
- a. Архитектура Вычислительных Машин
- b. Операционные Системы
- c. Алгоритмы и Структуры Данных
- d. Проектирование и Архитектура Программных Систем
- e. Язык программирования C++
- f. Язык программирования Java
- g. Базы Данных
- h. Теория компиляторов
Концепции ЯП
- a. Берут начало в Архитектуре ВМ
- b. Отражают концепции ОС c. Пополняются удачными шаблонами из Архитектуры ПС d. Больше чем любой язык программирования или СУБД
- Цель курса a. Глубокое понимание принципов работы программ, разработанных с помощью современных ЯП; b. Обзор концепций, лежащих в основе современных ЯП; c. Сравнение методов решения задач на разных ЯП, с использованием тех или иных концепций; d. Обзор понятий и приёмов, не являющихся частью ЯП, но непосредственно влияющих на разработку ПО.
- Зачем изучать Языки Программирования a. Изучать нужно не языки, а модели. Шаблоны, принципы, концепции. Решения конкретных задач, которые можно переиспользовать; b. Концепции перетекают из одного языка в другой, образуя новые семантики или новые концепции; c. Изучение языков «вширь» нередко способствует более глубокому пониманию конкретного (своего) языка «вглубь»; d. Анекдот про Альцгеймера. e. Выбор подходящего инструмента? i. Подходящий фреймворк, скорее всего уже есть для Вашего языка; ii. Знание особенностей конкретных языков позволяет прогнозировать процесс разработки и необходимые дополнительные (накладные) расходы.
- Появление новых языков программирования a. Специализированные ЯП i. Инженерия знаний и Domain Specific Languages ii. Пользовательские скрипты b. Архитектура компьютера i. Архитектура фон Неймана не менялась с 1964г. ii. Поиск новой архитектуры, которая позволит раскрыть потенциал функционального программирования c. Тенденции развития технологий i. Поддержка асинхронности, ii. Параллельное и конкурентное программирование.