community
directory
books
authors
images
encyclopedia

Email:
Password:
Register

Knowledgerush Search

 

Google
  Web knowledgerush


Search for images of BCPL


Message boards   Post comment

BCPL

BCPL (Basic Combined Programming Language) is a computer programming language that was designed by Martin Richards of the University of Cambridge (1966) as a response to difficulties with its predecessor CPL during the 1960s. The first compiler implementation was written while he was visiting MIT (spring -- 1967). The language was first described in a paper presented to the 1969 Spring Joint Computer Conference. Dennis Ritchie would later develop the C programming language from BCPL.

The language is clean, powerful, and portable. It proved possible to write small and simple compilers for it and was therefore a popular choice for bootstrapping a system. Reputedly some compilers could be run in 16 kilobytes. Several operating systems were written partially or wholly in BCPL (for example, TRIPOS or Amiga Kickstart). A major cause of its portability lay in the form of the compiler. It was split into two parts. The front end parsed the source and generated O-code for a virtual machine; the backend took the O-code and translated it into the code for the target machine. Soon afterwards this became fairly common practice, cf. Pascal or Java, but the Richards BCPL compiler was the first to define a virtual machine for this purpose.

The language is unusual in having only one data type: a word (a fixed number of bits, usually chosen to align with the architecture's machine word). The interpretation of any value was determined by the operators used to process the values (so, + added two values together treating them as integers; ! indirected through a value effectively treating it as a pointer). In order for this to work, the implementation provided no type checking.

It is reputedly the language in which the original hello world program was written. The first MUD was also written in BCPL [1].

In 1979 implementations existed for at least 25 architectures; in 2001 it sees little use. Its successor, C, is now the language of choice for systems programming.

The design of BCPL strongly influenced B which in turn influenced C.

The philosophy of BCPL can be summarised by quoting from the book (BCPL, the language and its compiler):

The philosophy of BCPL is not one of the tyrant who thinks he knows best and lays down the law on what is and what is not allowed; rather, BCPL acts more as a servant offering his services to the best of his ability without complaint, even when confronted with apparent nonsense. The programmer is always assumed to know what he is doing and is not hemmed in by petty restrictions.

Sources

  • BCPL, the language and its compiler, Richards, M and Whitby-Stevens, C. Cambridge University Press, 1980. (ISBN 0-521-28681-6)
  • BCPL - a tool for compiler writing and systems programming, Richards, M. Proceedings of the Spring Joint Computer Conference, vol 34, pp 557-566, 1969.
  • the Jargon file:
  • Martin Richards Home Page: http://www.cl.cam.ac.uk/users/mr/
  • MR's BCPL distribution: http://www.cl.cam.ac.uk/users/mr/BCPL.html

Referenced By

Alphabetical list of programming languages | AmigaDOS | AmigaOS | CPL programming language | C (Programming Language) | C Language | C Plus Plus | C Plus Plus programming language | C programming language | C programming language/Evolution | C programming language/K and R | C programming language/K and R C | Computer programming language | Cplusplus | Dennis M. Ritchie | Dennis Ritchie | Hello, world! | Hello World | Hello world program | K and R | K and R C | Kent Recursive Calculator | List of computing topics | List of esoteric programming languages | List of programming languages | O-code machine | P programming language | ProgrammingLanguage | ProgrammingLanguages | Programming Languages | Programming language | Programming methodology | System programming | Systems programming | TRIPOS | The hello world program | Troff | Workbench

 

Compose Your Message

Your Email Address or Pen Name (optional):
Subject:
Your Message:
 

 

 

 

 

 

This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article "BCPL".

 

Contact UsPrivacy Statement & Terms of Use

 
Copyright © 1999-2003 Knowledgerush.com. All rights reserved.