Языки программирования, 01 лекция (от 05 сентября)

Материал из ESyr's Wiki pages.

Перейти к: навигация, поиск

Предыдущая лекция | Следующая лекция

Содержание

Языки программирования

Лектор: Головин Игорь Геннадьевич

Курс читается с 1983 года

Учебники и интересная литература

  • Языки Программирования
    • В.Ш.Кауфман «ЯП: концепции и примеры»
    • Бен Ари «ЯП»
    • Себеста «ЯП»
    • Зелкович, Пратт «ЯП: разработка и реализация»
  • С++
    • Страуструп «Дизайн и эволюция ЯП С++»
  • Ada 83
    • Н.Джехани «Язык Ada»
  • Ada 95
    • -
  • Modula-2
    • Н.Вирт «Программирование на Модуле 2»
  • Oberon-2
    • -
  • Java
    • Т.Шилдт, А.Нотон «Справочник по Java»
    • Гослинг, Арнольд «»
  • C#
    • Гумерсон «»
    • Робинсон «»
  • Delphi
    • -

Программа Курса

  1. Введение
    1. Определение Языка Программирования (далее — ЯП)
    2. Исторический очерк развития ЯП
    3. Концептуальная схема рассмотрения ЯП
    4. Основные понятия (данные, операции, связывание, виртуальная машина языка)
  2. Традиционные ЯП
    1. Парадигмы программирования
      1. Процедурная парадигма (машина Фон-Неймана)
      2. Объектна-процедурная парадигма
    2. Основные понятия (классы)
    3. Абстрактные типы данных, родовое программирование
  3. Объектно-ориентированное программирование

О чем не будет сказано и почему:

  • Параллельное программирование — слишком интересно, поэтому ему посвящен отдельный курс
  • Функциональная парадигма (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 29


Календарь

чт вт чт вт чт вт чт вт чт вт
Сентябрь
  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 19


Эта статья является конспектом лекции.

Эта статья ещё не вычитана. Пожалуйтса, вычитайте её и исправьте ошибки, если они есть.
Личные инструменты