from
Jargon File (4.4.4, 14 Aug 2003)
BCPL
//, n.
[abbreviation, "Basic Combined Programming Language") A programming
language developed by Martin Richards in Cambridge in 1967. It is
remarkable for its rich syntax, small size of compiler (it can be run
in 16k) and extreme portability. It reached break-even point at a very
early stage, and was the language in which the original {hello world}
program was written. It has been ported to so many different systems
that its creator confesses to having lost count. It has only one data
type (a machine word) which can be used as an integer, a character, a
floating point number, a pointer, or almost anything else, depending
on context. BCPL was a precursor of C, which inherited some of its
features.
from
The Free On-line Dictionary of Computing (8 July 2008)
BCPL
<language> (Basic CPL) A British systems language developed by
Richards in 1969 and descended from {CPL} (Combined
Programming Language). BCPL is low-level, typeless and
block-structured, and provides only one-dimensional {arrays}.
Case is not significant, but conventionally reserved words
begin with a capital. Flow control constructs include:
If-Then, Test-Then-Else, Unless-Do, While-Do, Until-Do,
Repeat, Repeatwhile, Repeatuntil, For-to-By-Do, Loop, Break
and Switchon-Into-Case-Default-Endcase. BCPL has conditional
expressions, pointers, and manifest constants. It has both
procedures: 'Let foo(bar) Be command' and functions: 'Let
foo(bar) = expression'. 'Valof $(..Resultis..$)' causes a
compound command to produce a value. Parameters are
{call-by-value}.
Program segments communicate via the global vector where
system and user variables are stored in fixed numerical
locations in a single array.
The first BCPL {compiler} was written in {AED}. BCPL was used
to implement the {TRIPOS} {operating system}, which was
subsequently reincarnated as {AmigaDOS}.
["BCPL - The Language and its Compiler", Martin Richards &
Colin Whitby-Stevens, Cambridge U Press 1979].
See {OCODE}, {INTCODE}.
Oxford BCPL differed slightly: Test-Ifso-Ifnot, and section
brackets in place of $( $).
The original {INTCODE} {interpreter} for BCPL is available for
{Amiga}, {Unix}, {MS-DOS}
(ftp://wuarchive.wustl.edu/systems/amiga/programming/languages/BCPL/).
A BCPL compiler {bootstrap} kit with an {INTCODE}
{interpreter} in {C} was written by Ken Yap
<[email protected]>.
(1995-03-26)