BCPL (Basic Combined Programming Language) ist eine typenlose Systemsprache, die Martin Richards 1966/67 während seiner Zeit am MIT (Project MAC) entwarf. Sie stammt von CPL (Combined Programming Language) ab und war ursprünglich zum Schreiben von Compilern gedacht. BCPL gilt als Vorläufer von C: über die Zwischenstufe B (Ken Thompson, 1969) übernahm C die Block-Syntax mit geschweiften Klammern und den //-Zeilenkommentar. Das moderne BCPL-System von Martin Richards läuft weiterhin auf Linux, macOS und Windows.
Erste Schritte
BCPL wird heute über das Cintcode-System (Cintsys) eingesetzt. Der Compiler erzeugt maschinenunabhängigen Cintcode-Zwischencode, der von einem kleinen Interpreter ausgeführt wird. Das macht BCPL extrem portabel.
cintsys64 -q -c bcpl hello TO hello
cintsys64 -q -c c hello TO hello.cin
cintsys64 -q hello
Die TO-Schreibweise stammt aus den frühen BCPL-Kommandozeilen: bcpl <Quelle> TO <Ziel> kompiliert eine Quelldatei. Die Kurzkommandos b, bc, bs, bcb, bsb, bcl und bsl kompilieren BCPL-Programme direkt zu 32-Bit-Cintcode.
Praxis-Tipps
- Typenlos: BCPL kennt nur einen Datentyp — ein maschinenunabhängiges Wort. Vektoren und Strukturen bildet man über Zeigerarithmetik ab.
- Einfluss: Die
{ }-Blockstruktur,//-Kommentare und dasGET-Include (ähnlich#include) gehen auf BCPL zurück. - Kompakt: Der Compiler ist klein und leicht auf neue Rechner portierbar — genau das machte BCPL in den 1970ern so beliebt.
Verwandte Grundlagen: C/C++-Befehle (direkter Nachfahre über B), Chapel-Befehle (moderne Systemsprache mit C-Backend).