Anhalter

Einleitung
Inhalt
 
Land & Leute
Redewendungen
Reise & Unterkunft
Schreibwaren
Sehenswürdigkeiten
Shopping
An der Grenze
Gesundheit
Notruf
 
Glossar
 
Erstellt:22.04.98
Aktuallisiert:23.04.98


Layout & Design:
Jan Huschauer

Sehenswürdigkeiten

C-Programmierung

Wer unter UNIX C-Programme entwickeln und testen möchte, dem steht, angefangen bei den C-Compilern bis hin zu Programmen für Versionskontrolle, eine Vielzahl von Tools zur Verfügung, von denen wir die wichtigsten erläutern wollen.

Der Standard-C-Compiler auf jedem klassischen UNIX-System ist der

cc     (klein zeh-zeh)

Dieser Compiler unterstützt jedoch nur den alten, fehleranfälligen Kernighan-Ritchie-Sprachstandard und ist daher nicht mehr zu empfehlen (laut RZ ist der cc dem Solaris-Betriebssystem nicht mehr beigefügt).

Wer glaubt, daß zuviel Komfort und Fehlerwarnungen durch den Compiler den Charakter verderben, der kann weiter debuggen, alle anderen notieren:

gcc -Wall DateiName

Der von der Free Software Foundation (FSF) entwickelte GNU-C-Compiler ist nicht nur aufgrund der Tatsache, daß es ihn mittlerweile auf nahezu jeder Plattform gibt, zu dem C-Compiler schlechthin avanciert! Er beherrscht nicht nur den vollen ANSI-C-Sprachumfang, sondern bietet darüber hinaus eine Vielzahl von Erweiterungen und Optionen, die einem das Leben bei der Programmierung erleichtern. Zudem erzeugt er einen hoch-optimierten Code, der sich nicht hinter dem kommerzieller Produkte (sofern es sie gibt) zu verstecken braucht.

Neben reinen C-Programmen unterstützt der gcc auch C++. Es gilt jedoch zu beachten, daß die dem gcc beigefügten Profiler und Debugger zur Zeit noch keine C++-Unterstützung bieten.

Laut RZ ist der zur Zeit beste Debugger der xxgdb. Damit vom gcc erzeugte Programme debuggt werden können, muß der Compiler mit der zusätzlichen Optionen -g aufgerufen werden, also etwa

gcc -Wall -g -O2 -o ProgName Source.c
(Erläuterungen: -Wall: Alle Warnungen ausgeben, -O2: Volle Optimierung, -o ProgName: Name des erzeugten Programms).

Wer zeitkritische Anwendungen entwickelt, möchte möglicherweise überprüfen, wieviel Zeit in den einzelnen Prozeduren eines Programms verbraten wird. Diese Aufgabe wird von einem Profiler namens gprof übernommen. Dazu muß zunächst das Programm mit der Option -pg übersetzt und ausgeführt werden. Nach Ablauf des Programms befindet sich im aktuellen Verzeichnis eine Datei namens gmon.out, die dann mit Hilfe des Profilers ausgewertet werden kann.

Für reine C++-Entwicklungen ist, wie bereits oben angedeutet, der GNU-C-Compiler nur eingeschränkt zu empfehlen. Dafür bietet sich der

CC     (Groß Zeh-Zeh)
von CenterLine an. Um ihn benutzen zu können, muß jedoch folgende Zeile in die Datei .cshrc im eigenen Home-Verzeichnis eingefügt werden:
setenv CENTERLINE

Für diesen Compiler steht eine komplette Entwicklungsumgebung zur Verfügung. Da diese jedoch lizensiert und daher nur jeweils für eine beschränkte Anzahl von Benutzern zugänglich ist, müssen wir diejenigen, die damit arbeiten wollen, an das RZ verweisen.

Für die Entwicklung von X-Windows-Programmen existiert weiterhin ein Interface-Builder (Oberflächen-Generator) namens ixbuild, mit dem die Erstellung von grafischen Elementen vereinfacht wird. Laut RZ ist ixbuild trotz aller Probleme nach wie vor der geeignetste seiner Art, da er den De-facto Window-Manager-Standard OSF Motif unterstützt. Handbücher liegen im Solarium aus.


ECLiPSe-Prolog

Bei ECLiPSe handelt es sich um ein Prolog-System, das nicht nur den üblichen Prolog-Standard (Edinburgh) abdeckt, sondern darüber hinaus eigene, mächtige Sprachkonstrukte (z.B. Modulkonzept, Datenbankbefehle, Generalized Propagation, Finite Domain Constraints) zur Verfügung stellt.

Um mit ECLiPSe arbeiten zu können, müssen in der versteckten Datei .cshrc in Eurem Homedirectory folgende Umgebungsvariablen gesetzt werden:

setenv ECLIPSEDIR /usr/u5/eclipse
set path = ( $path $ECLIPSEDIR/bin/sun4 )
setenv MANPATH $MANPATH\:$ECLIPSEDIR/doc

Auch hier kann sich es gegebenen falls Änderungen ergeben. Vor den Einstellungen einmal kurz nachforschen...

Angeworfen wird das ganze System dann mit:

eclipse

Das ECLiPSe-Prolog meldet sich, entgegen dem Standard, mit einem eigenen Prompt, der die Zeilennummer der Anfrage mitführt. Ein Prolog-Programm wird mit compile geladen (nicht mit consult!) , etwa so:

[eclipse 1] compile('eliza.pl') .

Als Kurzform ist auch die "In-eckigen-Klammern-Schreibe" möglich:

[eclipse 1] [eliza].

Eclipse meldet sich mit der Größe des übersetzten Programms und zeigt wieder das Bereitschaftszeichen. Jetzt können Prolog-Anfragen in der üblichen Weise gestellt werden.

Zum Verlassen einfach:

halt.
eintippen (Punkt nicht vergessen). Die zuletzt eingegebenen Befehle kannst Du durch Angabe der Zeilennummer, gefolgt von einem Punkt, erneut ausführen lassen. Um einen Blick in die Abarbeitung von ECLiPSe zu werfen, wird der Debugger mit
trace.   und   notrace.
an- bzw. abgestellt. Um nur ganz bestimmte Prädikate zu tracen, kannst Du den Nachrichtendienst beauftragen mit:
spy Prädikat/Stelligkeit.
Die Stelligkeit kann man geg. weglassen, falls es eindeutig ist.

ECLiPSe besitzt ein umfangreiches (und auch relativ verboses) Hilfesystem, bei dem Du mit

help(Prädikat).   bzw.   help(Prädikat/Stelligkeit).
alle notwendigen Informationen bekommst. Das Dumme daran ist nur, daß Du schon vorher in etwa wissen mußt, wonach Du suchen willst.

Die vollständige ECLiPSe-Dokumentation liegt im Verzeichnis /usr/u5/eclipse/3.5.1/doc/dvi vor. (Die Versionsnummer 3.5.1 kann sich aber in Zukunft geg. ändern.)

Falls mal jemand einen Testlauf von Dir haben möchte, kannst Du alles, was geschieht, in einer Protokoll-Datei speichern. Das ist auch nicht weiter wild und funktioniert überhaupt mit jedem Programm. Bevor Du Eclipse startest, wird das Diktiergerät eingeschaltet mit:

script Dateiname

Wenn Du keinen Namen angibst, denkt sich UNIX selbst einen aus (typescript). Alles, was Du von jetzt ab eintippst (und was das System antwortet), kann und wird gegen Dich verwendet werden, bis Du in der UNIX-Shell exit eingibst. Das beendet nur das Script und nicht die Shell.


Cobelix - das Spielmobil

für Leute auf der Suche nach dem goldenen Buch.

Cobelix steht für "Coblenzer Literaturrecherche unter UNIX". Gemeint ist damit ein Programm, das als "Schnittstelle zu den Datenbeständen der Koblenzer Informatikbibliothek, der Sammlung interner Berichte anderer Universitäten und Institutionen (hauptsächlich Informatikfachberichte), sowie nichtselbständiger Literatur (Artikel in Zeitschriften, etc.)" dient.

Vereinfacht gesprochen: Wenn Ihr zu einem bestimmten Autor, Thema, etc. ein bestimmtes Buch oder einen bestimmten Artikel sucht, dann benutzt Cobelix.

Entgegen anderslautenden Gerüchten wird Cobelix weiterhin regelmäßig auf den neuesten Stand gebracht. Aufgrund der Verschlagwortung und der Erfassung der Fachberichte ist es daher nach wie vor die Informationsquelle Nummer Eins für alle Informatikstudenten. Einzige Einschränkung: Die Bibliotheksbestände vor 1988 sind leider nicht vollständig erfaßt.

Cobelix kann von jedem Rechner des Uninetzes direkt unter dem Namen

Cobelix
gestartet werden.

Wer keine eigene Kennung besitzt, kann sich unter der Kennung bib ohne Paßwort einloggen.

Das neue, menügesteuerte Recherche-System ermöglicht einen einfachen Zugang zu den Datenbeständen. Nähere Informationen zu der Bedienung sind der Online-Hilfe zu entnehmen.

Für konstruktive Kritik, Wünsche und spezielle Fragen wendet Euch bitte an den Betreuer des Programms, Roland Berling (G 104).


Tinaaa....watt kosten die Kondome? (LaTeX)

LaTeX ist in! Aber nicht nur zur Empfängnisverhütung ist es nützlich, sondern auch zum Formatieren manueller Eingaben (neudeutsch: Word processing). TeX und sein Makropaket LaTeX sind jedoch keine Textverarbeitung im herkömmlichen Sinne, sondern eher als Textformatierer zu verstehen, d.h. vor dem Begutachten und Drucken des Dokuments muß der mit Steuerbefehlen bespickte Text durch eine Art Compiler gejagt werden. Dieser Compiler hört auf den Namen tex.

Da das von Donald E. Knuth entwickelte System in seiner Grundausstattung zwar leistungsfähig aber unkomfortabel ist, wurde von Leslie Lamport ein Makropaket mit dem Namen latex entwickelt, das unter anderem automatisch Inhaltsverzeichnisse erstellen kann. Zu seinen mächtigsten Eigenschaften zählt jedoch das druckreife Setzen mathematischer Formeln. Diese Makrosammlung hat mittlerweile den Rang eines Standards eingenommen, so daß viele Neueinsteiger heute glauben, LaTeX sei ein eigenständiges Programm ("LaTeX kenne ich, aber was ist TeX?"). Heutige Versionen sind LaTeX 2e oder teTeX. Wer spezielle Fragen dazu hat, wende sich an den TeX-Administrator (texadmin per Mail und WWW).

Anstatt TeX jedesmal mitteilen zu müssen, daß man LaTeX verwenden möchte, kann man auch gleich

latex Dokumentname     (mit oder ohne Suffix ".tex")
bzw. sein deutsches Pendant
glatex Dokumentname
aufrufen. Gesetzt den Fall die Übersetzung hat fehlerfrei geklappt, erzeugt TeX eine geräteunabhängige Datei mit dem Namen Dokumentname.dvi (device independent). Sie kann mit Hilfe von
xdvi, xtex   oder   texx
(jeweils den Dateinamen als Parameter angeben) unter X-Windows observiert werden, d.h. man kann sich den formatierten Text seitenweise in einem Fenster auf dem Bildschirm ansehen.

Für die Ausgabe auf dem Drucker muß je nach Gerätetyp anders vorgegangen werden. Um DVI-Dateien auf dem Ionendrucker auszugeben, reicht die einfache Eingabe des Befehls:

dvi2ioni Dateiname

Eine Angabe des gewünschten Druckers wie etwa bei lpr (siehe Drucken) ist hier nicht nötig. Soll das Dokument jedoch auf einem der beiden allgemein zugänglichen PostScript-Drucker ausgegeben werden, muß zunächst mit Hilfe von

dvips Dateiname > PostScriptdatei
aus der DVI-Datei eine PostScript-Datei erzeugt werden. Diese kann dann mit lpr los geschickt werden.

Um sich Schreibarbeit und überflüssige PostScipt-Dateien zu ersparen, kann man auch gleich das Ergebnis der Konvertierung mit Hilfe einer Pipe an lpr weiterleiten:

dvips DVI-Datei | lpr -PDruckername
    (rzps oder qmsps)

Da die DVI-Files, wie oben bereits erwähnt, geräteunabhängig sind, können diese bereits zu Hause unter LinuX, OS/2 oder - wenn's unbedingt sein muß - MS-DOS (ja, es muß sein, A.K.) erzeugt werden, und in der Uni in das Netz eingespielt werden (siehe DOS-Dateien verzollen).

LaTeX is nix für Anfänger und es zu lernen, dauert seine Zeit. Wer trotzdem neugierig geworden ist, kann sich im SUN-Raum (oder in der Bibliothek) in die ausliegenden LaTeX-Manuals vertiefen. Für einfache Texte ohne aufwendige mathematische oder technische Formeln würde ich jedoch den Weg über die heimische Textverarbeitung (siehe Drucken/DOS-Dateien verzollen) vorschlagen.