1. Installation 2. Eingeben, Laden und Compilieren von Tycoon-Programmen 3. Benutzen von Tycoon-Befehlen und ihre Bedeutung 3.1 Tycoon-Befehle 3.2 Umbegungsvariablen 1. Installation Die Datei mit "unzip tycoon.zip /" entpacken. In dem Verzeichnis /tycoon befinden sich nun alle noetigen Programme und Librarys, um die Programmierumgebung Tycoon zu starten. In diesem Verzeichnis "source tenv" eingeben. Dadurch werden einige Umgebungsvariablen gesetzt und das Starten der Tycoon-Virtual-Machine vorbereitet. Das Ausfuehren von "source tenv" ist jedesmal noetig, wenn das Sytem neu gebootet wurde, oder ihr euch auf einer neuen Konsole einlogt. Die Datei "tenv" enthaelt die noetigen Befehle, um die Umgebungsvariablen zu setzen. Wenn das Tycoon-Verzeichnis umbenannt wird, muss in auch die Variable TYCOON_ROOT in dieser Datei angepasst werden! 2. Laden und Compilieren von Tycoon-Sourcecode Das Tycoon-System wird mit dem Befehl "tycoon -restart" gestartet (oder mit dem Alias "ty"). Danach erscheint der Prompt "|>", an dem Kommandos eingegeben werden koennen. Nun kann direkt ein Tycoonprogramm Zeile fuer Zeile eingegeben werden. Leider gibt es an diesem Prompt keine Moegichkeit, die zuletzt eingegebene Zeile wieder zu bekommen (so wie z.B. an einem DOS-Prompt mit doskey). Bei einem Vertipper muss die Zeile nocheinmal eingegeben werden. Wird eine Zeile mit einem ";" abgeschlossen, so beginnt der Compiler mit dem Typecheck und der Ausfuehrung der Codezeilen. Wichtig ist, das nicht jede Zeile mit einem ";" abgeschlossen wird, sondern nur komplette Ausdruecke, wie z.B. eine Typdeklaration oder eine Funktion. Diese enden dann mit einem "end;". So muss nun Zeile fuer Zeile eingeben werden. Gerade bei Fehlern ist eine Korrektur nur schwer moeglich. Es empfiehlt sich also, neben dem Tycoon-System immer noch einen Editor auf einer anderen Konsole laufen zu lassen oder am besten unter X11 in einem zweiten Fenster. So kann der Sourcecode komfortabel editiert werden und nach dem Abspeichern erneut in das Tycoon-System geladen und ausgefuehrt werden. Als Standarddateiendung fuer Tycoon-Sourcecode sollte ".tyc" verwendet werden, um eine bessere Unterscheidung zu anderen Sourcecodedateien fuer Tycoon (Interfaces ".ti", Modules ".tm") zu erreichen. Die Datei mit dem Sourcecode wird am Prompt mit dem Kommando: |>do load ""; geladen. Der Compiler startet dann automatisch mit dem Typecheck und der Ausfuehrung. Der Filename kann einen kompletten Pfad enthalten. Vorsicht, das Linux-Dateisystem unterscheidet Gross- und Kleinschreibung. "inf123.tyc" ist eine andere Datei als "Inf123.Tyc". 3. Benutzen von Tycoon-Befehlen und ihre Bedeutung Es gibt eine Reihe von Tycoon-Befehlen (wie z.B. do load "..") die direkt am Prompt aufgerufen werden koennen. Jeder Befehl wird mit einem ";" abgeschlossen! 3.1 Hier einmal die Wichtigsten: do help [] Gibt zu einem Befehl eine kleine Hilfe aus. Ohne wird die komplette Liste der Tycooon Befehle ausgegeben. do exit [] Beendet die Tycoon-Virtual-Machine. do load "": Liest einen Tcoon-Source aus einer Datei "" : List direkt vom Standardinput (Tastatur,Datei, ein Prot,..) "!" : Liest die komandos direkt aus dem do saveSystem alle aktuell geladenen Programme und Librarys werden im Store abgespeichert. do clearSystem Der Store wird auf sein minimum reduziert und alle anderen Programme daraus entfernt. Wird nur fuer diese Session geaendert! Nicht abgespeichert! do printTime Gibt die Systemzeit aus. do printToplevel Gibt die geladen Toplevelroutinen aus (Librarys etc) do printVariable Gibt die aktuelle Variablenbelegung des Systems aus. do link {} So lassen sich neue Librarys in das System einbinden module: Die in dem module importierten Dateien werden gelinkt und der Programmcode ausgefuehrt library: Alle Dateien, aus denen die Library besteht werden geladen do unlink {} Gegenteil von do link "..". do helpVariable [] Gibt eine Hilfe fuer alle Umgebungsvaribalen des Tycoonsystems aus. do set So wird eine Variable gesetzt. 2.2 Die wichtigsten Umgebungsvariablen: cpuTime :Bool, wenn true, dann wird die CPU-Zeit und nicht die reale Zeit gemessen measureTime :Bool, wenn gesetzt wird optimierung und ausfuehrungszeit gemessen. typedOutputDepth :Int, die Tiefe der Ausgabe beim compilieren wird festgelegt. typedOutput :Bool, Ausgabe der Ergebnissse. printExpectedSymbols :Bool, es wird auf fehlende Symbole hingewiesen. autoSaveLibrary :Bool, compilierte Dateien werden automatisch abgespeichert. libraryObjectDir :String, Verzeichnis, in dem die compilierten modules, interfaces und libraries abgelegt werden. Hier wird auch nach ihnen gesucht. librarySourceDir :String, hier leigt der Sourcecode der interfaces und librarys. stopAfterTypeChecking :Bool, disable translation into TML and execution stopOnSyntaxError :Bool, soll angehalten werden, wenn beim compilieren ein fehler aufgetreten ist? Viel Spass mit dem Tycoon-System