Zum Forum
Passwort vergessen?
Noch keinen Account?
lexikon
Hauptseite
Zufälliger Artikel
Diskussion
Diskussion : BCPL
Links
Forum
Portale
Reisen
Versicherung
Inhaltsverzeichnis
Hauptmenü
Home
Editorial
Bildung
E-Learning
Fremdsprachen
Magazin
Wissen
Wörterbücher
Enzyklopädien
Expertendienste
Wissenswertes
Praktische Ratgeber
--------------------------
Biologie
Chemie
Computer
Film/ Theater
Geografie
Geschichte
Jura
Kunst
Literatur
Mathematik
Medizin
Musik
Philosophie
Physik/ Astronomie
Politik
Psychologie
Religionen
Sport
Umwelt
Wirtschaft
Reisen
Lexikon
Versicherung
Suchen
Schnellsuche
Suchmaschinen
Metasuchmaschinen
Webkataloge
News
Treffpunkt
Chat
Forum
Suche
Schnellsuche
Sitemap
Kontakt
Impressum
BCPL
Stichpunkte
Allgemein
BCPL (Basic Combined Programming Language) ist eine um 1967 von Martin Richards entwickelte
kompilierte
abgeleitet von der Combined/Cambrige Programming Language CPL
systemnahe Programmiersprache
Es ist eine Sprache aus der ALGOL-Familie
also als erste Sprache für ein neues System
einfache Implementierung und leichte Portierbarkeit. Es ist hauptsächlich gedacht als "Bootstrapping Language"
Vorteile von BCPL sind schnelle Erlernbarkeit
der Funktionsaufruf erfolgt mit Wertparametern
Ein BCPL-Programm besteht aus einzelnen Funktionen die rekursiv definiert sein dürfen
BCPL kennt als Datentyp nur das Wort
Speicherreferenz
sowie ein globaler Vektor in dem im gesamten Programm sichtbare Bezeichner (also auch die Funktionsnamen) zusammengefasst sind
je nach Operator kann die Variable als Integer Wert
alle Variablen sind Verweise auf eine Speicherzelle
Vektor oder Beginn einer Funktion betrachtet werden (kontext typisiert). Es existieren ausschließlich lokale Bezeichner
und umgekehrt (also eine Variable zu dereferenzieren.) BCPL selbst stellt praktisch nur Funktionen zur Bit- und Wortmanipulation zur Verfügung
Der Inhalt einer Variablen wird als R-Wert (darf auf der rechten Seite einer Zuweisung stehen) bezeichnet
alle anderen Funktionen sind in zusätzlichen Bibliotheken zusammengefasst
der Speicherort als L-Wert (darf auf der linken Seite einer Zuweisung stehen.) Die Operatoren lv und rv erlauben es einen L-Wert als R-Wert zu interpretieren
aus der sich später C entwickelte
entwickelte dabei jedoch "versehentlich" eine eigene Sprache
B
Ken Thompson versuchte BCPL auf die PDP-7 zu portieren
bedingt durch die Typenlosigkeit eignet es sich jedoch nicht für 8-Bit Rechner
Es gibt BCPL-Implementierungen für praktisch jedes Betriebssystem
Leider sind die verschiedenen Implementierungen nicht quelltextkompatibel
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. Übersetzung: Die BCPL-Philosophie ist nicht die des Tyrannen
Die BCPL-Philosophie wird durch folgendes Zitat aus dem nur auf Englisch verfügbaren 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
was erlaubt und was verboten ist
BCPL acts more as a servant offering his services to the best of his ability without complaint
der alles besser weiß und Regeln erlässt
der seine Dienste ohne Murren bestmöglich anbietet
Stattdessen verhält sich BCPL mehr wie der Diener
auch wenn ihm augenscheinlicher Unsinn aufgetragen wird
dass der Programmierer weiß
Es wird stets vorausgesetzt
was er tut
"Verbergen") 1 O-Code 2 Codebeispiel 3 Betriebssysteme 4 Literatur 5 Links [Bearbeiten]
Er wird daher nicht durch kleinkarierte Einschränkungen eingeengt. Inhaltsverzeichnis showTocToggle("Anzeigen"
O-Code
der BCPL maschinenunabhängig machen sollte
Richards entwickelte in den späten 1960er Jahren einen Zwischencode
also Objektcode steht
wobei das O für Objekt
Der BCPL-Compiler erzeugt O-Code
Der O-Code kann dann von einem weiteren Programm entweder interpretiert oder in spezifischen Maschinencode übersetzt 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 Bytecode
der allerdings irgendwo zwischen O-Code und Maschinencode liegt
O-Code erlaubt die Trennung von generellen und prozessorspezifischen Übersetzungsanforderungen
Die Portierung des BCPL-Compilers wurde durch seine Verwendung extrem erleichtert und BCPL wurde schnell auf verschiedenen Maschinen verfügbar. [Bearbeiten]
Codebeispiel
GET "LIBHDR" LET START () BE $( WRITES ("Hello
world!*N") $) [Bearbeiten]
Betriebssysteme
Teile des AmigaOS (die Komponente AmigaDOS) basieren auf Tripos
das in der Programmiersprache BCPL entwickelt wurde - und tragen daher heute noch Spuren von BCPL
einem Multiuserbetriebssystem der Firma MetaComCo
So enden beispielsweise alle Pointer zwangsläufig auf 32 Bit-Grenzen
was einer Division durch 4 entspricht. [Bearbeiten]
da sie um 2 Bit nach rechts geshiftet sind
Literatur
M
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
Vol
Software - Practice and Experience
Nr
1
2
S.135-146 1971 [Bearbeiten]
Links
http://cm.bell-labs.com/cm/cs/who/dmr/bcpl.html en:BCPL it:BCPL ja:BCPL pl:BCPL
Dieser Artikel basiert auf dem Artikel
BCPL
aus der freien Enzyklopädie
wikipedia
und steht unter der
GNU Lizenz für freie Dokumentation
. In der wikipedia ist eine
Liste der Autoren
verfügbar.
Kontingenz (Luhmann)
Aramon
Barbera
Blauburger
Blauburgunder
Blaufränkisch
Nuernberg-unschlitthaus-v-S.jpg
[ Zurück ]
Inhalt Lexikon:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
1
2
3
4
5
6
7
8
9
Chat
|
Lexikon
|
Reisen
|
Versicherung
|
Forum
|
Kontakt