CPL (programming language)

Contributors to Wikimedia projects · Wikimedia Foundation, Inc.

Main page | Contents | Current events | Random article | About Wikipedia | Contact us | Help | Learn to edit | Community portal | Recent changes | Special pages | Create account | Log in | Article | Edit | View history | Permanent link | Page information | Cite this page | Get shortened URL | Switch to legacy parser | Download as PDF | Printable version | doi | ISSN | ISBN | Norvig, Peter | Apt, Krzysztof

From Wikipedia, the free encyclopedia

CPL

Paradigm

Multi-paradigm

:

procedural

,

imperative

,

structured

,

functional

Designed by

Christopher Strachey

et al.Firstappeared1963;63years agoInfluenced by

ALGOL 60

Influenced

BCPL

CPL (Combined Programming Language) is a

multi-paradigm programming language

developed in the early 1960s. It is an early ancestor of the

C language

via the

BCPL

and

B

languages.

CPL

[1]

was developed initially at the Mathematical Laboratory at the

University of Cambridge

as the "Cambridge Programming Language" and later published jointly between Cambridge and the

University of London

Computer Unit as the "Combined Programming Language" (CPL was also nicknamed by some as "Cambridge Plus London"

[2]

or "Christopher's Programming Language"

[3]

).

Christopher Strachey

,

David Barron

and others were involved in its development. The first paper describing it was published in 1963, while it was being implemented on the

Titan Computer

at Cambridge and the

Atlas Computer

at London.

It was heavily influenced by

ALGOL 60

, but instead of being extremely small, elegant and simple, CPL was intended for a wider application area than scientific calculations and was therefore much more complex and not as elegant as ALGOL 60. CPL was a big language for its time, and it attempted to go beyond ALGOL to include industrial process control, business data processing, and possibly some early command line games.

[4]

CPL was intended to allow low-level programming and high level abstractions using the same language.

However, CPL was only implemented very slowly. The first CPL compiler was probably written around 1970,

[5]

but the language never gained much popularity and seems to have disappeared without trace sometime in the 1970s.

BCPL

(for "Basic CPL", although originally "Bootstrap CPL") was a much simpler language based on CPL, intended primarily as a

systems programming

language, particularly for writing

compilers

;

[6]

it was first implemented in 1967, prior to CPL's first implementation. BCPL then led, via

B

, to the popular and influential

C programming language

.

The function MAX as formulated by

Peter Norvig

:

[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 ̸§ The closing section block symbol used here (̸§) is an approximation of the original symbol, in which the cross stroke is vertical. This is available in Unicode as §⃒ but does not display correctly on many systems.

It is thought that CPL was never fully implemented in the 1960s, existing as a theoretical construct with some research work on partial implementations.

[7]

[8]

Peter Norvig has written (for Yapps, a Python

compiler-compiler

) a simple CPL to

Python

translator for modern machines.

[5]

[9]

Fundamental Concepts in Programming Languages

Barron, D. W.; Buxton, J. N.; Hartley, D. F.; Nixon, E.; Strachey, C. (1 August 1963).

"The Main Features of CPL"

. The Computer Journal. 6 (2): 134–143.

doi

:

10.1093/comjnl/6.2.134

.

ISSN

0010-4620

.

"Clive Feather on CPL and BCPL"

. Lysator.liu.se. Retrieved 18 August 2013.

Jensen, Richard (9 December 2020).

""A damn stupid thing to do"—the origins of C"

. Ars Technica. Retrieved 10 December 2020.

Yadav, P. (2005).

Computer and Languages

. Discovery Publishing House.

ISBN

978-81-8356-041-2

.

1

2

3

Norvig, Peter

(23 August 2011).

"Prescient but Not Perfect: A Look Back at a 1966 Scientific American Article on Systems Analysis"

. Scientific American Blog Network. Retrieved 10 December 2020.

Mitchell, John C.;

Apt, Krzysztof

(2003).

Concepts in Programming Languages

. Cambridge University Press.

ISBN

978-0-521-78098-8

.

Coulouris, G. F.

(1 January 1968).

"The London CPL1 compiler"

. The Computer Journal. 11: 26–30.

doi

:

10.1093/comjnl/11.1.26

.

Coulouris, George

(2013).

"Computer Resurrection Issue 62 / The Compiler Compiler - Reflections of a User 50 Years On / The CPL1 Compiler"

. Computer Conservation Society. Retrieved 3 May 2023.

Norvig, Peter.

"Complete Annotated Checkers Program"

. norvig.com. Retrieved 11 June 2021.

How BCPL evolved from CPL, Martin Richards, 2011

Collected papers of Christopher Strachey, section pertaining to CPL, archived at the Bodleian Library, Oxford;

CSAC 71.1.80/C.136-C.184

D.W. Barron, J.N. Buxton, D.F. Hartley, E. Nixon, and C. Strachey.

"The main features of CPL"

The Computer Journal6:2:134-143 (1963), available

online

.

J. Buxton, J.C. Gray, and D. Park.

CPL Elementary Programming Manual, Edition II (Cambridge)

(1966).

University of London Institute of Computer Science and The Mathematical Laboratory, Cambridge.

CPL Working Papers

(1966).

1 1