BCPL | это... Что такое BCPL? (original) (raw)

BCPL

Класс языка: процедурный, структурный
Тип исполнения: интерпретируемый
Появился в: 1966
Автор(ы): Мартин Ричардс
Типизация данных: безтиповой (все типы шириной в машинное слово)
Испытал влияние: CPL
Повлиял на: B, C

BCPL (Basic Combined Programming Language) — язык программирования, разработанный Мартином Ричардсом в 1966 году, в Кембриджском университете. Изначально он предназначался для написания компиляторов для других языков.

Сейчас BCPL практически не используется, но в своё время он был очень важен из-за хорошей портируемости. Урезанная версия языка с несколько изменённым синтаксисом стала языком программирования B, который оказал сильное влияние на язык программирования Си. По этой причине программисты в шутку расшифровывали название BCPL как Before C Programming Language («язык программирования, появившийся до языка Си»)[1].

BCPL стал ответом на сложности своего предшественника, языка CPL, разработанного в начале 1960-х. Ричардс создал BCPL, «удалив из полного языка те функции, которые усложняли компиляцию». Первая реализация компилятора, работавшего на IBM 7094 под ОС CTSS, была написана Ричардсом весной 1967, в ходе посещения им исследовательской лаборатории «Project MAC» в МТИ. Язык был впервые описан в документе, представленном на 1969 Spring Joint Computer Conference.

Пример

Печать факториала:

GET "libhdr"

LET start() = VALOF { FOR i = 1 TO 5 DO writef("fact(%n) = %i4*n", i, fact(i)) RESULTIS 0 }

AND fact(n) = n=0 -> 1, n*fact(n-1)

Примечания

  1. Питер Ван Дер Линден, «Expert C Programming: Deep C Secrets» (Prentice Hall, 1994), ISBN 978-0131774292

Ссылки

Просмотр этого шаблона Основные языки программирования (сравнениеIDEисторияхронология)
Используемыев разработке АдаAPLЯзык ассемблераActionScriptABAP/4AutoItAWKБейсикСиКоболC++C#ClarionClojureColdFusionCommon LispDdBaseDelphiEiffelErlangEuphoriaF#ФортФортранGambasGoGroovy • HAL/S • HaskellIconJavaJavaScriptLimboLuaМодула-3Object PascalObjective-COCamlOzParserПаскальКомпонентный ПаскальPerlPHPPowerBASICPythonПЛ/1ПрологRubyScalaSchemeSmalltalkSQLPL/SQLTclValaVisual Basic (.NET)
Академические AgdaCleanCurryЛогоMLРЕФАЛСимулаОберон
IEC 61131-3 Instruction ListSTFBDLadder Diagram (LD) • SFC
Прочие АлголАлгол 68Модула-2МирандаHope
Эзотерические HQ9+/HQ9++ • INTERCALBrainfuck • Brainfork • BefungeMalbolgePietSpoonUnlambdaWhitespaceFALSELOLCODE
Визуальные G (LabVIEW) • Microsoft VPLSikuliVisSimАлисаДРАКОНСкретч