From 04e68443040c7abad84d66477e98f93bed701760 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Mon, 4 Feb 2019 13:09:03 +0100 Subject: Initial import --- doc/user-manual/1.7.3-pd/doc/pd.Handbuch.Teil1 | 924 +++++++++++++++++++++++++ 1 file changed, 924 insertions(+) create mode 100644 doc/user-manual/1.7.3-pd/doc/pd.Handbuch.Teil1 (limited to 'doc/user-manual/1.7.3-pd/doc/pd.Handbuch.Teil1') diff --git a/doc/user-manual/1.7.3-pd/doc/pd.Handbuch.Teil1 b/doc/user-manual/1.7.3-pd/doc/pd.Handbuch.Teil1 new file mode 100644 index 0000000..cdeca13 --- /dev/null +++ b/doc/user-manual/1.7.3-pd/doc/pd.Handbuch.Teil1 @@ -0,0 +1,924 @@ + EUMEL-Benutzerhandbuch + + TEIL 1: Einführung + +Vorwort + +Lieber EUMEL-Nutzer! + +Ihnen liegt hier das EUMEL-Benutzerhandbuch zur Public-Domain-Version 1.7.3 +vor. Es gliedert sich in mehrere Teile. Der erste Teil des Benutzerhandbuchs +soll dem zukünftigen Benutzer den "Einstieg" in das EUMEL-System erleichtern. +Dazu werden die wichtigsten Eigenschaften des EUMEL-Systems vorgestellt. +Danach zeigen wir eine Beispielsitzung. Anschließend werden einige +prinzipielle Konzepte des EUMEL-Systems vermittelt. Den Abschluß bildet ein +kleines EUMEL-Wörterbuch. + +Die übrigen Teile des EUMEL-Benutzerhandbuchs dokumentieren jeweils ein oder +mehrere abgeschlossene Einheiten des Systems. Ein EUMEL-Nutzer braucht so nur +die ihn interessierenden Teile zu lesen. Ein Programmierer z.B. sollte + + Einführung, Supervisor/Monitor, Editor, ELAN-Compiler und Dateien + +durcharbeiten. Für Programmierer, die noch keine Erfahrung mit ELAN besitzen, +ist der Teil "Erste Hilfe" gedacht. Weiterhin werden die Teile über Dateien +und Standardpakete oft benötigt. Ein Nutzer, der vorwiegend an der Textbe- +und verarbeitung interessiert ist, braucht dagegen nur + + Einführung, Supervisor/Monitor, Dateien, Editor und Textkosmetik. + +Der OPERATOR/Spooler-Teil ist nur für diejenigen Programmierer gedacht, die +ein EUMEL-System betreuen. Weitere Informationen finden System-Programmierer +im System-Handbuch bzw. in der Veröffentlichung des Quellcodes. + + +1. Eigenschaften des EUMEL-Betriebssystems + +Das EUMEL-Betriebssystem (Extendable multi User Microprocessor ELANsystem) +ist ein Betriebssystem, das z.Z. für den Einsatz auf Mikroprozessoren vorge- +sehen ist. Es weist u.a. folgende Eigenschaften auf: + +- Das EUMEL-System ist ein "Time sharing"-Betriebssystem, d.h. mehrere Be- + nutzer können gleichzeitig an einem Rechensystem arbeiten (z.B. Programme + übersetzen, bearbetten (rechnen) oder erstellen (edieren)). Dabei wird die + verfügbare Rechen- und Speicherkapazität zwischen den Benutzer-Prozessen + dynamisch aufgeteilt. + +- Jeder Benutzer richtet (mindestens) eine Task ein, in der er sich Programme + und/oder Dateien halten kann, auf die andere Nutzer nicht zugreifen können. + Tasks können von einem Terminal "abgekoppelt" und trotzdem - sofern aus- + reichend freie Rechnerkapazität zur Verfügung steht - als Batch-Auftrag im + Hintergrund weiter bearbeitet werden. + +- Das EUMEL-Betriebssystem ist so konzipiert, daß der Sicherheit des Systems + besondere Beachtung geschenkt wurde. Zu diesem Zweck werden in bestimmten + zeitlichen Abständen sogenannte Restart-Punkte auf dem externen Speicher- + medium gesichert. In diesen Sicherungen wird der augenblickliche System- + Zustand konserviert, so daß bei Netzausfall oder eventuellen System-Zu- + sammenbrüchen der Betrieb übergangslos wieder aufgenommen werden kann, mit + der Ausnahme des Verlustes der Daten, die nach dem letzten Restart-Punkt + aufliefen. + +- "Tasks" und/oder Dateien können vor dem unbefugten Zugriff durch "Pass- + words" geschützt werden. Ein weitergehender Schutz wird durch die Möglich- + keit von Password-Algorithmen vom EUMEL-System angeboten, so daß den Be- + langen des Datenschutzes Rechnung getragen werden kann. + +- Das EUMEL-Betriebssystem ist leicht erweiterbar. Da der Kern des Betriebs- + systems in ELAN geschrieben ist, können Anwender selbst leicht Erweiterun- + gen bzw. lokale Modifikationen in das System ein- bzw. anfügen. Dabei kön- + nen bestimmte Erweiterungen nur bestimmten Benutzern oder Benutzergruppen + zur Verfügung gestellt werden. Da die Programmiersprache ELAN selbst er- + weiterbar ist, ist es möglich, verschiedenen Anwendern oder -gruppen unter- + schiedliche Erweiterungen der Sprache anzubieten. + +- In dem EUMEL-Betriebssystem ist eine implizite Dateihierarchie realisiert. + Dies wird erreicht, indem den Tasks Dateien zugeordnet werden. Man kann + Dateien im Taskbaum von "Vater-Tasks" holen oder zu ihnen schicken. Lokale + Dateien werden mit dem Beenden einer Task automatisch gelöscht, während + Dateien, die längerfristig gehalten werden sollen, bei längerlebenden Tasks + gehalten werden müssen. + +- Die Kommandosprache ("job control language") des EUMEL-Systems entspricht + der ELAN-Syntax (Prozeduraufrufe). Das befreit den Anwender von der + Schwierigkeit, zwei verschiedenartige Sprachen zu erlernen. Darüber hinaus + können eine oder mehrere Anweisungen der Kommandosprache in ELAN-Programmen + enthalten sein. Z.B. ist es möglich, Kommandos vom Editor ausführen zu + lassen oder den Editor von einem Programm aus aufzurufen. + +- Die Dienstprogramme des EUMEL-Systems, wie z.B. der EUMEL-Editor, sind + geräteunabhängig und meist erweiterbar konzipiert. Zudem sind sie auch in + ELAN formuliert, so daß Änderungen und Korrekturen leicht vorgenommen + werden können. + +- Das EUMEL-System verwaltet seinen Hauptspeicher nach dem "demand-paging"- + Prinzip. Daten und/oder Programme werden daher in Seiten von 512 Bytes + aufgeteilt. Nur diejenigen Seiten, die zu einem Zeitpunkt wirklich benötigt + werden, befinden sich im Speicher. Dadurch kann sich das EUMEL-System auf + wechselnde Speicherplatz-Anforderungen optimal einstellen. + +- Für alle Programme wird reentranter Code erzeugt. Somit können mehrere + Benutzer Code gleichzeitig benutzen ("sharable code"), wobei der Code nur + einmal vorhanden sein muß. Dies ist insbesondere für Dienstprogramme wie + z.B. Compiler, Editor usw. wichtig. + +- Dateien können ebenfalls (wie Programme) von mehreren Benutzern gemeinsam + verwendet werden, ohne daß mehrere Kopien davon hergestellt werden müssen + Das System sorgt mit seinen Paging-Fähigkeiten automatisch für das "sharen" + von Dateien. Erfolgt jedoch ein Schreibzugriff, so wird nur für den + schreibenden Benutzer eine Kopie angelegt. + +- Das EUMEL-System bietet gute Textbe- und -verarbeitungsmöglichkeiten. + Grundlage dafür ist der bildschirmorientierte Editor (eine Entwicklung der + GMD). Der Editor erlaubt auch ein "multi window editing" und die Ausführung + von beliebigen Kommandos. Zusätzlich gibt es eine Reihe von Programmen zur + "Textkosmetik", die es erlauben, Texte zeilen- und seitenweise zu forma- + tieren. Dabei ist es möglich, unterschiedliche Schriftarten zu verwenden. + + +2. Eine kleine Beispielsitzung mit EUMEL + +Zum ersten Kennenlernen wird hier ein Beispiel einer EUMEL-Sitzung darge- +stellt. Diese Vorlage kann man am Rechner "nachspielen". Da die Reaktion des +Systems hier auf dem Papier nur unvollkommen wiedergegeben werden kann, ist +diese Beispielsitzung durch "trockenes" Lesen (ohne Rechner) sicherlich etwas +schwieriger zu verstehen als durch Nachspielen. + +Alle Ausgaben des EUMEL werden mit + +----> + +gekennzeichnet, alle Benutzereingaben haben + +<---- + +als Kennzeichen. Spezielle Tasten werden groß geschrieben, z.B. + + RETURN + +als Bezeichnung für die RETURN-Taste. + + +Anfang + +Im Multi-User-System können gleichzeitig mehrere Benutzer aktiv sein. Dabei +braucht jeder ein eigenes "Zimmer" im "EUMEL-Haus", in dem er arbeiten kann, +ohne andere zu stören. Diese "Zimmer" heißen hier "Tasks" und haben Namen. +Zu Beginn muß der Benutzer sich an seinem Bildschirm eine Task erzeugen. Dazu +muß er das Betriebssystem aktivieren: + +<---- SV + +EUMEL meldet sich: EUMEL Version 1.7.3/M + +----> gib supervisor kommando: + +Dann muß der Benutzer sich einen Tasknamen ausdenken (z.B. "ottokar") und +ein Kommando zum Einrichten einer neuen Task geben: + +<---- begin ("ottokar") RETURN + +Daraufhin wird eine neue Task erzeugt, sie meldet sich: + +----> gib kommando: + +Jetzt kann die eigentliche Sitzung beginnen. + + +Programm erstellen + +Wir schreiben ein kleines Programm zur Primzahlberechnung: + +<---- edit ("prim") RETURN + +----> neue datei einrichten (j/n) ? + +<---- j + +Es soll eine neue Datei mit dem Namen 'prim' eingerichtet werden, daher ant- +worten wir mit 'j'. Die Datei ist zu Anfang leer. Der Editor zeigt nur die +Überschrift, der restliche Bildschirm ist leer. Wir können jetzt unser Pro- +gramm eingeben: + + INT VAR zahl := 3 ; + WHILE zahl <= 1000 REP + drucke falls primzahl ; + zahl INCR 2 + PER . + + drucke falls primzahl : + INT VAR teiler := 3 ; + WHILE teiler * teiler <= zahl REP + IF teiler gefunden + THEN LEAVE drucke falls primzahl + FI ; + teiler INCR 2 + PER ; + put (zahl) ; + line . + + teiler gefunden : + zahl MOD teiler = 0 . + +Bei der Eingabe des Programms können wir auch die Funktionstasten benutzen. +Die genauen Funktionen sind in den folgenden Teilen des Benutzerhandbuchs +erklärt. Für den Anfang gilt aber: Probieren geht über Studieren! + +Wir verlassen den Editor: + +<---- ESC q + +----> gib kommando: + + +Programm übersetzen und ausführen + +<---- run RETURN + +----> ("prim") + +Der Dateiname ('prim') wird automatisch ergänzt und das Programm wird vom +ELAN-Compiler übersetzt. Dabei erscheinen die Nummern der gerade übersetzten +Zeilen in der linken unteren Bildecke. Wenn keine Fehler gefunden wurden, +wird das Programm anschließend ausgeführt. Dann sollten die Primzahlen von +3 bis 1000 erscheinen. + + +Ein fehlerhaftes Programm korrigieren + +Falls der ELAN-Compiler Fehler findet, wird das Programm nicht ausgeführt. +Das System geht automatisch in den Editor, der jetzt zwei Dateien "parallel" +auf dem Bildschirm zeigt. Die obere enthält die Fehlermeldungen, die untere +das ELAN-Programm, so daß Korrekturen leicht möglich sind. Dabei kann man gut +folgende Editor-Funktionen benutzen (ausprobieren!): + + ESC ESC n RETURN positioniert auf Zeile n + + HOP UNTEN + zum Blättern + HOP OBEN + + ESC w wechselt zur jeweils anderen Datei (z.B. um in der + Fehlermeldungsdatei weiterzublättern) + +Nach Verlassen des Editors (ESC q) kann das Programm wieder gestartet werden. + + +Ändern des Programms + +<---- edit RETURN + +----> ("prim") + +Auch hier wird der Dateiname zum Kommando 'edit' automatisch ergänzt. Jetzt +kann das Programm mit den üblichen Editor-Möglichkeiten verändert werden. +Vorschläge: + + - Man ändere den Bereich (Vorsicht: maxint ist 32767). + - Man teste die Teiler bis zur Zahl selbst hoch. + - Man benutze REALs anstelle von INTs. + - Man suche Zwillinge. + +An Editor-Möglichkeiten könnte man ausprobieren: + + RUBOUT löscht ein Zeichen. + + RUBIN schaltet den Einfügezustand ein. Das nächste RUBIN + schaltet ihn wieder ab. + + HOP UNTEN zum Anfang des Bildschirms oder "blättern nach oben". + + HOP OBEN zum Ende des Bildschirms oder "blättern nach unten". + + HOP RUBOUT am Zeilenanfang löscht die ganze Zeile. + + HOP RUBIN schaltet "Zeilen einfügen" ein. Das nächste HOP RUBIN + schaltet es wieder aus. + + +Datei löschen + +<---- forget RETURN + +----> ("prim") + +----> löschen (j/n) ? + +<---- j + +----> gib kommando: + + +Ende einer Sitzung + +<---- end RETURN + +----> task loeschen (j/n) ? + +<---- j + +----> EUMEL Version 1.7.3 / M + + + +3. Einige Eigenschaften des EUMEL-Systems + +In diesem Abschnitt werden wir einige Eigenschaften des EUMEL-Systems +schildern, die zum korrekten Arbeiten mit dem System wichtig sind. Um das +Verständnis zu erleichtern, verwenden wir für einige System-Eigenschaften +Modelle, die das Verhalten des Systems an typischen Merkmalen widerspiegeln +spiegeln sollen, die aber - wie bei allen Modellen - kein exaktes Abbild +darstellen. + + +Tasks, Supervisor und Monitor + +Zuerst versuchen wir zu erklären, wie sich ein Benutzer im EUMEL-System +anmeldet und den Mechanismus, wie man bestimmte Leistungen vom System +anfordert (Einige Ideen dieses ersten Abschnittes gehen auf W. Ambros, +Rhein-Sieg Gymnasium, St. Augustin, zurück). + +Stellen wir uns das EUMEL-System als ein riesiges Verwaltungsgebäude vor, +wie es in unseren Städten in den letzten Jahren überall gebaut wurde. Ein +Verwaltungsangestellter beginnt frohgemut seinen ersten Arbeitstag. Da das +Gebäude so riesig ist, kann er sein Zimmer nicht finden. Aber er ist pfiffig: +er fragt einfach den freundlichen Pförtner, der ihn in sein Zimmer führt. + +So ist es im EUMEL-System: +Wenn man eine Arbeit neu beginnen will, muß man sich beim Supervisor (das ist +der Pförtner in unserem Modell) anmelden. Dazu muß man erstmal den Supervisor +"wecken" (wie mit einer Klingel): wir drücken die Supervisor-Taste (im +folgenden mit SV abgekürzt). Der Supervisor meldet sich dann mit + + gib supervisor kommando : + +Nun kann man eine Task anmelden. Das ist ein Zimmer im EUMEL-System, in dem +man arbeiten kann, ohne von den anderen Benutzern gestört zu werden. Ist die +Task noch nicht vorhanden, wird sie eingerichtet. Dann leitet uns der Super- +visor in die angegebene Task. + +Der Verwaltungsangestellte ist nun vom Pförtner zu seinem Büro geleitet +worden. Dort empfängt ihn der Bürovorsteher: "Was möchten Sie arbeiten?" +Unser Angestellter kann nun (z.B.) sagen, daß er etwas schreiben möchte. Der +Bürovorsteher führt ihn in einen speziellen Schreibraum, in dem einige +spezielle Einrichtungen und Geräte für komfortables Schreiben stehen. + +So sieht es im EUMEL-System aus: +Nachdem man eine neue Task eingerichtet hat oder eine bereits vorhandene +fortsetzen will, gelangt man zum Monitor (das ist unser Bürovorsteher), der +sich mit + + gib kommando : + +meldet. Nun kann man verschiedene Arbeiten verrichten, wie z.B. den Editor +rufen, um einen Text oder ein Programm zu schreiben: + + edit ("meine datei") + +In diesem Schreibzimmer kann unser Angestellter irgendetwas schreiben, z.B. +ein Programm, einen Liebesbrief, ein Testament oder ganz etwas anderes. Hat +er eine Frage oder will er eine besondere Leistung, dann kann unser Ange- +stellter den Bürovorsteher aus dem Schreibzimmer rufen. Hat er seine Schreib- +arbeit beendet, geht er aus dem Zimmer und trifft dort wiederum auf den auf- +merksamen Vorsteher. Ihm kann er nun sagen, daß er das Schriftstück (z.B.) +drucken oder von einem Dolmetscher übersetzen lassen will. + +Im EUMEL-System: +Im Editor schreibt man Texte oder Programme. Während man im Editor ist, kann +man besondere Leistungen durch Kommandos anfordern, ohne den Editor zu ver- +lassen, z.B. in einer anderen Datei nachschauen oder einen Teiltext in dem +geschriebenen Schriftstück suchen. Nachdem die Arbeit beendet ist, verläßt +man den Editor (ESC q) und gelangt wiederum in den Monitor. Hier kann man +das Schriftstück drucken oder - im Falle eines Programms - übersetzen lassen: + + print ("meine datei") + run ("meine datei") + +Hat das Programm einen Fehler, eröffnet uns der Monitor ein Fenster auf die +Datei und zeigt uns gleichzeitig die Fehlermeldungen, so daß wir bequem +korrigieren können. + +Nachdem unser Angestellter mit seinen Arbeiten fertig ist, kann er dem Vor- +steher (Monitor) sagen: + + Ich kündige! (will nicht mehr weiterarbeiten) ('end') + Bis Morgen! (will später weiterarbeiten) ('break') + +Merke: Der Supervisor des EUMEL-Systems regelt die Einrichtung, Zugang und + Löschung von Tasks. In einer Task kann ein Benutzer arbeiten, ohne + von anderen gestört zu werden. Spezielle Tasks sind für allgemeine + Aufgaben vorgesehen, wie z.B. das Drucken und Sichern von Dateien. + Durch den Monitor kann man Kommandos innerhalb einer Task geben. + + +Demand Paging + +Nun versuchen wir einen zentralen Begriff des EUMEL-Systems zu erklären, das +"demand paging". Diese Eigenschaft moderner Rechensysteme sorgt dafür, daß +bei (normalerweise immer) beschränkten Speicherkapazitäten eines Rechners +Programme bearbeitbar sind, die in ihrer Gesamtgröße nicht in den Speicher +des Rechners passen würden. + +Nehmen wir wieder den Angestellten, der nun in einem Zimmer (Task) auf einem +Tisch das EUMEL-Benutzerhandbuch durcharbeiten will. Stellen wir uns weiter +vor, daß er das Benutzerhandbuch nicht rein "sequentiell" lesen will, sondern +daß er fortwährend "blättern" muß. Eigentlich muß unser Angestellter mehrere +Seiten des Benutzerhandbuchs gleichzeitig lesen. Deshalb kommt er auf die +listige Idee, die Seiten, die er dringend benötigt, zu photokopieren und auf +seinem Tisch nebeneinander auszubreiten, damit er nicht mehr blättern muß. +Leider ist sein Tisch zu klein, um alle photokopierten Seiten darauf auszu- +breiten. Durch die Sparbemühungen der Regierung ist es auch aussichtslos, +sich um einen größeren Tisch zu bemühen. Aber im Titel für Verbrauchsmaterial +ist genügend Geld vorhanden, so daß Papier für den Photokopierer angeschafft +werden kann. Außerdem geht das Photokopieren sehr schnell, weil er den Photo- +kopierer direkt neben seinen Tisch aufbaut. Darum photokopiert er nur die- +jenigen Seiten, die er gerade benötigt und legt diese auf seinen Tisch. +Braucht er eine neue Seite aus dem Buch und hat diese auf dem Schreibtisch +keinen Platz mehr, so muß er eine auf dem Tisch liegende Seite entfernen. +Geschickt wählt sich unser Angestellter eine Seite aus, von der er annimmt, +daß er diese nicht so schnell wieder benötigt. + +Was macht er nun mit der "alten" Seite? Er könnte die kopierte Seite einfach +in das Benutzerhandbuch einordnen. Aber dazu müßte er erstmal in dem Benut- +zerhandbuch suchen, was ihm zuviel Mühe macht. Deshalb wirft er diese Seite +einfach weg, denn er kann sie ja jederzeit wieder aus dem Handbuch kopieren. + +Gerade will er eine Seite wegwerfen, da fällt ihm auf, daß er das "Wegwerf"- +Verfahren vielleicht nicht immer anwenden sollte. Seine Notizen, die er sich +auf einigen Seiten gemacht hat, würden ja mit weggeworfen und damit ver- +nichtet. Deshalb wirft er Seiten mit Notizen nicht weg, sondern tauscht diese +Seiten mit den ursprünglichen Seiten im Benutzerhandbuch aus. + +Fassen wir zusammen: +Jemand arbeitet ein Buch "durch". Er kopiert sich diejenigen Seiten, die er +jeweils benötigt. Da sein Tisch zu klein ist, um alle Seiten gleichzeitig +auszulegen, kann er immer nur einen Ausschnitt aus dem Buch bearbeiten, was +aber ausreicht. Braucht er eine neue Seite, so muß er eine auf dem Tisch +liegende Seite "verdrängen". Hat er diese Seite nicht verändert, also mit +Notizen versehen, so kann er sie einfach wegwerfen. "Veränderte" Seiten +ersetzt er im Buch und bewahrt sie somit auf. + +Ähnliches erfolgt auch im EUMEL-System: +Der Zentralspeicher (der Tisch in unserem Modell) des Rechners ist meist ge- +genüber dem Massenspeicher, der im EUMEL-System auch als "Hintergrund" be- +zeichnet wird (Floppy oder Magnetplatte; in unserem Modell das Buch) zu +klein, als daß alle Informationen gleichzeitig hineinpassen würden. Darum +werden alle Informationen in sogenannte Seiten ("pages") unterteilt, die +jeweils 512 Byte (ein Byte entspricht einem Zeichen) groß sind. Wird eine +Information benötigt, so wird die betreffende Seite in den Speicher geholt +(daher auch der Begriff "demand paging", etwa: Seitenaustausch auf An- +forderung). Das geht so lange gut bis der gesamte Platz im Zentralspeicher +des Rechners belegt ist. Soll nun eine neue Seite vom Massenspeicher geholt +werden, weil die darin enthaltenen Informationen gebraucht werden, muß eine +Seite im Zentralspeicher ersetzt werden (Fachwort: die Seite muß "verdrängt" +werden). Sie kann überschrieben werden (in unserem Modell wurde sie "wegge- +worfen"), wenn keine Veränderungen vorgenommen wurden, d.h. keine Schreibzu- +griffe, sondern nur Lesezugriffe auf die Seite erfolgten. Wurde die Seite +verändert, so muß sie auf den Hintergrund zurückkopiert werden und dort die +ursprüngliche Seite ersetzen. + + +Merke: Die Vorteile eines "demand paging" Systems sind nun offensichtlich: + Es ist möglich, bei weitem größere Informationsmengen (Daten und/oder + Programme) zu bearbeiten als diejenige, die eigentlich in den vor- + handenen Speicher passen würde, weil tatsächlich immer nur ein Aus- + schnitt der gesamten Informationsmenge zu einem Zeitpunkt bearbeitet + werden muß. Bei traditionellen Systemen ist dagegen die maximale Größe + von Programmen und Daten durch die physikalische Größe des Zentral- + speichers beschränkt. + + +Sharing + +Sharing bezeichnet die gemeinsame Nutzung von Seiten ("pages") durch mehr +als einen Benutzer. + +Zurück zu unserem Angestellten: Dieser ist inzwischen fleißiger geworden und +hat das gleiche Verfahren auf mehrere Bücher ausgedehnt, d.h. er kopiert sich +diejenigen Seiten aus den Büchern, die er gerade benötigt. Bei der Ver- +drängung einer Seite behält er sein altes (nicht sehr umweltfreundliches) +Verfahren bei: nur die veränderten Seiten ersetzen die Original-Seiten in den +Büchern (werden zurückgelegt), die anderen (nicht veränderten) weggeworfen. + +Aber auch andere Angestellte seines Büros haben ihn beobachtet, beneiden ihn +um seine "geschickte" Arbeitstechnik und wollen mitarbeiten. Leider steht +ihnen gemeinsam nur der eine Tisch zur Verfügung, der zudem in der Zwischen- +zeit auch nicht größer geworden ist, weil die Sparmaßnahmen der Regierung +noch immer anhalten. Darum müssen sie sich nun den einzigen Tisch teilen, auf +dem sie ihre kopierten Seiten auslegen können. + +Im Laufe der Arbeit ergibt es sich, daß sie unterschiedliche Seiten der +Bücher durcharbeiten müssen, weil sie verschieden schnell arbeiten, aber auch +andere Arbeitsgebiete haben. + +Durch die unterschiedliche Arbeitsgeschwindigkeit ergibt es sich, daß ein +Angestellter z.B. zu einem Zeitpunkt sich intensiv nur mit einer Seite be- +schäftigt, ein anderer aber mehrere Seiten quasi gleichzeitig braucht. Aber +oft brauchen mehrere Angestellte mehrere Seiten, so daß der verfügbare Platz +auf dem Tisch bald etwas zu eng wird. Natürlich "funktioniert" unser Ver- +fahren immer noch, aber es ist doch etwas langsam geworden, weil unsere +Angestellten mehr mit dem Austausch von Seiten beschäftigt sind, als daß sie +noch zu dem Verarbeiten der gelesenen Informationen kommen. Sie überlegen +also, wie das Verfahren zu verbessern ist und kommen auf folgenden Trick: +kopierte Seiten, die zwei oder mehr Angestellte zur gleichen Zeit bearbeiten +wollen, brauchen nur einmal auf dem Tisch zu liegen (schließlich sind unsere +Angestellten gewöhnt, in Gruppen zu arbeiten). Diese Rationalisierungs-Idee +ist ja offensichtlich, denn schließlich benutzen die Angestellten die Bücher +auch gemeinsam. Aber Vorsicht: wenn einer der Angestellten, die gemeinsam +eine Seite bearbeiten, sich etwas auf dieser Seite notieren will, darf nicht +die gemeinsam auf dem Tisch liegende Seite verwendet werden. In diesem Fall +ist es notwendig, vorher eine erneute Kopie zu machen, weil andere Ange- +stellte seine Notizen nicht unbedingt mitlesen sollen, also die unveränderte +Seite brauchen. + +Und das findet im Rechner statt: +Das "demand paging" Verfahren funktioniert natürlich nicht nur mit einer +Datei und einem Programm, sondern auch mit mehreren Dateien und Programmen, +von denen nur diejenigen Seiten in den Zentralspeicher geholt werden, die zu +einem Zeitpunkt in den Rechner passen. Aber erst mit mehreren Benutzern des +EUMEL-Systems entfaltet das "demand paging" Verfahren seine volle Mächtig- +keit, denn alle Benutzer können Programme und/oder Dateien verarbeiten, die +in der Gesamtheit nicht in den Speicher passen würden. Dabei wird eine Eigen- +schaft des EUMEL-Systems gut genutzt: Alle Programme des EUMEL-Systems (und +übrigens alle Programme, die der ELAN-Compiler übersetzt hat) sind reentrant, +d.h. können von mehreren Benutzern gleichzeitig gelesen werden, aber brauchen +nur einmal im Zentralspeicher vorhanden zu sein. Zwei oder mehr Benutzer +können also eine oder mehrere Seiten gemeinsam verwenden (Fachausdruck: +"sharen"), sowohl im Zentralspeicher wie auch im Massenspeicher ("Hinter- +grund"). Dies gilt nicht nur für Programme, sondern auch für Daten. Erst +wenn ein Benutzer eine Veränderung vornimmt, also schreibend auf die Seite +zugreift, wird diese Seite (nur für diesen Benutzer!) kopiert (EUMEL-Fachaus- +druck: "copy on write"). Alle anderen Benutzer arbeiten mit der unveränderten +Seite weiter. Der große Vorteil dieses Verfahrens: eine redundante +Speicherung von Daten und Programmen wird vermieden. + +Es passiert nun oft, daß ein Benutzer zu einem Zeitpunkt relativ wenig Seiten +benötigt: sei es, daß er Daten mit Hilfe des Editors eingibt oder nachdenkt, +sei es, daß ein Programm wenig Daten verwendet und selbst sehr kurz ist. Mit +anderen Worten: die Anzahl der benötigten Seiten zu einem Zeitpunkt (Fachaus- +druck: "working set") für diesen Benutzer ist klein. Dann ist es möglich, daß +andere Benutzer zu diesem Zeitpunkt mehr Seiten im Zentralspeicher des Rech- +ners haben. Deren "working set" ist also groß. + +Merke: Damit wird ein weiterer Vorteil des "demand paging" Verfahrens klar: + Ein "demand paging" System stellt sich automatisch und dynamisch auf + die Anforderungen von Benutzern ein, indem denjenigen Benutzern mehr + Speicher zugeteilt wird, die mehr benötigen und umgekehrt. Aber auch + ein Nachteil wird sichtbar: Benötigen alle Benutzer des Systems viel + Zentralspeicher, dann kann es zu folgender Situation kommen: Benutzer + A benötigt eine neue Seite. Das System verdrängt für diesen Zweck eine + Seite, die Benutzer B gehört. Nachdem Benutzer B an die Reihe kommt, + benötigt er diese Seite wieder. Das System verdrängt eine Seite des + Benutzers A u.s.f.. Eine solche Situation, in der "pages" ständig in + den Speicher kopiert und aus dem Speicher bei einer Seitenverdrängung + auf den Hintergrund geschrieben werden muß (und somit kaum gerechnet + wird), wird als "thrashing" bezeichnet. "thrashing" oder mit anderen + Worten: sehr geringer Verbrauch an Rechenzeit bei gleichzeitig er- + höhtem "paging"-Aufwand ist ein Anzeichen für zu hohe Anforderungen + an das System (Ausweg: Erweiterung des Hauptspeichers oder Be- + schleunigung des Hintergrundmediums (Platte statt Floppy) oder + Reduktion der Anforderungen). + + +Datenräume + +Datenräume sind die Grundlage für Dateien im EUMEL-System. + +Zurück zu unseren Angestellten: +Nachdem die Verbesserung vorgenommen wurde, daß sich zwei oder mehr Ange- +stellte eine Seite auf dem Tisch "teilen", tritt sofort ein neues Problem +auf. Es kann nun nämlich passieren, daß zwei Angestellte eine Original-Seite +verändern und beide in dem gleichen Buch ersetzt werden müssen. Es befinden +sich somit noch mindestens zwei andere mit Notizen versehene Seiten mit +gleicher Seitennummer in einem Buch. Zu allem Unglück wurde die Original- +Seite ersetzt, so daß andere Angestellte nur die mit Notizen versehene Seiten +erhalten können. Was ist zu tun? Das Verfahren sollte doch beibehalten +werden, denn schließlich ist eine totale Abkehr von Arbeitsvorgängen für +Verwaltungsangestellte nicht denkbar. + +Als erste Idee kommt ihnen in den Sinn, einfach alle Bücher für alle Ange- +stellten zu photokopieren. Dann kann es ja nicht zu einer solchen Kollision +kommen, daß zwei oder mehr Angestellte eine Seite in einem Buch ersetzen +wollen, weil jeder Angestellte seine eigene Kopie besitzt. Um die ver- +schiedenen Kopien eines Buches auseinander zu halten, wird von den Ange- +stellten verlangt, ihre Buch-Kopie mit einem sinnvollen Namen zu versehen. +Dies Verfahren funktioniert auch eine Weile, bis ein strebsamer Angestellter +einen Verbesserungsvorschlag macht, der prompt mit DM 5,- honoriert wird: +wie bereits mit den Seiten auf dem Tisch geschehen, ist es ja nicht not- +wendig, die Bücher zu photokopieren, sondern nur die mit Notizen versehenen +in einen Ordner, der entsprechend einer Buch-Kopie angelegt wird, einzu- +ordnen. Alle anderen, nicht veränderten Seiten können noch immer gemeinsam +benutzt werden. + +Und so funktioniert es nun: +Bei Arbeitsbeginn finden die Angestellten einen Buchbestand vor. Um mit einem +Buch arbeiten zu können, muß ein Angestellter einen Ordner für dieses Buch +anlegen, in den die ggf. veränderten Seiten eingeordnet werden. Zu diesem +Zweck muß jeder Ordner einen sinnvollen Namen erhalten, damit die Angestell- +ten ihre Ordner auch wiederfinden. Am Anfang müssen die Angestellten Seiten +der Original-Bücher kopieren. Wird eine solche Seite mit Notizen versehen, +also verändert, muß sie bei einer Verdrängung in den entsprechenden Ordner +eingefügt werden. Muß ein Angestellter eine neue Seite kopieren, so schaut +er erst in seinem Ordner nach, ob sich die entsprechende Seite dort befindet. +Damit wird garantiert, daß jeder Angestellte auch immer seine, mit Notizen +versehene Seiten erhält. Befindet sich eine gesuchte Seite nicht in dem +Ordner (am Arbeitsbeginn ist ein Ordner natürlich immer leer), so kopiert er +sich eine Seite aus dem entsprechenden Original-Buch. + +In der Zwischenzeit passiert folgendes im Rechner: +Eine Sammlung von Daten und/oder Programmen wird im EUMEL-System ein "Daten- +raum" ("dataspace") genannt. Erhält ein Datenraum einen Namen, so wird +dieser Datenraum eine Datei ("file") genannt. Angenommen, es existiert im +System eine Datei mit dem Namen 'Mist', die ein Angestellter mit dem Namen +'Krümel Monster' erstellt hat. Ein anderer Benutzer mit dem Namen 'Grobi' +will mit dieser Datei arbeiten. Grobi kopiert sich also diese Datei und gibt +ihr den Namen 'Grobis Mist'. Durch diese Kopier-Operation wird ein neuer +Datenraum angelegt, der aber anfänglich nur Verweise auf den Datenraum ent- +hält, der sich unter dem Namen 'Mist' verbirgt. Der Datenraum bzw. die +Seiten, die in Datei 'Mist' enthalten sind, werden also "geshared", d.h. von +mehreren Benutzern gemeinsam verwendet (in unserem Beispiel von Grobi und +Krümel Monster). Es erfolgt also eine logische Kopie, aber keine physika- +lische! + +Will der Angestellte Grobi nun eine Seite der Datei 'Grobis Mist' verwenden, +so erhält er natürlich die entsprechende Seite aus der Datei 'Mist'. Ver- +ändert der Angestellte Grobi nun eine Seite, so wird diese veränderte Seite +in dem Datenraum vermerkt, der unter dem Namen 'Grobis Mist' ansprechbar ist. +Davon merkt der Benutzer 'Krümel Monster' natürlich nichts, denn er arbeitet +mit den Seiten seines Datenraums weiter, die unverändert geblieben sind. Aber +auch Grobi merkt nichts davon, daß Seiten soweit wie möglich gemeinsam be- +nutzt werden. + +Merke: Durch das Konzept der Datenräume und Dateien (die nichts anderes sind + als benannte Datenräume), ist es möglich, auch Daten von verschiedenen + Programmen her gemeinsam zu benutzen und somit eine redundante + Speicherung überflüssig zu machen. Programme sind ebenfalls in Daten- + räumen gespeichert, so daß einer gemeinsamen Benutzung von z.B. + Systemprogrammen durch mehrere Nutzer nichts im Wege steht. + + + +Fixpunkte + +In gewissen Zeitabständen wird der gesamte Systemzustand eines EUMEL-Systems +gespeichert ("Fixpunkt"). Bei eventuell auftretenden Störungen kann dadurch +immer bei dem letzten Fixpunkt mit der Verarbeitung fortgefahren werden. + +Zurück zu unseren Angestellten, die typischerweise dieses komische System +weiter benutzen: Es passiert zum ersten Mal ein entsetzliches Unglück: +während im Sommer mehrere Fenster geöffnet wurden, betritt der "reitende" +Bürobote das Zimmer und alle Seiten werden von den Tischen und aus allen +offenen Ordnern herabgeweht. Da unsere Angestellten - wie man sich leicht +vorstellen kann - etwas vergeßlich sind, können sie nicht mehr rekon- +struieren, welche Seiten auf den Tischen und welche sich in den Büchern bzw. +Ordnern befanden. Die Arbeit von mehreren Monaten ist somit verloren! + +Deshalb werden Sicherheitsmaßnahmen getroffen: +In regelmäßigen Zeitabständen müssen alle Angestellten ihre Arbeit unter- +brechen. Dann wird von einem - extra dazu abgestellten - Angestellten Listen +angelegt, in denen die Seiten auf dem Tisch, den Ordnern und den Büchern +vermerkt wird. Im Falle eines erneuten Unglücks braucht man also nur die +letzte dieser Listen zu konsultieren, um eine gesicherte Arbeitssituation +herzustellen. Allerdings ist in einem solchen Fall diejenige Arbeit verloren, +die in der Zwischenzeit seit der Erstellung der letzten Liste geleistet +wurde. Aber das wird ja gerne in Kauf genommen, weil überhaupt weitergemacht +werden kann und nicht die gesamte Arbeit verloren ist. + +Merke: In gewissen (einstellbaren, typisch: 15 Minuten) Zeitabständen wird + vom EUMEL-System der gesamte Zustand des Systems gesichert. Diese + Sicherung wird "Fixpunkt" genannt. Dazu ist es notwendig, daß die + Verarbeitung der Programme kurz (z.Z. 0.2 Sek.) unterbrochen wird, + was sich jedoch meist nicht besonders störend auswirkt. Damit ist es + aber sichergestellt, daß bei einem Stromausfall, Hardware- oder Soft- + warestörungen immer zu einem Zeitpunkt in der Verarbeitung "aufge- + setzt" werden kann, bei dem nur diejenigen Daten verloren sind, die + seit dem letzten "Fixpunkt" aufliefen. + + + +Archiv + +Ein weiteres Sicherungsmittel im EUMEL-System ist das Archiv, mit welchem +man Dateien (also Daten und/oder Programme) extern zum EUMEL-System +speichern kann. + +Verlassen wir nun lieber unsere Angestellten. Dieses Modell würden wir sonst +übermäßig strapazieren. Wenden wir uns vielmehr einem weiteren Sicherungs- +mittel des EUMEL-Systems zu, dem EUMEL-Archiv. Mit Hilfe des EUMEL-Archivs +ist es möglich, Dateien auf Floppies zu schreiben und somit außerhalb des +EUMEL-Systems aufzubewahren. Es ist nun möglich, mehrere Dateien auf einer +Floppy zu speichern. Bloß wie funktioniert das? + +Ein gutes Modell des EUMEL-Archivs stellt ein Tonband oder eine Musikkassette +dar. Auf diesen werden die Musikstücke (unsere Dateien) nacheinander (Fach- +ausdruck: "sequentiell") aufgezeichnet, d.h. neue Musikstücke (Dateien) +können immer nur angefügt werden. Ist das Tonband oder die Kassette voll +beschrieben, so schaltet das Gerät meist automatisch ab. Im EUMEL-System +gibt's in solchen Fällen eine Fehlermeldung. + +Unterschiedlich zu einem Tonband ist jedoch, daß im EUMEL-System die Namen +der Dateien mit abgespeichert werden und diese Dateien - durch die Angabe +des Dateinamens - gezielt vom Archiv gelesen werden können. Bei einem Ton- +band oder einer Kassette muß man sich erst alle Musikstücke anhören, bis +das Musikstück erreicht ist, welches benötigt wird. Dieses "sequentielle" +Überlesen nicht benötigter Dateien erledigt das EUMEL-System "automatisch". + +Im EUMEL-System gibt es nun nicht nur die Möglichkeit, eine Datei auf ein +Archiv zu schreiben oder von einem Archiv zu lesen, sondern auch mehrere Da- +teien mit einem Kommando zu lesen oder zu schreiben. Zusätzlich ist es mög- +lich, ein Archiv zu löschen (und dann ggf. neu zu beschreiben), wenn die +"archivierten" Dateien nicht mehr benötigt werden. + +Nun passiert es oft, daß eine bereits archivierte Datei verändert wird und +nochmals auf das Archiv geschrieben werden soll. Aber durch eine Veränderung +der Datei hat diese gerade ihren Platzbedarf verändert. Somit könnte die +Datei - sofern sie sich vergrössert hat - eine nachfolgende Datei auf dem +Archiv u.U. teilweise überschreiben. Deshalb wurde im EUMEL-Archiv folgende +Vereinbarung getroffen: Wird eine Datei nochmals auf ein Archiv geschrieben, +so wird die Datei, die sich bereits auf dem Archiv befindet, als "ungültig" +gekennzeichnet und die neue Version an das Ende angefügt. Nur wenn die alte +Datei die letzte auf dem Archiv ist, wird sie von der neuen Version über- +schrieben. + +Merke: Durch dieses Verfahren kann es zu einer kuriosen Situation kommen: + zwei Dateien werden abwechselnd auf ein Archiv in mehreren Versionen + geschrieben. Obwohl beide Dateien zusammengenommen bei weitem nicht + das Archiv auffüllen würden, kommt es zum Überlauf. In einem solchen + Fall muß man das Archiv löschen (wobei vorher die Dateien ggf. in das + System geholt werden müssen) und beide Dateien erneut auf das Archiv + schreiben. + + + +4. Kleines #ib#EUMEL-Wörterbuch + +In diesem Wörterbuch werden einige der Begriffe, die häufig in diesem Be- +nutzer-Handbuch verwendet werden, erläutert. Bezüge auf weitere Begriffe, +die in diesem Wörterbuch stehen, werden mit den Zeichen ">" und "<" ge- +klammert. + +Anweisung: Direktive an die Textkosmetik, welche direkt in einen Text + geschrieben wird. Eine Anweisung muß in "\#" eingefaßt + werden. Beachte den Unterschied zu einem Kommando. + +Archiv: Ein Programmsystem, um Dateien des EUMEL-Systems auf + Floppys außerhalb des Systems zu speichern oder von dort + wieder in das EUMEL-System zu holen. Als Archiv wird auch + noch ein Speichermedium bezeichnet (in der Regel eine + Diskette). + +Benutzer-Task: Im Gegensatz zu einer >System-Task< ist eine Benutzer-Task + eine Task, die von einem Benutzer erzeugt worder ist. Sie + ist entweder an ein Terminal gekoppelt oder kann unab- + hängig von einem Terminal im Hintergrund bearbeitet werden. + +BOUND: Attribut von Variablen, das bei einer Deklaration vor die + Typangabe gesetzt wird. Dient zur Aufprägung eines Daten- + typs auf einen Datenraum. + +DATASPACE: Eine Datei ohne Namen. + +Datenraum: Siehe >DATASPACE<. + +Editor: Programm zur Eingabe und Veränderung von Texten, Daten und + Programmen. + +ELAN: Programmiersprache des EUMEL-Systems ("ELementary + LANguage"). + +ELAN-Compiler: Ein Programm, welches ein korrektes ELAN-Programm in ein + äquivalentes, ablauffähiges Programm (im >EUMEL0-Code<) + übersetzt. + +EUMEL0-Code: Maschinensprache des EUMEL-Systems. + +EUMEL-Drucker: Programm zur Ansteuerung von (unterschiedlichen) Druckern. + Der EUMEL-Drucker wird durch Kommandos gesteuert und er- + laubt es, unterschiedliche Drucker mit verschiedenartigen + Leistungen immer gleich anzusprechen. + +EUMEL-Standard: Objekte (also Datentypen, Prozeduren und/oder Operatoren), + die durch Pakete realisiert werden und standardmässig in + jedem EUMEL-System verfügbar sind. + +Fixpunkt: Speicherung des aktuellen Systemzustandes in regelmäßigen + Abständen. Bei Hardware- oder Softwarestörungen kann immer + bei der letzten Fixpunkt-Sicherung aufgesetzt werden. + +Hintergrund-Task: Eine >Task<, die nicht an ein Terminal angekoppelt ist + (d.h. einem Benutzer nicht direkt zugänglich), aber trotz- + dem vom System bearbeitet wird oder im Wartezustand ist + (warten auf einen Auftrag oder eine Ein/Ausgabe-Operation). + +Kommando: Ein ELAN-Programm, welches in der Regel aus einem + Prozeduraufruf besteht. Ein Kommando kann vom >Monitor< + oder Editor gegeben werden. Kommandos können ebenfalls in + Programmen verwandt werden. + +Lokale Dateien: Dateien einer Benutzer-Task. + +Manager: Eine >Task<, die auf Aufträge wartet. Beispiele sind die + Spool-Task bzw. Datei-Manager. Letzterer wird für die + Haltung längerfristig benötigter Dateien gebraucht. + +Monitor: Der Monitor steuert die Kommunikation zwischen einem + Benutzer am Terminal und dem EUMEL-Betriebssystem, nachdem + der Benutzer sich mit Hilfe des >Supervisors< eine Task + erschaffen hat. Die Monitor-Kommandos beziehen sich immer + auf die angekoppelte Benutzer-Task. + +paging: Benötigte Informationen werden in Einheiten ("pages") in + den Zentralspeicher des Rechners geladen. Somit ist es + möglich, bei weitem größere Informationsmengen zu ver- + arbeiten, als auf einmal in den Speicher des Rechners + passen. + +OPERATOR: >Task<, mit der das EUMEL-System u.a. gestartet, "abge- + schaltet" und gesichert werden kann. + +Scanner: Programm, um aus einem Text lexikalische Elemente ("Le- + xeme") herauszublenden. In dem im >EUMEL-Standard< + implementierten Scanner werden Lexeme nach der ELAN-Syntax + erkannt, redundante Leerzeichen (nicht in Texten) sowie + Kommentare überlesen. + +Sendungs-Vermittlung: Steuerung der Übermittlung von Informationen zwischen + verschiedenen >Tasks<. + +sharing: >Datenräume< und/oder >pages< können von mehreren Benutzern + gleichzeitig benutzt werden. Erst bei einer Schreibopera- + tion eines Benutzers wird nur für diesen Nutzer eine Kopie + der Daten angelegt. ("copy on write"). + +Spooler: Systemprogramm des EUMEL-Systems, welches Druckaufträge + zwischenspeichert, so daß unmittelbar weiter gearbeitet + werden kann. + +Supervisor: Kern des EUMEL-Betriebssystems auf der ELAN-Ebene zum Ver- + walten von Tasks. + +Supervisor-Kommando: Kommando zur Steuerung (An-/Abkoppeln, Erzeugen, + Benutzung) einer >Benutzer-Task<. + +System-Task: Eine >Task<, die für Aufrechterhaltung, Betrieb und Steu- + erung des EUMEL-Systems benötigt und nicht von einem + Benutzer erzeugt wird, sondern "immer" im >Taskbaum< + vorhanden ist. + +Task: Eigenständiger Prozeß (Auftrag) im EUMEL-System. + +Taskbaum: Eine baumförmige Anordnung von >Tasks<, in die jede Task + des EUMEL-Systems eingefügt wird. Dabei hat jede Task + - mit Ausnahme des >Urvaters< - eine >Vater-Task<, und + kann weitere Tasks erzeugen ("Söhne"). + +Textkosmetik: Programme des EUMEL-Systems, die die Gestaltung eines + Textes erlauben. + +Urvater: Wurzel des >Task-Baums< mit dem Namen 'UR'. + +Vater-Dateien: Dateien einer >Vater-Task<. + +Vater-Task: Eine >Task<, die einer Task in direkt aufsteigender Linie + im >Taskbaum< übergeordnet ist. Es wird dabei zwischen + einer "unmittelbaren" (die direkt übergeordnete Vater-Task) + und "mittelbaren" Vater-Tasks (Vater-Tasks, die über die + unmittelbare Vater-Task erreichbar sind) unterschieden. + + + +5. ELAN-Literatur + +Bittner, M., Jäckel, J., Jähnichen, S.: + ELAN - Beispielsammlung. + Institut für angewandte Informatik, + Fachbereich 20, TU Berlin, + Berlin, 1979 + +Hahn, R.: + Höhere Programmiersprachen im Vergleich. + Akademische Verlagsgesellschaft, + Wiesbaden, 1981 + +Hahn, R., Nienaber, B.: + Probleme lösen mit dem Computer. + Teil 1: Einführung in die algorithmische Problemlösung. + Teil 2: Werkzeuge und Methoden. + Neuer Verlag Bernhard Bruscha, + Tübingen, 1978 + +Hahn, R., Stock, P.: + ELAN - Handbuch. + Akademische Verlagsgesellschaft, + Wiesbaden, 1979 + +Hommel, G., Jäckel, J., Jähnichen, S., Kleine, K., Koch, W., Koster, K.: + ELAN - Sprachbeschreibung. + Akademische Verlagsgesellschaft, + Wiesbaden, 1979 + +Hommel, G., Jähnichen, S., Koch, W.: + SLAN - Eine erweiterbare Sprache zur Unterstützung der strukturierten + und modularen Programmierung. + 4. GI Fachtagung Programmiersprachen in Erlangen, + Springer Verlag, 1976 + +Hommel, G., Jähnichen, S., Koster, C.H.A.: + Methodisches Programmieren. + De Gruyter, Berlin, 1983 + +Klingen, L., Liedtke, J: + Programmieren mit ELAN + Teubner, Stuttgart, 1983 + +Liedtke, J.: + EUMEL - Ein ELAN-System für Mikroprozessoren. + GMD-Spiegel, + Bonn, 1979 + +Voila, H.T.: + A new computer routine for the generation of publishable data from + nothing. + Computer Quickies 48, 117 (1984) + + -- cgit v1.2.3