BCPL

This web page has been translated to Serbo-Croatatian language by WHGeeks.

BCPL is a simple typeless language that was designed in 1966 by Martin Richards and implemented for the first time at MIT in the Spring of 1967.

A machine independent interpretive implementation of BCPL is available free of charge for private and academic purposes. If you would like to install it on your machine, have a look at the distribution README file and obtain a copy of bcpl.tgz. or bcpl.zip. The sizes and dates of creation of these files can be found in FILES.

BEWARE: Your browser may silently decompress bcpl.tgz producing a .tar file with name bcpl.tgz. If this happens, it can be de-tarred using: tar xvf bcpl.tgz rather than the expected tar zxvf bcpl.tgz. Your browser may suggest you write the file to bcpl.tgz.gz. If this happens make sure you make the target bcpl.tgz.

This distribution includes all BCPL and C the source files, a collection of demonstration BCPL programs and an experimental native code version running on Linux and DEC Alpha machines. A version for the GP2X handheld linux machine has just been added (but is still under development). As an aside the Cintpos portable operating system is also soon be available for this wonderful little handhend machine.

An older rather out of date version of BCPL is still available via BCPL23-4-04.html. But I no longer recommend that you use it.

The current version is much more compatible with the Cintpos distribution. The main changes are the use of a new BCPL compiler with some extensions including a cross-referencing facility, changes in the directory structure and the use of the environment variables BCPLROOT, BCPLPATH and BCPLHDRS (in place of CINTCODE and BCPLPATH). The Windows CE version of this system has also been upgraded, and, as of 13 July 2004, its distribution seems to work at least on my HP 620LX running Windows CE 2.0.

Free Distribution

This distribution assumes the following overall directory structure:
|
*--BCPL          -- bcpl.tgz or bcpl.zip, 32-bit Cintcode BCPL
|  |
|  *--cintcode
|  |
|  *--bcplprogs
|  |
|  *--natbcpl
|
*--BCPL64         -- bcpl64.tgz or bcpl64.zip, 64-bit Cintcode BCPL
|  |
|  *--cintcode
|  |
|  *--bcplprogs
|  |
|  *--natbcpl    -- Not yet available
|
*--MCPL          -- mcpl.tgz or mcpl.zip
|  |                A typeless language related to BCPL, ML, C and prolog
|  *--mintcode
|  |
|  *--mcplprogs
|  |
|  *--natmcpl
|
*--Cintpos       -- cintpos.tgz or cintpos.zip, a Cintcode interpretive
|  |                version of the Tripos Portable Operating System
|  *--cintpos
|
*--Bench         -- bench.tgz or bench.zip
|  |                A language independent benchmark
|  *--src
|
*--Cobench       -- cobench.tgx or cobench.zip
|                   A language independent benchmark for BCPL style
|                   coroutines
|
*--Tcobench      -- tcobench.tgz or tcobench.zip
|                   A language independent benchmark using both threads and
|                   BCPL style coroutines. (Under development)
|
*--VSPL          -- vspl.tgz or vspl.zip
                    A complete compiler and interpreter for a simple but
                    not trivial language called VSPL. It is implemented
                    in several different ways using several different
                    implemetation languages including BCPL, C, and java.
                    The BCPL version is about 21 pages long.

A precompiled version for Windows is included in the standard distribution as the file os/windows/wincintsys.exe. It can be recompiled using Microsoft Visual C. To run it, edit the file setupwin32.bat and the execute it.

An advantage of an interpretive system is that it is easy to generate data relating memory references to time. Such data can be used to produce a picture of the execution of a program, for example RASTERps.zip contains an A4 sized Postcript diagram of a version of the BCPL compiler compiling itself.

WARNING

This distribution is new and still somewhat unpolished, but even so, it may still be of interest.

My home page.

Martin Richards, last modified 15 November 2011