CPL ( комбинированный язык программирования ) - это многопарадигмальный язык программирования , разработанный в начале 1960-х годов. Это ранний предок языка C через BCPL и B языках.
Парадигма | Мультипарадигма : процедурная , императивная , структурированная , функциональная |
---|---|
Разработано | Кристофер Стрейчи и др. |
Впервые появился | 1963 |
Под влиянием | |
АЛГОЛ 60 | |
Под влиянием | |
БЦПЛ , ПОП-2 |
Дизайн
CPL [1] первоначально был разработан в математической лаборатории Кембриджского университета как «Кембриджский язык программирования», а затем опубликован совместно Кембриджем и компьютерным отделом Лондонского университета как «Комбинированный язык программирования». Кристофер Стрейчи , Дэвид Бэррон и другие принимали участие в его разработке. (CPL также был прозван некоторыми как «Cambridge Plus London» [2] или «язык программирования Кристофера» [3] ). Первая статья с его описанием была опубликована в 1963 году, когда она реализовывалась на компьютере Titan в Кембридже и на компьютере Atlas в Лондоне.
На него сильно повлиял АЛГОЛ 60 , но вместо того, чтобы быть чрезвычайно маленьким, элегантным и простым, CPL был предназначен для более широкой области применения, чем научные вычисления, и поэтому был гораздо более сложным и не таким элегантным, как АЛГОЛ 60. CPL был большим языком для пора. CPL попытался выйти за рамки ALGOL и включить в него управление производственными процессами, обработку бизнес-данных и, возможно, некоторые ранние игры с командной строкой. [4] CPL был разработан, чтобы позволить программирование низкого уровня и абстракции высокого уровня с использованием одного и того же языка.
Однако CPL внедрялся очень медленно. Первый компилятор CPL, вероятно, был написан примерно в 1970 году [5], но этот язык так и не получил особой популярности и, кажется, бесследно исчез где-то в 1970-х.
BCPL (от «Basic CPL», хотя изначально «Bootstrap CPL») был гораздо более простым языком, основанным на CPL, предназначенным в первую очередь как язык системного программирования , особенно для написания компиляторов ; [6] он был впервые реализован в 1967 году, до первого внедрения CPL. BCPL затем привела, через B , в популярный и влиятельном языке программирования Си .
Пример
Функция MAX, сформулированная Питером Норвигом: [5]
Макс (Items, ValueFunction) = значение§ (Best, BestVal) = (NIL, -∞)в то время как Предметы делают §(Item, Val) = (Head (Items), ValueFunction (Head (Items)))если Val> BestVal, то (Best, BestVal): = (Item, Val)Предметы: = Остальное (Предметы) §⃒результат лучший §⃒
(Закрывающий символ, соответствующий открывающему символу «§», представляет собой «§» с вертикальной чертой через него. Этот символ может быть составлен в Юникоде как «§⃒», который представляет собой § (U + 00A7, SECTION SIGN), составленный из ⃒ (U + 20D2, ОБЪЕДИНЕНИЕ ДЛИННОЙ ВЕРТИКАЛЬНОЙ ЛИНИИ НАЛОЖЕНИЯ), но он может некорректно отображаться в вашем браузере.)
Реализации
Считается, что CPL никогда не был полностью реализован в 1960-х, существуя как теоретическая конструкция с некоторыми исследовательскими работами по частичным реализациям. [7]
Питер Норвиг написал (для Yapps, компилятора-компилятора Python ) простой переводчик CPL в Python для современных машин. [8]
Смотрите также
Рекомендации
- ^ Баррон, DW; Бакстон, Дж. Н.; Хартли, Д. Ф.; Nixon, E .; Стрейчи, К. (1963-08-01). «Основные возможности CPL» . Компьютерный журнал . 6 (2): 134–143. DOI : 10.1093 / comjnl / 6.2.134 . ISSN 0010-4620 .
- ^ «Клайв Фезер на CPL и BCPL» . Lysator.liu.se . Проверено 18 августа 2013 .
- ^ Дженсен, Ричард (9 декабря 2020 г.). « » Чертовски глупо , что нужно сделать «-The происхождение C» . Ars Technica . Проверено 10 декабря 2020 года .
- ^ Ядав, П. (2005). Компьютер и языки . Издательство Discovery. ISBN 978-81-8356-041-2.
- ^ а б Питер Норвиг . «Предвестник, но не идеален: взгляд на статью журнала Scientific American 1966 года по системному анализу» . Blogs.scientificamerican.com . Проверено 18 августа 2013 .
- ^ Митчелл, Джон С .; Апт, Кшиштоф (2003). Концепции языков программирования . Издательство Кембриджского университета. ISBN 978-0-521-78098-8.
- ^ Кулурис, Г. Ф. (1 января 1968 г.). "Лондонский компилятор CPL1" . Компьютерный журнал . 11 : 26–30. DOI : 10.1093 / comjnl / 11.1.26 .
- ^ Норвиг, Питер (23 августа 2011 г.). «Предвестник, но не идеален: взгляд на статью журнала Scientific American 1966 года по системному анализу» . Сеть блогов Scientific American . Проверено 10 декабря 2020 года .
Библиография
- Собрание статей Кристофера Стрейчи, раздел, относящийся к CPL, хранится в Бодлианской библиотеке в Оксфорде; CSAC 71.1.80 / C.136-C.184
- Д. У. Бэррон, Дж. Н. Бакстон, Д. Ф. Хартли, Э. Никсон и К. Стрейчи. «Основные особенности CPL». The Computer Journal 6 : 2: 134-143 (1963), доступно в Интернете .
- Дж. Бакстон, Дж. С. Грей и Д. Парк. Руководство по элементарному программированию CPL, издание II (Кембридж) .
- Институт компьютерных наук Лондонского университета и математическая лаборатория, Кембридж. Рабочие документы CPL .