CPL (язык программирования) - CPL (programming language)

CPL
ПарадигмаМультипарадигма:процедурный, императив, структурированный, функциональный
РазработаноКристофер Стрейчи и другие.
Впервые появился1963; 57 лет назад (1963)
Под влиянием
АЛГОЛ 60
Под влиянием
BCPL, ПОП-2

CPL (Комбинированный язык программирования) это язык программирования с несколькими парадигмами, который был разработан в начале 1960-х годов. Это ранний предок Язык C через BCPL и B языков.

Дизайн

CPL[1] изначально был разработан в математической лаборатории Кембриджский университет как «Кембриджский язык программирования» и позже опубликованный совместно Кембриджем и Лондонский университет Компьютерный блок как «комбинированный язык программирования». Кристофер Стрейчи, Дэвид Бэррон и другие участвовали в его разработке. (CPL также был прозван некоторыми как "Кембридж плюс Лондон"[2] или «Язык программирования Кристофера»). Первая статья с его описанием была опубликована в 1963 году, когда она реализовывалась на Титан Компьютер в Кембридже и Атлас Компьютер в Лондоне.

На него сильно повлияли АЛГОЛ 60, но вместо того, чтобы быть чрезвычайно маленьким, элегантным и простым, CPL предназначался для более широкой области применения, чем научные вычисления, и поэтому был гораздо более сложным и не таким элегантным, как ALGOL 60. CPL был большим языком для своего времени. CPL попытался выйти за рамки ALGOL, включив в него управление производственными процессами, обработку бизнес-данных и, возможно, некоторые ранние игры с командной строкой.[3] CPL был предназначен для обеспечения возможности программирования низкого уровня и абстракций высокого уровня с использованием одного и того же языка.

Однако CPL внедрялся очень медленно. Первый компилятор CPL, вероятно, был написан около 1970 года,[4] но этот язык так и не получил особой популярности и, кажется, бесследно исчез где-то в 1970-х годах.

BCPL (для "Basic CPL", хотя изначально "Bootstrap CPL") был гораздо более простым языком, основанным на CPL, предназначенном в первую очередь как системное программирование язык, особенно для письма компиляторы;[5] он был впервые реализован в 1967 году, до первой реализации CPL. BCPL затем вел через B, популярным и влиятельным Язык программирования C.

Пример

Функция MAX, сформулированная Питером Норвигом:[4]

Max (Items, ValueFunction) = значение§ (Best, BestVal) = (NIL, -∞), а Items - § (Item, Val) = (Head (Items), ValueFunction (Head (Items))), если Val> BestVal then (Best, BestVal): = (Item, Val) Items: = Rest (Items) §⃒результат лучший §⃒

(Закрывающий символ, соответствующий открывающему символу «§», представляет собой «§» с вертикальной чертой через него. Этот символ может быть составлен в Юникоде как «§⃒», который представляет собой § (U + 00A7, SECTION SIGN), составленный из ⃒ (U + 20D2, ОБЪЕДИНЕНИЕ ДЛИННОЙ ВЕРТИКАЛЬНОЙ ЛИНИИ НАЛОЖЕНИЯ), но он может некорректно отображаться в вашем браузере.)

Реализации

Считается, что CPL никогда не был полностью реализован в 1960-х годах, существуя как теоретическая конструкция с некоторыми исследовательскими работами по частичным реализациям.[6]

Питер Норвиг написал (для Yapps, Python компилятор-компилятор ) простой CPL для Python переводчик для современных машин.[7][неосновной источник необходим ]

Смотрите также

Рекомендации

  1. ^ Barron, D.W .; Бакстон, Дж. Н .; Хартли, Д. Ф .; Nixon, E .; Стрейчи, К. (1963-08-01). «Основные особенности CPL». Компьютерный журнал. 6 (2): 134–143. Дои:10.1093 / comjnl / 6.2.134. ISSN  0010-4620.
  2. ^ "Клайв Фезер на CPL и BCPL". Lysator.liu.se. Получено 2013-08-18.
  3. ^ Ядав П. (2005). Компьютер и языки. Издательство Discovery. ISBN  978-81-8356-041-2.
  4. ^ а б Питер Норвиг. "Предвосхищение, но не совершенство: взгляд на статью журнала Scientific American 1966 года о системном анализе". Blogs.scientificamerican.com. Получено 2013-08-18.
  5. ^ Митчелл, Джон С .; Апт, Кшиштоф (2003). Концепции языков программирования. Издательство Кембриджского университета. ISBN  978-0-521-78098-8.
  6. ^ Кулурис, Г. Ф. (1 января 1968 г.). "Лондонский компилятор CPL1". Компьютерный журнал. 11: 26–30. Дои:10.1093 / comjnl / 11.1.26.
  7. ^ Норвиг, Питер. "Парсер CPL". Получено 8 марта 2020.

Библиография