www.wikidata.de-de.nina.az
Die Basic Combined Programming Language BCPL ist eine 1966 von Martin Richards entwickelte und im Fruhjahr 1967 am Massachusetts Institute of Technology zum ersten Mal implementierte kompilierte systemnahe Programmiersprache abgeleitet von der Combined Cambridge Programming Language CPL Es ist eine Sprache aus der ALGOL Familie Eine Weiterentwicklung von BCPL war die Programmiersprache B die wiederum die Basis fur die Entwicklung der dauerhaft bedeutsamen Programmiersprache C darstellte BCPLParadigmen imperativ strukturiertErscheinungsjahr 1967Designer Martin RichardsEntwickler Martin RichardsTypisierung typenlosBeeinflusst von CPLBeeinflusste B Inhaltsverzeichnis 1 Allgemeine Beschreibung 2 O Code 3 Programmbeispiel 4 Betriebssysteme 5 Literatur 6 Weblinks 7 EinzelnachweiseAllgemeine Beschreibung BearbeitenVorteile von BCPL sind schnelle Erlernbarkeit einfache Implementierung und leichte Portierbarkeit Es ist hauptsachlich gedacht zum Compilerbau zur Systemprogrammierung und als Pioniersprache also als erste Sprache fur ein neues System Ein BCPL Programm besteht aus einzelnen Funktionen die auch rekursiv definiert sein durfen der Funktionsaufruf erfolgt mit Wertparametern BCPL kennt als Datentyp nur das Wort Alle Variablen sind Verweise auf eine Speicherzelle Je nach Operator kann die Variable als Integralwert Speicherreferenz Vektor oder Eintrittspunkt einer Funktion betrachtet werden Es gibt ausschliesslich lokale Bezeichner sowie einen globalen Vektor in dem im gesamten Programm sichtbare Bezeichner also auch die Funktionsnamen zusammengefasst sind Der Inhalt einer Variablen wird als R Wert darf nur auf der rechten Seite einer Zuweisung stehen bezeichnet der Speicherort als L Wert darf nur auf der linken Seite einer Zuweisung stehen Die Operatoren lv und rv erlauben es einen L Wert als R Wert zu interpretieren und umgekehrt also eine Variable zu dereferenzieren BCPL selbst stellt praktisch nur Funktionen zur Bit und Wortmanipulation zur Verfugung Alle anderen Funktionen sind in zusatzlichen Bibliotheken zusammengefasst Ken Thompson entwickelte 1969 die Sprache B die stark von BCPL beeinflusst ist Da B fur die Interpretation auf einer PDP 7 mit 8 kB RAM entwickelt wurde ist B einfacher aufgebaut als BCPL 1 Beispielsweise sind keine verschachtelten Funktionsdefinitionen moglich Aus der Weiterentwicklung von B entstand die Programmiersprache C Es gibt BCPL Implementierungen fur praktisch jedes Betriebssystem die verschiedenen Implementierungen sind nicht quelltextkompatibel Die BCPL Philosophie wird durch folgendes Zitat aus dem nur auf Englisch verfugbaren Buch BCPL The language and its compiler illustriert 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 Die BCPL Philosophie ist nicht die des Tyrannen der alles besser weiss und Regeln daruber erlasst was erlaubt und was verboten ist Stattdessen verhalt sich BCPL mehr wie der Diener der seine Dienste ohne Murren bestmoglich anbietet auch wenn ihm augenscheinlicher Unsinn aufgetragen wird Es wird stets vorausgesetzt dass der Programmierer weiss was er tut Er wird daher nicht durch kleinkarierte Einschrankungen eingeengt BCPL The language and its compilerO Code BearbeitenRichards entwickelte in den spaten 1960er Jahren einen Zwischencode der BCPL maschinenunabhangig machen sollte Der BCPL Compiler erzeugt O Code wobei das O fur Objekt also Objektcode steht Der O Code kann dann von einem weiteren Programm entweder interpretiert oder in spezifischen Maschinencode ubersetzt werden Diese Idee wurde und wird auch in neueren Compilern eingesetzt z B in Form des RTL Register Transfer Language Zwischencodes beim GCC oder dem P Code von UCSD Pascal Java mit der Java Virtual Machine verwendet ebenfalls einen eigenen Zwischencode der allerdings irgendwo zwischen O Code und Maschinencode liegt O Code erlaubt die Trennung von generellen und prozessorspezifischen Ubersetzungsanforderungen Die Portierung des BCPL Compilers wurde durch seine Verwendung extrem erleichtert und BCPL wurde schnell auf verschiedenen Maschinen verfugbar Programmbeispiel BearbeitenGET LIBHDR LET START BE WRITES Hello world N Betriebssysteme BearbeitenTeile des AmigaOS die Komponente AmigaDOS basieren auf TRIPOS einem Mehrbenutzerbetriebssystem der Firma MetaComCo das in der Programmiersprache BCPL entwickelt wurde und tragen daher heute noch Spuren von BCPL So enden beispielsweise BCPL Zeiger in AmigaDOS Datenstrukturen zwangslaufig auf 32 Bit Grenzen da sie um 2 Bit nach rechts verschoben sind was einer Division durch 4 entspricht Weiterhin werden in AmigaDOS oft Zeichenketten verwendet die statt der in der Programmiersprache C ublichen Nullterminierung ein vorangestelltes Langenbyte verwenden Ein ebenfalls in BCPL entwickeltes Betriebssystem der AEG Systemsoftware Abteilung Konstanz fur die eigenen Maschinen AEG 80 40 und AEG 80 60 Stuckzahl unter 100 um 1980 war MARTOS Multi Access Real Time Operating System Ebenfalls fur diese nur in wenigen Projekten eingesetzten damals eigentlich sehr modernen Maschinen wurde die in BCPL implementierte mit C und PL I verwandte Programmiersprache SL3 System Low Level Language entwickelt bei der man systemnah wie in Assembler einzelnen Variablen feste Register zuordnen andererseits aber auch mit komplexen und geschachtelten Strukturen programmieren konnte Literatur BearbeitenM Richards C Whitby Strevens BCPL the language and its compiler Cambridge University Press Cambridge 1980 ISBN 0 521 28681 6 Martin Richards The Portability of the BCPL Compiler In Software Practice and Experience Band 1 Nr 2 1971 S 135 146 Young Persons Guide to BCPL Programming on the Raspberry Pi PDF 9 7 MB Teil 1 und 2Weblinks BearbeitenThe BCPL Cintcode and Cintcode User Guide by Martin Richards 2007 englisch PDF 933 kB Martin Richards s BCPL Reference Manual 1967 englisch Machine independent interpretive implementation of BCPL free of charge for private and academic purposes englisch Einzelnachweise Bearbeiten Dennis Ritchie The Development of the C Language In History of Programming Languages ACM Press and Addison Wesley New York 1996 ISBN 0 201 89502 1 Online abgerufen am 27 Marz 2009 Abgerufen von https de wikipedia org w index php title Basic Combined Programming Language amp oldid 217646903