Thread View: de.comp.lang.c++
1 messages
1 total messages
Started by Torsten Vogt
Mon, 21 Aug 1995 08:35
Re: LOOPS (flexibles Interpretersystem)
Author: Torsten Vogt
Date: Mon, 21 Aug 1995 08:35
Date: Mon, 21 Aug 1995 08:35
123 lines
6945 bytes
6945 bytes
I wrote:
> > Hallo,
> >
> > ich hab gerade festgestellt, dass doch einige von euch sich das
> > LOOPS Interpreterbau Toolkit geholt haben. Leider hab ich
Ralf Muschall wrote:
> Ich nicht, nur die lsys9{3|4_1}.ps.
> Und festgestellt, da"s die ein von Word erzeugtes
> schauderhaftes postscript enthalten (keine Seitennummern in
> den Kommentaren, usw., folglich kein R"uckbl"attern/Seiten
> "uberspringen, Seiten markieren und in anderes File saven
> etc. m"oglich; extrem langsamer Seitenaufbau usw.).
> (Ich wei"s, da"s das nicht an Dir, sondern an Bill Gates liegt.)
Sorry Ralf, der Windows-Postscript Treiber is' halt mal schlecht. Leider
sind die Dokumente lsys94_1 und lsys94_2 mit Startwriter fuer Windows
erstellt worden. Deshalb bringt es wohl auch nicht viel die *.swd Dateien
zu veroeffentlichen. Postscript erschien mir noch die beste Moeglichkeit,
moeglichst viele zu erreichen. Uebrigens: mit ghostview kann man sich das
Dokument auf jeden Fall ansehen und auch einzelne Seiten drucken.
Die gute Nachricht: Die Dokumentation ist das einzige, was unter Windows
erstellt wurde.
> K"onntest Du trotzdem mal ein paar kurze Informationen
> posten, wie die Sprache aussieht, was sie (aus Nutzersicht)
> bietet (closures, continuations, Tk, OO, edle Syntax,
> Zugriff auf Systemfunktionen oder was auch immer).
Eigentlich hatte ich gehofft, dass die Einfuehrungskapitel der einzelnen
Arbeiten klar machen, was man mit LOOPS machen kann. Da das offenbar nicht
so ist, hier eine kleine Einleitung:
(1) Man stelle sich vor, man hat ein komplexes Programmsystem entwickelt,
z.B. eine Datenbank, ein CAD-System, eine mathematische Bibliothek mit
Grafikfunktionen, ... . Nun will man die Funktionaltitaet dieses
Systems der Menschheit durch ein Frontend zugaenglich machen. Dieses
Frontend soll ein Interpreter sein.
(2) Nun hat man mehrere Moeglichkeiten:
(a) man entwickelt selbst eine Programmiersprache
(b) man erweitert einen bestehenden Interpreter
(c) man benutzt LOOPS, was irgendwo eine Kombination aus (a) u. (b) ist
(3) Nehmen wir an wir entscheiden uns fuer LOOPS. Dann bekommen wir ohne
Entwicklungsaufwand ein Laufzweitsystem zur Verfuegung gestellt, dass
nur darauf wartet, Datentypen und Funktionen, die wir ihm zur Verfuegung
stellen, zu verarbeiten. D.h. wir reichen die Funktionalitaet, die wir
ja schon programmiert haben (vgl.(1)) an den Interpreter weiter. Dazu
muessen wir lediglich ein paar Datentypen (z.B.: WINDOW, DATABASE, ...)
und Funktionen darauf (z.B.: open, draw, close, query, ...) ersinnen und
diese beim Interpreter anmelden. Die Implementierung dieser Datentypen
und Funktionen erfolgt in C++ und wird groesstenteils von Code-
generatoren uebernommen. Man bekommt also einige Datentyp- und
Funktionsbibliotheken, die dem LOOPS-Interpreter dazuzulinken sind.
Fertig ist ein Frontend fuer unser System aus (1).
Damit ist auch klar, was ein LOOPS-Interpreter dem Anwender bietet:
Alles, was ein Entwickler ihm zur Verfuegung stellt. Dazu koennen auch
alle Systemfunktionen zaehlen, die man z.B. aus einer Shell her kennt.
Die Syntax von LOOPS ist so eine Mischung aus C/C++ und Pascal. D.h.
jeder der schon mal einen Volkshochschulkurs in Pascal belegt hat,
sollte in der Lage sein einen LOOPS Interpreter zu nutzen. Die Syntax
ist natuerlich aenderbar. Am einfachsten sind die Schluesselwoerter
zu aendern (man koennte z.B. IF durch FALLS ersetzen (MS-VisualBasic
laesst gruessen)). Um die Syntax der Sprache zu aendern sind Kenntnisse
mit YACC erforderlich (vgl. lsys94_1.ps, Kapitel 3). Wie schon gesagt,
man kann die Syntax aendern, muss es aber nicht.
> Die lsys93.ps fing mit ein paar dutzend
> Seiten "uber die Implementation und andere Interna an,
> die den Nutzer wenig interessieren d"urften.
> (Wahrscheinlich im Unterschied zu einem Diplomgutachter.)
> (Das Inhaltsverzeichnis verwies zwar auf eine Grammatik
> (ab S. 20), aber diese Seiten sind f"ur Sterbliche
> nur durch Ausdrucken erreichbar :-( ,
> was nicht jeder unbedingt mit einer Katze im Sack tun will.)
Ich glaube die Einleitung von lsys93.ps gibt eine guten Ueberblick
ueber LOOPS, mehr sollte man davon sowieso erst lesen, wenn man
vorhat LOOPS einzusetzen. Die Grammatik in lsys93.ps kann man mit
ghostview auch separat ausdrucken. Besser ist es sowieso man holt
sich das LOOPS system und schaut sich mal die Beispielprogramme
in $(LOOPSHOME)/specs an. Ich glaube fuer den "gewoehnlichen
Sterblichen" ist das der bessere Weg.
> Was ein gew"ohnlicher Sterblicher eher wissen will,
> ist, ob (und wenn ja, warum) LOOPS als Ersatz/Erg"anzung
> f"ur lisp/perl/python gedacht ist oder ob es in eine
> v"ollig andere Richtung zielt.
Nun ja, LOOPS ist mal von Haus aus eine prozedurale Sprache, damit
scheidet LISP als Konkurrent aus. Zur Zeit hat LOOPS nicht die
Faehigkeiten von PERL bzgl. Textbearbeitung. Was sich natuerlich
leicht aendern laesst, man muesste diese ja nur implementieren und
anmelden. Uebrigens tuen zur Zeit 2 LOOPS-Scripte in unserem WWW-Server
Dienst. Was im allgemeinen eine Domaene von PERL sein duerfte.
Python kenn ich leider nicht.
Die Einsatzmoeglichkeiten von LOOPS wurden oben besprochen. Wenn man
unbedingt ein Vergleichssystem hinzuziehen will, sollte man OS2/REXX
waehlen. Aber bitte nicht vergessen, dass LOOPS echte Datentypen kennt
und nicht nur mit Strings 'rummacht. Dafuer ist die Erweiterbarkeit
zur Zeit im Vergleich zu REXX eher statisch, da die Erweiterungs-
bibliotheken beim linken eines LOOPS Interpreters zur Verfuegung
stehen muessen.
Ich hoffe ich konnte etwas zur Aufklaerung des ominoesen LOOPS
beitragen.
Torsten
--
---------------------------------------------------------------------
| Torsten Vogt |
| Universitaet Mannheim - Lehrstuhl Praktische Informatik I |
| Seminargebaeude A5 |
| D-68131 Mannheim |
| |
| Tel : 0049-621/292-5132 Fax: 0049-621/292-5297 |
| email: vogt@pi1.informatik.uni-mannheim.de |
| WWW : http://pi1.informatik.uni-mannheim.de/HomePages/vogt.html |
---------------------------------------------------------------------
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads