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 das GET-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).