BCPL

BCPL (Grundlegende Vereinigte Programmiersprache) ist eine verfahrensrechtliche, befehlende und strukturierte Computerprogrammiersprache, die von Martin Richards von der Universität des Cambridges 1966 entworfen ist.

Design

Ursprünglich beabsichtigt, um Bearbeiter für andere Sprachen zu schreiben, ist BCPL nicht mehr in der üblichen Anwendung. Jedoch wird sein Einfluss noch gefühlt, weil ein abgezogener unten und syntaktisch geänderte Version von BCPL, genannt B, die Sprache waren, auf der die C Programmiersprache basiert hat. Diese wichtige Tatsache hat viele C Programmierer dazu gebracht, den backronym Vorher C Programmiersprache humorvoll auszugeben. BCPL war die erste Programmiersprache der geschweiften Klammer, und die geschweiften Klammern haben die syntaktischen Änderungen überlebt und sind ein allgemeines Mittel geworden, Programm-Quellcodebehauptungen anzuzeigen. In der Praxis, auf beschränkten Tastaturen des Tages, haben Quellprogramme häufig den Folge-$ (und $) im Platz der Symbole verwendet {und}.

Das einzeilige '//' Anmerkungen von BCPL, die in C nicht aufgenommen wurden, ist in C ++, und später in C99 wieder erschienen.

BCPL war eine Antwort auf Schwierigkeiten mit seinem Vorgänger Combined Programming Language (CPL), die während des Anfangs der 1960er Jahre geschaffen ist. Richards hat BCPL "das Entfernen jener Eigenschaften der vollen Sprache geschaffen, die Kompilation schwierig machen". Die erste Bearbeiter-Durchführung, für IBM 7094 unter Compatible Time-Sharing System (CTSS), wurde geschrieben, während Richards Projekt-MAC am Institut von Massachusetts für die Technologie (MIT) im Frühling 1967 besuchte. Die Sprache wurde zuerst in einem Vortrag beschrieben, der durch den 1969-Frühling Gemeinsame Computerkonferenz gehalten ist.

Die Sprache ist sauber, konsequent, stark, und tragbar. Es hat sich so möglich erwiesen, kleine und einfache Bearbeiter dafür zu schreiben; angeblich konnten einige Bearbeiter in 16 Kilobytes geführt werden. Weiter war der Bearbeiter von Richards, der selbst in BCPL geschrieben ist, leicht tragbar. BCPL war so eine populäre Wahl, für ein System zu urladen.

Ein Hauptgrund für die Beweglichkeit des Bearbeiters legt seine Struktur an. Es wurde in zwei Teile gespalten: Das Vorderende hat die Quelle grammatisch analysiert und hat O-Code für eine virtuelle Maschine erzeugt, und das Zurückende hat den O-Code genommen und hat ihn in den Code für die Zielmaschine übersetzt. Nur 1/5 des Codes des Bearbeiters musste umgeschrieben werden, um eine neue Maschine, eine Aufgabe zu unterstützen, die gewöhnlich zwischen 2 und 5 Arbeitsmonaten genommen hat. Diese Annäherung ist übliche Praxis später, z.B, Pascal oder Java geworden, aber der Richards BCPL Bearbeiter war erst, um eine virtuelle Maschine für diesen Zweck zu definieren.

Die Sprache ist ungewöhnlich, indem sie nur einen Datentyp hat: Ein Wort, eine festgelegte Zahl von Bit, gewöhnlich gewählt, um sich auf das Maschinenwort der Architektur und der entsprechenden Kapazität auszurichten, jede gültige Lagerungsadresse zu vertreten. Für viele Maschinen der Zeit war dieser Datentyp ein 16-Bit-Wort. Diese Wahl hat sich später erwiesen, ein bedeutendes Problem zu sein, als BCPL auf Maschinen verwendet wurde, in denen der kleinste addressable Artikel nicht ein Wort, aber ein Byte oder auf Maschinen mit größeren Wortgrößen war: 32-bit- und 64-Bit-Wörter, die ihnen erlaubt haben, große Adressräume zu führen.

Die Interpretation jedes Werts wurde von den Maschinenbedienern bestimmt, die verwendet sind, um die Werte zu bearbeiten. (Zum Beispiel, + hat zwei Werte hinzugefügt, die sie zusammen als ganze Zahlen behandeln;! indirected durch einen Wert, effektiv es als ein Zeigestock behandelnd.) In der Größenordnung davon, um zu arbeiten, hat die Durchführung keine Datentypprüfung zur Verfügung gestellt. Die ungarische Notation wurde entwickelt, um Programmierern zu helfen, unachtsame Typ-Fehler zu vermeiden.

Die Fehlanpassung zwischen der Wortorientierung von BCPL und byteorientierter Hardware wurde auf mehrere Weisen gerichtet. Man stellte Standardbibliotheksroutinen zur Verfügung, um Wörter in Byte-Schnuren einzupacken und auszupacken. Später wurden zwei Spracheigenschaften hinzugefügt: der mit dem Bitfeldauswahl-Maschinenbediener und der Infix-Byte-Umweg-Maschinenbediener (angezeigt durch den '%'-Charakter).

BCPL behandelt bindings, der getrennte Kompilationseinheiten auf eine einzigartige Weise abmisst. Es gibt keine benutzersteuerpflichtigen globalen Variablen; stattdessen gibt es einen globalen Vektoren, der ähnlich ist, um üblich" in Fortran "zu verhüllen. Alle zwischen verschiedenen Kompilationseinheiten geteilten Daten umfassen Skalare und Zeigestöcke zu Vektoren, die in einem vorherbestimmten Platz im globalen Vektoren versorgt sind. So werden die Kopfball-Dateien (während der Kompilation eingeschlossene Dateien mit der "BEKOMMEN" Direktive) die primären Mittel, globale Daten zwischen Kompilationseinheiten zu synchronisieren, "GLOBALE" Direktiven enthaltend, dass gegenwärtige Listen von symbolischen Namen, jeder, der mit einer Zahl paarweise angeordnet ist, die den Namen mit dem entsprechenden numerisch gerichteten Wort im globalen Vektoren vereinigt. Sowie Variablen, der globale Vektor enthält auch bindings für Außenverfahren. Das macht das dynamische Laden von Kompilationseinheiten sehr einfach zu erreichen. Anstatt sich auf den Verbindungslader der zu Grunde liegenden Durchführung effektiv zu verlassen, gibt BCPL die Programmierer-Kontrolle des sich verbindenden Prozesses.

Der globale Vektor hat es auch sehr einfach gemacht, Standardbibliotheksroutinen zu ersetzen oder zu vermehren. Ein Programm konnte den Zeigestock vom globalen Vektoren bis die ursprüngliche Routine sparen und es durch einen Zeigestock zu einer alternativen Version ersetzen. Die Alternative könnte das Original als ein Teil seiner Verarbeitung nennen. Das konnte als ein schneller ad hoc Beseitigen-Hilfe verwendet werden.

BCPL ist die Sprache, auf der das Original hallo Weltprogramm geschrieben wurde. Der erste SCHLAMM wurde auch in BCPL (MUD1) geschrieben.

Mehrere Betriebssysteme wurden teilweise oder ganz in BCPL (zum Beispiel, TRIPOS und die frühsten Versionen von AmigaDOS, ein Teil von AmigaOS) geschrieben. BCPL war auch die anfängliche Sprache, die in Samenxerox PARC Altstimme-Projekt, der erste moderne Personalcomputer verwendet ist; unter anderen Projekten wurde das Dokumentenvorbereitungssystem von Bravo in BCPL geschrieben.

Ein früher Bearbeiter, urladen 1969 durch das Starten mit einem Lochstreifen des O-Codes des Atlasses von Martin Richards von 2 Bearbeiter, hat den ICT 1900 Reihen ins Visier genommen. Die zwei Maschinen hatten verschiedene Wortlängen (48 gegen 24 Bit), verschiedener Charakter encodings, und verschiedene gepackte Schnur-Darstellungen - und das erfolgreiche Urladeverfahren haben Vertrauen zur Nützlichkeit der Methode vergrößert. Bis zum Ende 1970 haben Durchführungen für Honeywell 635 und Honeywell 645, IBM 360, der PDP-10, der TX-2, der CDC 6400, UNIVAC 1108, der PDP-9, der KDF 9 und der Atlas 2 bestanden. 1974 wurde ein Dialekt von BCPL an BBN durchgeführt, ohne den ZwischenO-Code zu verwenden. Die anfängliche Durchführung war ein Quer-Bearbeiter, der auf den Tenex PDP-10er-Jahren des BBN veranstaltet ist, und hat direkt die in der BBNs Durchführung der zweiten Generation verwendeten PDP-11 ins Visier genommen STÄRKT verwendet in Arpanet. Es gab auch eine Version, die für die BBC erzeugt ist, die Mitte der 1980er Jahre durch Computerprodukte von Richards, eine Gesellschaft Mikro-ist, die mit John Richards, dem Bruder von Dr Martin Richards angefangen ist. Die BBC Domesday Projekt von der Sprache Gebrauch gemacht. Versionen von BCPL für den Amstrad CPC und Amstrad PCW Computer wurden auch 1986 durch das Softwarehaus des Vereinigten Königreichs Arnor Ltd. veröffentlicht

1979 haben Durchführungen von BCPL für mindestens 25 Architekturen bestanden; 2001 sieht es wenig Gebrauch.

Die Philosophie von BCPL kann durch den Bezug aus dem Buch von BCPL, der Sprache und seinem Bearbeiter zusammengefasst werden:

Das Design und die Philosophie, BCPL haben stark B beeinflusst, der der Reihe nach C beeinflusst hat.

Es gibt Gerüchte, dass BCPL wirklich "für Stiefelstrippe Programmiersprache von Cambridge eingetreten ist" jedoch wurde CPL nie geschaffen, seitdem Entwicklung an BCPL angehalten hat, und das Akronym für das BCPL-Buch wiederinterpretiert wurde.

Beispiele

Diese ganzen und compilable Beispiele sind vom BCPL Vertrieb von Martin Richards.

Druck factorials:

BEKOMMEN SIE "libhdr"

LASSEN SIE Anfang = VALOF

{WEIL ich = 1 bis 5 writef ("Tatsache (%n) = %i4*n", ich, Tatsache (i)) TUE

RESULTIS 0

}\

UND Tatsache (n) = n=0-> 1, n*fact (n-1)

</pre>

Das Aufzählen von Lösungen des N Königin-Problems:

BEKOMMEN SIE "libhdr"

GLOBAL {count:200; all:201 }\

LASSEN SIE Versuch (ld, Reihe, Rd) TEST row=all SEIN

DANN Zählung: = zählen + 1

SONST {LASSEN evtl = alle & ~ (ld | Reihe | Rd)

BIS poss=0 TUN

{LASSEN p = evtl & - evtl

evtl: = evtl - p

versuchen Sie (ld+p

}\

}\

LASSEN SIE Anfang = VALOF

{alle: = 1

WEIL ich = 1 bis 12 TUE

{Zählung: = 0

versuchen Sie (0, 0, 0)

writef ("Zahl von Lösungen von %I2-Königinnen ist %i5*n", ich, Zählung)

alle: = 2*all + 1

}\

RESULTIS 0}\</pre>
  • Martin Richards, [http://www.fh-jena.de/~kleine/history/languages/Richards-BCPL-ReferenceManual.pdf Das BCPL Bedienungshandbuch] (Vermerk M 352, Projekt-MAC, Cambridge, Juli 1967)
  • Martin Richards, BCPL - ein Werkzeug für das Bearbeiter-Schreiben und die Systemprogrammierung (Verhandlungen der Gemeinsamen Frühlingscomputerkonferenz, Vol 34, Seiten 557-566, 1969)
  • Martin Richards, Arthur Evans, Robert F. Mabee, Das BCPL Bedienungshandbuch (MAC TR-141, Projekt-MAC, Cambridge, 1974)
  • Martin Richards, C. Whitby-Strevens, BCPL, die Sprache und sein Bearbeiter (Universität von Cambridge Presse, 1980) internationale Standardbuchnummer 0-521-28681-6

Außenverbindungen


Brian Kernighan / Kriegsschiff
Impressum & Datenschutz