Klein-C - Small-C

Klein-C
Entwickler Ron Cain, James E. Hendrix
Erstveröffentlichung 1980 ; Vor 41 Jahren ( 1980 )
Geschrieben in Programmiersprache C
Art Compiler
Lizenz Urheberrechtlich geschützt, aber teilbar

Small-C ist sowohl eine Untermenge der Programmiersprache C , die für ressourcenbegrenzte Mikrocomputer und eingebettete Systeme geeignet ist , als auch eine Implementierung dieser Untermenge. Ursprünglich wertvoll als früher Compiler für Mikrocomputersysteme, die in den späten 1970er und frühen 1980er Jahren verfügbar waren, war die Implementierung auch als Beispiel nützlich, das einfach genug für Lehrzwecke ist.

Der ursprüngliche Compiler, geschrieben in Small-C für den Intel 8080 von Ron Cain, erschien in der Mai-Ausgabe 1980 von Dr. Dobb's Journal of Computer Calisthenics & Orthodontia . James E. Hendrix verbesserte und erweiterte den ursprünglichen Compiler und schrieb The Small-C Handbook . Ron Bootstrap - Klein-C auf der SRI International PDP-11 /45 Unix - System mit einem Konto zur Verfügung gestellt von John Bass für kleine C - Entwicklung. Der bereitgestellte Quellcode wurde mit Genehmigung des Managements in die Public Domain freigegeben . Small-C war für winzige Computer in ähnlicher Weise wichtig wie die Bedeutung von GCC für größere Computer. Genau wie seine Unix- Gegenstücke generiert der Compiler Assembler-Code , der dann von einem verfügbaren Assembler in Maschinencode übersetzt werden muss .

Small-C ist ein retargetable Compiler . Die Portierung von Small-C erfordert lediglich, dass der Back-End- Codegenerator und die Bibliotheks-zu-Betriebssystem-Schnittstellenaufrufe für den Zielprozessor umgeschrieben werden.

Sprachuntergruppe

"Im Mai 1980 veröffentlichte Dr. Dobb's Journal einen Artikel mit dem Titel "Ein kleiner C-Compiler für die 8080er", in dem Ron Cain einen kleinen Compiler für eine Teilmenge der Sprache C vorstellte. Das interessanteste Merkmal des Compilers neben seiner geringen Größe war die Sprache, in der es geschrieben wurde – die, in der es kompiliert wurde. Es war ein Selbst-Compiler! (Obwohl dies heute alltäglich ist, war es damals eine ziemlich neue Idee.) Mit einem einfachen One-Pass-Algorithmus generierte sein Compiler Assemblersprache für den 8080-Prozessor. Da sie klein war, hatte sie ihre Grenzen. Sie erkannte nur Zeichen, Ganzzahlen und eindimensionale Arrays beider Typen. Die einzige Schleifensteuerungsvorrichtung war die while-Anweisung. Es gab keine Booleschen Operatoren, also die Stattdessen wurden bitweise logische Operatoren & (AND) und | (OR) verwendet.Aber trotz dieser Einschränkungen war es eine sehr fähige Sprache und eine Freude zu verwenden, insbesondere im Vergleich zur Assemblersprache.

Ron erkannte die Notwendigkeit von Verbesserungen und ermutigte mich, eine zweite Version zu erstellen, die im Dezember 1982 auch in Dr. Dobb's Journal erschien. Der neue Compiler erweiterte Small C um (1) Codeoptimierung, (2) Dateninitialisierung, (3) bedingte Kompilierung, (4) die externe Speicherklasse, (5) die Anweisungen for, do/while, switch und goto, ( 6) Kombinationszuweisungsoperatoren, (7) Boolesche Operatoren, (8) der Einerkomplementoperator, (9) lokale Blockvariablen und (10) verschiedene andere Merkmale. 1984 entwickelten und veröffentlichten Ernest Payne und ich dann eine CP/M-kompatible Laufzeitbibliothek für den Compiler. Es bestand aus über 80 Funktionen und umfasste die meisten der in der UNIX C Standard I/O Library enthaltenen Funktionen, die sich auf die CP/M-Umgebung bezogen. Dies wurde Version 2.1 und das Thema von The Small C Handbook. "

Siehe auch

  • BDS C (1979) – C-Compiler für Z80- und 8080-Systeme
  • MISOSYS C (1985) - C-Compiler für TRS-80 (Z80 CPU)
  • Tiny C (2002) – C-Compiler für langsame x86- und ARM-Computer mit wenig Speicherplatz

Small-C-Varianten

Verweise

Anmerkungen

  • Ron Cain, "A Small C Compiler for the 8080's", Dr. Dobb's Journal , April–Mai 1980, S. 5–19
  • James E. Hendrix, The Small-C Handbook , Reston 1984, ISBN  0-8359-7012-4
  • James E. Hendrix, A Small C Compiler: Language, Usage, Theory, and Design , M & T Books 1988, ISBN  0-934375-88-7
  • James E. Hendrix, Small C Compiler , M & T Books 1990, ISBN  1-55851-124-5

Externe Links