CPL (язык программирования)
Парадигма | Мультипарадигма : процедурный , императивный , структурированный , функциональный |
---|---|
Разработано | Кристофер Стрейчи и др. |
Впервые появился | 1963 год |
Под влиянием | |
АЛГОЛ 60 | |
Под влиянием | |
БКПЛ |
CPL ( комбинированный язык программирования ) — многопарадигмальный язык программирования, разработанный в начале 1960-х годов. Это ранний предок языка C через BCPL и B. языки
Дизайн
[ редактировать ]CPL [1] Первоначально был разработан в математической лаборатории Кембриджского университета как «Кембриджский язык программирования», а затем опубликован совместно Кембриджем и компьютерным подразделением Лондонского университета как «Комбинированный язык программирования» (некоторые также называли CPL «Cambridge Plus»). Лондон" [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 привел к популярному и влиятельному языку программирования C.
Пример
[ редактировать ]Функция MAX, сформулированная Питером Норвигом: [5]
Max(Items, ValueFunction) = value of § (Best, BestVal) = (NIL, -∞) while Items do § (Item, Val) = (Head(Items), ValueFunction(Head(Items))) if Val > BestVal then (Best, BestVal) := (Item, Val) Items := Rest(Items) ̸§ result is Best ̸§
Используемый здесь символ блока закрывающего раздела ( ̸§
) — это аппроксимация исходного символа, в котором поперечная черта вертикальна. Это доступно в Unicode как §⃒
но отображается неправильно во многих системах.
Реализации
[ редактировать ]Считается, что CPL никогда не был полностью реализован в 1960-х годах и существовал как теоретическая конструкция с некоторыми исследованиями по частичным реализациям. [7] [8]
Питер Норвиг написал (для Yapps, компилятора-компилятора Python ) простой транслятор CPL в Python для современных машин. [5] [9]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Бэррон, Д.В.; Бакстон, JN; Хартли, Д.Ф.; Никсон, Э.; Стрейчи, К. (1 августа 1963 г.). «Основные особенности CPL» . Компьютерный журнал . 6 (2): 134–143. дои : 10.1093/comjnl/6.2.134 . ISSN 0010-4620 .
- ^ «Клайв Физер о CPL и BCPL» . Lysator.liu.se . Проверено 18 августа 2013 г.
- ^ Дженсен, Ричард (9 декабря 2020 г.). « Чертовски глупый поступок» — происхождение C» . Арс Техника . Проверено 10 декабря 2020 г.
- ^ Ядав, П. (2005). Компьютер и языки . Издательство Дискавери. ISBN 978-81-8356-041-2 .
- ^ Jump up to: а б с Норвиг, Питер (23 августа 2011 г.). «Пророческое, но не идеальное: взгляд назад на статью о системном анализе в журнале Scientific American 1966 года» . Сеть блогов Scientific American . Проверено 10 декабря 2020 г.
- ^ Митчелл, Джон К.; Апт, Кшиштоф (2003). Концепции языков программирования . Издательство Кембриджского университета. ISBN 978-0-521-78098-8 .
- ^ Кулурис, Г.Ф. (1 января 1968 г.). «Лондонский компилятор CPL1» . Компьютерный журнал . 11 :26–30. дои : 10.1093/comjnl/11.1.26 .
- ^ Кулурис, Джордж (2013). «Выпуск 62 по возрождению компьютера / Компилятор компилятора - размышления пользователя спустя 50 лет / Компилятор CPL1» . Общество охраны компьютеров . Проверено 3 мая 2023 г.
- ^ Норвиг, Питер. «Полная программа шашек с аннотациями» . norvig.com . Проверено 11 июня 2021 г.
Библиография
[ редактировать ]- Как BCPL развился из CPL, Мартин Ричардс, 2011 г. [1]
- Сборник статей Кристофера Стрейчи, раздел, относящийся к CPL, хранится в Бодлианской библиотеке в Оксфорде; CSAC 71.1.80/C.136-C.184
- Д. У. Бэррон, Дж. Н. Бакстон, Д. Ф. Хартли, Э. Никсон и К. Стрейчи. «Основные особенности CPL» The Computer Journal 6 :2:134-143 (1963), доступно в Интернете .
- Дж. Бакстон, Дж. К. Грей и Д. Парк. Руководство по элементарному программированию CPL, издание II (Кембридж) (1966).
- Институт компьютерных наук и математическая лаборатория Лондонского университета, Кембридж. Рабочие документы CPL (1966).