APPLICATIONSPROGRAMMATION ★ SMALL-C INTERPRETER / C-INTERPRETER SCI PREISGÜNSTIGE ★

NETTER KLEINER COMPILER (Schneider Aktiv)Small-C (CPC Amstrad International)
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Über keine andere Computerhochsprache existieren hierzulande soviel Gerüchte wie über C. Es heißt, C sei schneller als Assembler, was naturgemäß einer Hochsprache nie gelingen kann. Dann hört man einmal, C-Code sei gut verständlich und eigne sich auch hervorragend für die nachträgliche Programmpflege. Ein Gesichtspunkt, den insbesondere Softwarehäuser verlauten lassen, die selbst C-Compiler vertreiben. Von anderer Seite hört man aber, C-Programme seien eigentlich immer nur dem verständlich, der. sie auch geschrieben habe, und auch dem nicht für alle Zeiten. Denn ein C-Programm lasse sich schwerer noch als ein BASIC-Programm entziffern und nachvollziehen.
Dazu ließe sich zwar einwenden, daß die Lesbarkeit eines Programmes jeder Sprache natürlich einzig und allein von dem Programmierer abhängt, aber dennoch muß man zugestehen, daß es C seinem Benutzer zumindest sehr leicht macht, sich unverständlich auszudrücken.
C verführt geradezu dazu.

Doch all diese und andere Gerüchte beweisen, daß C hierzulande, insbesondere auf Home-Computern, noch ein etwas exotisches Dasein fristet. Man munkelt eher darüber, als daß man selbst schon einmal damit programmiert hätte. Immer noch ist Basic allmächtig, gefolgt freilich von Pascal (oder sollte man lieber sagen: von Turbo-Pascal!).

Daß dies nicht überall so ist, zeigt , schon ein kurzer Blick in amerika-nische Computerzeitschriften.

Glaubt man den Artikeln und insbesondere den Werbeseiten, ist C dort längst ein Standard, der eigentlich auch in kaum einem Wohnzimmer . mehr fehlt. C sei nämlich der Schlüssel zum Erfolg, so versprechen die Werbeseiten , denn nur wer C beherrsche, dem öffnen sich alle Türen in Freizeit und Beruf.

“Möglich, daß wir hierzulande etwas pragmatischer sind, möglich aber auch, daß wir nur um ein. zwei Jahre hinterherhinken. Auch das wäre nicht das erste Mal.

Aber gleichgültig, C lohnt allemal das Interesse, auch wenn an dieser Stelle die Superlative der Werbebranche und der Enthusiasten nicht wiedergekäut werden sollen. Denn in keiner anderen als der Computerbranche geht es so sehr an der Wirklichkeit vorbei, von einem Produkt, sei es Hard- oder Software, solch superlativisch zu schwärmen. Wissen wir doch, wie kurzlebig gerade liier alles ist. Immerhin, da gibt es neuerdings auch ein Turbo-Prolog, das natürlich innerhalb kurzer Zeit wieder einmal den Markt umkrempeln dürfte. Und außerdem werden ständig neue Compiler entwickelt und alte verfeinert, so daß sich wirklich nur noch sehr schwer die Grundsatzfrage beant worten ließe, welche Sprache denn die beste und geeigneteste sei. will man sich nicht in einen Allgemeinplatz flüchten und sich um die Antwort drücken, indem man einfach behauptet, es gebe keine universelle Lösung, sondern nur eine von Fall zu Fall. Denn auch das stimmt eigentlich nicht mehr. Zwar läßt sich eindeutig sagen, daß - beispielsweise für eine umfangreichere Datei Verwaltung - ein BASIC-Interpreter doch ziemlich ungeeignet ist, aber ob man nun einen leistungsfälligen PASCAL- oder C-Compiler einsetzt, das sollte eigentlich nicht die rage sein. In solchen Fällen zählt allein das Ergebnis.

C-Anhänger werden nun zwar behaupten. daß C eben allemal geeignet wäre, da die Portabilität dadurch gewährleistet sei. Und in der Tat, das spielt gerade für Software-firmen eine bedeutende Rolle, denn das heißt eben auch, daß ein Programm, das für den Rechner X geschrieben worden ist, auch auf dem Rechner Y läuft. Und im Geschäftsdeutsch bedeutet das eben einen höheren Absatz.

Doch mit der vielbeschworenen Portabilität von C-Programmen ist es auch nicht mehr allzuweit her. Das mag zwar in der Anfangszeit so gewesen sein, aber heute kann es auch durchaus der Fall sein, daß manche PASCAL-Compiler untereinander kompatibler sind als zwei C-Compi ler. Denn hier wie dort dasselbe Problem, jede Firma fügt ihrem Compiler noch ein paar zusätzliche Programmierbonbons zu (die im Falle von C allerdings meistens nicht den Compiler selbst, sondern die Standardbibliotheksfunktionen betreffen) und schon ist es aus mit der Übertragbarkeit. Bestes Indiz dafür ist, daß man just jetzt dabei ist. einen internationalen Standard, den ANSI-Standard ( American National Standards Institute), für die Sprache C ebenso festzuschreiben, wie man das für andere Compiler auch getan hat, nachdem sie sich untereinander nicht mehr verstanden haben.

DAS SMALL-C-PROGRAMM-PAKET . . .

Nun, irgendeinem Standard entspricht der kleine C-Compiler für die Schneider-Computer, den ich vorstellen möchte, wohl auch, setzen wird er aber bestimmt keinen.

Aber das kann man ihm auch nicht zum Vorwurf machen, denn “SMALL-C“, das besagt ja schon, daß dieser Compiler eben nicht alles verstehen kann, was die “BIG-C's“ verstehen. Dennoch bietet er, insbesondere für seinen Preis von 148,- DM, doch einiges. Doch da wir gerade bei den Abweichungen sind, und das will heißen: bei den Negativa, so sollen sie im folgenden kurz vervollständigt wefden.

. . . MANCHMAL WIRKLICH SEHR "SMALL" . . .

SMALL-C ist klein und nicht gerade schnell.

Klein ist er nicht vom Softwareumfang her, wird doch das Small-C-Paket immerhin auf drei Disketten mit insgesamt fünf vollgepackten . Diskettenseiten ausgeliefert. Aber klein ist er deshalb,- weil er bestimmte Elemente der Sprache C nicht liefert.

Man ist es ja gewohnt, daß bei Compilern für Home-Computer nicht alle Sprachelemente vorhanden sind. So kann man es inzwischen durch aus verschmerzen, wenn die Realzahlverarbeitung fehlt, in C ist das der Typ tloat. Auch Bitfelder vermißt man hier wie bei vielen anderen billigen Implementierungen. Aber wirklich schmerzlich ist nur, daß auch tatsächlich grundlegende Elemente nicht vorhanden sind, w structs und unions. Und durch diesen Umstand ist der Name SMALL-C mehr als gerechtfertigt. Wenn in einem C-Compiler structs fehlen, so entspricht das etwa einem PASCAL-Compiler ohne records. Ein mißlicher Zustand, denn so ist man beim Programmieren ständig gezwungen, dies umständlich nachzubilden. Und gerade ein Compiler, der sich wie die ser auch als ein Lehrsystem versteht, sollte eigentlich nicht darauf verzichten. Für ein Lehrsysterr spricht eigentlich auch nicht die Zeit, die der. Compiler benötigt:

Er ist schon quälend langsam.

An Turbo-Pascal sollte man da lieber erst gar nicht denken, denn ein bißchen turbo täte diesem Con piler auch sehr wohl.

Doch sehen wir uns das an einem einfachen Beispiel an. Das erste Programm, das ein Pascal-Freak im allgemeinen laufen lassen sollte, ist nach Vorschlag von Kemighan/Ritchie folgendes:

main ()
{
printf(“Hello, World \n);
}

Dies entspricht in BASIC: print “hello, World“: print, in PASCAL sähe es etwa so aus:

BEGIN
writeln (‘Hello, World);
END.

Man sieht also schon, PASCAL-und C-Programme haben eine gewisse Ähnlichkeit. Geschweifte Klammer auf in C entspricht dem BEGIN in PASCAL, geschweifte Klammer zu dem END. Die offenen Klammern hinter main zeigen an, daß es sich um eine Funktion handelt, der in diesem Fall keine Argumente übergeben werden.

Die Funktion main() muß dabei in jedem Programm auftauchen, stell: sie doch das eigentliche Hauptprogramm dar, von dem aus auf andere Funktionen zurückgegriffen werden kann, ganz ähnlich wie in PASCAL.

Hat man nun aber dieses kleine Programm mithilfe eines Editors (nicht unbedingt des mitgelieferten) eingegeben, so möchte man gerade als Anfänger, an den sich ein Lehrsystem ja eigentlich wenden sollte, schnell Ergebnisse. Doch selbst beieinem so kleinen
Programm chen kann man schon beruhigt eine Pause einlegen.

Beim BASIC-Interpreter ginge die Sache ja schnell: Einfach >ENTER< drücken und schon hätten wir das Ergebnis: Hello, World.

Bei einem PASCAL-Compiler sähe die Sache schon ein bißchen anders aus, bei dem schnellen TURBO-PASCAL geht es allerdings auch sehr fix.

Ganz anders nun bei SMALL-C.

Als erstes heißt es, den Compiler selbst, CC.COM genannt, aufzurufen, der schon eine kleine Weile braucht, bis er unser Programm für den Assembler aufbereitet hat. Denn wenn der Compiler mit seiner Arbeit zu Ende ist, muß der mitgelieferte Assembler MAC.

COM gestartet werden, der auch nicht gerade den Eindruck hinterläßt, er gehöre zu den schnellsten. Aber man revidiert recht bald seinen.Eindruck, wenn man erst einmal den Linker LNK.COM ken-nengelert hat. In Sachen Langsamkeit kennt er wohl kaum Konk-kurrenz.

Drei Arbeitsgänge sind also bei jedem Programm erforderlich:

  1. Kompilieren,
  2. Assemblieren,
  3. den so entstandenen relokätier-baren Code mit der Bibliötheks-datei linken, also zusammenbinden.

Und das braucht seine Zeit.

Man kann sich da gut vorstellen, wie das dann erst bei längeren Programmen aussieht (von denen nicht wenige in Source-Form mitgeliefert werden) aussieht. Da kann man dann schon (falls man sich eine Sut mit-Datei eingerichtet hat) dazwischen Kaffeetrinken gehen. Und nu auch noch angenommen, man hat c so einen hartnäckigen Fehler, dem man auf die Spur kommen möchte, da heißt es dann: Compiler aufrufe: dann Assembler, dann Linker, danr Testen, dann wieder Editor, wieder Compiler, wieder Assembler, wiede Linker, Testen . . .

Man sollte also schon ein wenig Zeit mitbringen.

Für ein Entwicklungs- wie für ein

Lehrsystem (beides möchte dieses Programmpaket laut Handbuch gerne sein) würde man da schon gerne eine etwas komfortablere Fehlerbehandlung sehen, etwa einen symbolischer) Debugger. Das haben allerdings die wenigsten, meist sündhaft teure Compiler. TURBO-PASCAL kennt dies auch nicht. PASCAL MT+ von Digital Research einstmals sehr, sehr teuer, heute sehr preiswert für die Schneider zu bekommen, hat beispielsweise einei solchen Debugger implementiert mit dem man wirklich sehr komlor-tätjel arbeiten kann. Manch anderer Compiler könnte sich gerne eine Scheibe davon bschneiden!

UND DANN DOCH AUCH RSTAUNLICH LEISTUNGSSTARK

Doch nun genug gemeckert! Dieses SMALL-C-Entwicklungssystem hat nämlich auch genügend positive Seiten, denn für seinen Preis wird einem doch schon einiges geboten. Immerhin, die rund 80 Funktionen beinhaltende Bibliotheksdatei ist recht umfangreich, es lassen sich schon ganz ordentliche Programme mit diesem Compiler schreiben, wa sich insbesondere auch daran zeigt, daß sämtliche Programme dieses Pakets in Sourceform mitgeliefert werden, so daß man sie verändern, anpassen und neu kompilieren kann Auch der Compiler selbst liegt in Sourceform vor und ist bis auf wenige Programmzeilen in seiner eigenen Sprache entwickelt, so daß man scheinbar wieder einmal vor der alten Henne-Ei-Frage steht.

Wer also C wirklich lernen möchte, der kann dies liier vorzüglich tun, denn er hat eben die Möglichkeit, alle Programme ausführlich zu studieren. Da kann man schon so man che Kniffe lernen, Und wenn man erst einmal ein fremdes Programm analysiert hat, fällt einem das Seiberprogrammieren auch schon nich't mehr so schwer.

Sowohl Compiler als auch Assembler und Linker bieten die Möglichkeit. durch sog. “Schalter“, die man in der Befehlszeile beim Aufrufen mitangeben kann, ihr Tätigkeit auf dem Bildschirm anzuzeigen, Listen zu erstellen usw. Das kann sich auch bei der Fehlersuchehe als sehr vorteilhaft erweisen. Überhaupt ist die UNIX-Uingebung sehr gut nachgeahmt. So kann man jedem Programm in der Befehlszeile auch Umlenkungsanweisungen mit den Befehlen “>“ und “»“ geben, so also eine Bildschirmausgabe auf den Drucker um zuleiten und anderes mehr. Auch in eigenen Programmen, das ist eine Eigenart eben von C, lassen sich die se Möglichkeiten sehr einfach und sehr komfortabel nutzen.

Der mitgelieferte Assembler ist ein Makro-Assembler und läßt sich übrigens nicht nur im Rahmen dieses Pakets benutzen. Es ist sogar relativ einfach möglich, aus dem 8080-Assembler mit Hilfe einer im Preis enthaltenen Instruktionstabelle in einen Z-80-Assembler zu verwandeln. Das erweist sich als -recht angenehm und nützlich, da ein solches Tool auf der CP/M-Masterdiskette ja bekanntlich fehlt. Außerdem gehören zu dem Programmpaket noch ein Bibliotheksverwalter, mit dem man selbsterstellte Funktionen in Bibliotheken einbinden oder selbst neue Bibliotheken erstellen kann. Außerdem gibt es da auch noch ein Archivverwaltungsprogramm, mit dessen Hilfe man viele kleinere Programm-module zu Archivierungszwecken zusammenbinden kann.

MIT DABEI: TEXT-TOOLS UND UMFANGREICHES HANDBUCH!

Zu erwähnen sind auch noch die mitgelieferten Texttools. Auch wenn der Editor nicht der Computerweisheit letzter Schluß ist, läßt sich doch einiges aus dem Sourcecode ersehen. Außerdem läßt er sich ja, wie jedes andere Programm dieses Paketes auch, umschreiben, wenn man erst einmal den Überblick hat. Die vielen kleinen noch mitgelieferten Programme sind teilweise Kopierprogramme (die durch die Umlenkungsmöglichkeit zu Bildschirm oder Drucker interessant werden) oder Textmanipulationsprogramme, etwa um Texte durch ein Paßwort zu verschlüsseln. Kommen wir zum Handbuch: In Markt & Technik-Manier ist es sehr umfangreich und sauber gedruckt. Daß man als Handbuchleser ständig über Druckfehler hinweglesen muß, das weiß man ja inzwischen, aber daß das Register nur zum Teil abgedruckt ist, das ist wirklich schade, kann man es doch bei einem gut 200seitigen Handbuch gut benötigen.

Ansonsten läßt sich nicht viel Negatives berichten. Auf jede Funktion des Compilers wird ausführlich eingegangen. Außerdem wird eine Möglichkeit gezeigt, wie sich das CP/M-Betriebssystem patchen läßt, damit es in der Eingabezeile auch Kleinbuchstaben akzeptiert, was für manche Programme sehr nützüch ist. (Beispielsweise, wenn man in der Befehlszeile einen String angeben muß, nach dem eine Datei durchsucht werden soll.)

Ansonsten ist es bei diesem Handbuch auch nicht anders als bei anderen Compilerhandbüchern: Es wird nicht der geringste Versuch unternommen, den Anfänger in die Sprache einzuführen. Ein Lehrbuch ist es also nicht, was eigentlicht auch gegen ein „Lehrsystem“ dieses Programmpaketes spricht. Aber, wer C lernen will, wird sowieso über kurz oder lang zu dem Standardwerk der C-Väter zurückgreifen: “The C Programming Language“ von Kernighan und Ritchie. Von den Freaks wird das
Buch liebevoll K&R abgekürzt. Wer englisch kann, sollte übrigens besser auf die Originalausgabe zurückgreifen. denn bei der Übersetzung “Programmieren in C“ im Hanser-Veriag handelt es sich um eines der am schlampigsten übersetzten und aufgemachten Computerbücher überhaupt, dies insbesondere deshalb, weil versucht wird, jeden englischen Fachbegriff ins Deutsche zu übersetzen. So etwas geht meistens schief.

SPEICHERERWEITERUNG IST NOTWENDIG

Ganz zum Schluß soll noch darauf hingewiesen werden, daß SMALL-C sowohl unter CP/M 2.2 als auch unter CP/M 3.0 läuft. Unter CP/M 2.2 ist allerdings eine Speichererweiterung vonnöten, da der Compiler eine TPA von mindestens 56 KB verlangt. Außerdem dürfte das Arbeiten mit nur einem Laufwerk sich als zu umständlich gestalten. Zwei Laufwerke und eine Ramdisk oder zumindest eine große Ramdisk neben dem 3-Zoll-Laufwerk sollte man schon besitzen, wenn man nicht ständig Disketten wechseln möchte. Besonders unter CP/M 2.2 könnte man sonst nämüch allzu schnell die Lust an diesem insgesamt doch sehr leistungsfähigen Paket verlieren.

Jürgen Weiß , SA

★ PUBLISHER: S.C.I
★ YEAR: 19XX
★ CONFIG: 128K + CP/M
★ LANGUAGE:
★ LiCENCE: ???
★ AUTHOR(S): ???
★ PRICE: PUBLIC DOMAIN

★ AMSTRAD CPC ★ DOWNLOAD ★

Dumps disquettes (version commerciale):
» C-Interpreter  SCI  Preisgunstige    ENGLISHDATE: 2020-09-30
DL: 228
TYPE: ZIP
SiZE: 440Ko
NOTE: Dumped by Johnny Farragut ; SuperCard Pro/KF-SCP/Extended DSK
.HFE: Χ
 
» C-Interpreter  SCI  Preisgunstige    ENGLISHDATE: 2020-09-30
DL: 229
TYPE: ZIP
SiZE: 18Ko
NOTE: Dumped by Johnny Farragut ; Extended DSK/40 Cyls
.HFE: Χ

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » BW-COM
» Applications » Cambio de Variables (Amstrad User)
» Applications » RSX Scroll
» Applications » Supra-Basic (Compute Mit)
» Applications » Call 0 (Schneider Aktiv Special)
» Applications » Comal-80/z80 rev. Amstrad
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 178 millisecondes et consultée 2339 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.