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