Языки программирования, 01 лекция (от 05 сентября)
Материал из eSyr's wiki.
Предыдущая лекция | Следующая лекция
Содержание |
Языки программирования
Лектор: Головин Игорь Геннадьевич
Курс читается с 1983 года
Учебники и интересная литература
- Языки Программирования
- В.Ш.Кауфман «Языки программирования: концепция и примеры»
- М. Бен-Ари «Языки программирования. Практический сравнительный анализ»
- Р. У. Себеста «Основные концепции языков программирования»
- М. Зелкович, Т. Пратт «Языки программирования: разработка и реализация»
- С++
- Б. Страуструп «Дизайн и эволюция языка С++»
- Ada 83
- Н. Джехани «Язык Ada»
- Ada 95
- -
- Modula-2
- Н. Вирт «Программирование на Модуле 2»
- Oberon-2
- -
- Java
- Т. Шилдт, А. Нотон «Справочник по Java»
- Дж. Гослинг, К. Арнольд «Язык программирования Java»
- C#
- Гумерсон «»
- Робинсон «»
- Delphi
- -
Программа Курса
- Введение
- Определение Языка Программирования (далее — ЯП)
- Исторический очерк развития ЯП
- Концептуальная схема рассмотрения ЯП
- Основные понятия (данные, операции, связывание, виртуальная машина языка)
- Традиционные ЯП
- Парадигмы программирования
- Процедурная парадигма (машина Фон-Неймана)
- Объектна-процедурная парадигма
- Основные понятия (классы)
- Абстрактные типы данных, родовое программирование
- Парадигмы программирования
- Объектно-ориентированное программирование
О чем не будет сказано и почему
- Параллельное программирование — слишком интересно, поэтому ему посвящен отдельный курс
- Функциональная парадигма (LISP) — не используется в индустриальном программировании
- Логическое программирование (PROLOG) — не используется в индустриальном программировании
Виды программирования
- Игровое программирование
- Типичный язык — BASIC
- Число программистов — 1
- Число пользователей — 0 или 1
- Цель — для развлечения и поддержания навыков, фактически — беcцельно
- Интерфейс — понятный себе
- Научное программирование
- Типичный язык — FORTRAN
- Число программистов — 1
- Число пользователей — 1 или 2
- Цель — для решения конкретной задачии или очень узкого круга однотипных задач
- Интерфейс — такой, чтоб можно было подойти и объяснить
- Индустриальное программирование (зародилось лишь в 1980х)
- Типичного языка нет
- Число программистов — много
- Число пользователей — невообразимо много
- Цель — для решения чужих задач, т.е. происходит отчуждение программы
- Интерфейс — поясненный обширной документацией, понятный интуитивно
Курс посвящён именно индустриальному программированию с учётом его особенностей
Определение ЯП
Есть мнение, что ЯП — язык написания компьютерных программ. Но.
- APL — первый широко известный ЯП, придуманный задолго до BASIC и не для компьютера, а просто как математическая нотация. Дело в том, что автору в его научных статьях было тяжело записывать сложные вычисления с матрицами.
- PLANNER — еще одна похожая нотация.
Эти примеры не просто не предназначились для компьютерной реализации, они вообще машинно с полной мере не реализуемы.
- Algol-60 — реализован на компьютере, но основное предназначение — публикация алгоритмов в журналах
- HTML — язык разметки текста с уклоном в последующее отображение
Язык Программирования — инструмент для планирования поведения исполнителя, в точности выполняющего предписания.
Это подразумевает однозначную трактовку текста на языке исполнителем (будь то ОС компьютера, веб-сервер Apache или миллион китайцев) с целью выполнения поставленной цели. И здесь мы встречаем важное отличие искусственных языков от естественных — однозначность.
- Привет Освободителям Востока от Ф. Э. Дзержинского
- Тощая торговка вяленой рыбой сидела за прилавком
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
Календарь
чт | вт | чт | вт | чт | вт | чт | вт | чт | вт | |
Сентябрь
| 05 | 07 | 12 | 14 | 19 | 21 | 26 | 28 | ||
Октябрь
| 03 | 05 | 10 | 12 | 17 | 19 | 24 | 26 | 31 | |
Ноябрь
| 02 | 14 | 16 | 21 | 23 | 28 | 30 | |||
Декабрь
| 05 | 07 | 12 | 14 |
Материалы к экзамену
Сравнение языков программирования