MINERVA superseeded IF/Prolog.
Please see
http://www.ifcomputer.co.jp/MINERVA
for details.
We discontinued to sell IF/Prolog Dec 31. 2003.
For current customers, we continue to provide
professional support for IF/Prolog until Dec 31, 2008.
Die Prolog Maschine
Das Constraint Technologie Paket (optional)
Schnittstellen zu anderen Sprachen
Software Engineering
Standards
Die graphische Benutzer-Oberfl?he
Graphische Programmier-Schnittstellen (optional)
Datenbank-Schnittstellen (optional)
Andere Features in Version 5.0
System Voraussetzungen
IF/Prolog ist ein sehr performantes und speicher-effizientes Programmiersystem, das es erlaubt, Anwendungen zu schreiben, die sehr einfach in bereits bestehende Software Pakete einzubetten sind. IF/Prolog kann eng mit dem Betriebssystem oder anderen Programmiersprachen und kommerzieller Software zusammenarbeiten, was einer der wesentlichen Gesichtspunkte moderner Programmierung ist.
IF/Prolog verf?t ?er eine graphische Entwicklungsumgebung und online Hilfe im Stile eines Hypertext Systems. Versierte Programmierer nutzen den graphischen Debugger, Tracer und die Compilierungstools voll aus.
Neu f? Version 5.0 ist ein zus?zliches Constraint Technologie Paket, welches die m?lichen Anwendungsbereiche f? Prolog zus?zlich vergr?sert. Komplexe Optimierungsprobleme wie sie z.B. bei der Ressourcenverwaltung, Produktionsplanung und Fahrplangestaltung auftreten, k?nen deklarativ und expressiv gel?t werden.
Die volle Unterst?zung des ISO Standards f? Prolog bietet Ihnen die
Kompatibilit? der Programme und die Investitionssicherheit f? die Zukunft.
IF/Prolog bietet marktf?rende Produkteigenschaften:
- Volle Unterst?zung des ISO Standard.
- Bi-directionale Schnittstellen zu C und C++.
- Eine graphische Entwicklungsumgebung.
- Ein industriell erprobtes Modul Konzept.
Optionale Komponenten:
- Ein Constraint Technologie Paket.
- Eine generelle SQL Datenbank-Schnittstelle zu Oracle, INGRES und Informix.
- Eine graphische Programmierschnittstelle zu OSF/Motif.
Wir bieten IF/Prolog mit der gleichen Entwicklungsumgebung f? mehr als 600 Rechner von ca. 70 Hardware Herstellern an. Es ist wahrscheinlich die am weitesten unterst?zte kommerzielle Programmiersprache der Welt. IF/Prolog ist sourcecode-kompatibel auf all diesen Plattformen.
IF/Prolog 5.0 entstand aus ?er 11 Jahren Entwicklungserfahrung bei InterFace Computer GmbH und Siemens Nixdorf Informationssysteme AG.
Der IF/Prolog Kern ist eine state-of-the-art Prolog Maschine, die eine hohe Performanz und Speichereffizienz bietet. Der Kern beinhaltet:
- Einen incrementellen optimierenden Compiler -
der Compiler erlaubt incrementelle Kompilation, Dekompilation und
das Laden von kompiliertem Code, wobei Argumentindizierung und Shallow
Backtracking f? alle Pr?ikate unterst?zt wird.
Weiterhin werden source-to-source und lower level Optimierungen
an kompilierten, nicht modifizierbaren statischen Pr?ikaten angewand.
- Effizientes und flexibles Speichermanagement -
alle Datenbereiche werden transparent f? die Anwendung
speicherbereinigt und in der Gr?se angepasst.
Diese Speicherbereinigung kann in einzelnen oder kombinierten Bereichen
vorgenommen werden, so dass die Zeit f? diese T?igkeit minimiert wird,
was besonders bei Echtzeitanwendungen von grosser Bedeutung ist.
Falls n?ig arbeitet der Garbage Collector w?rend der Ausf?rung von
C-definierten Benutzerpr?ikaten, indem er viele Gr?senbegrenzungen
von L?gen von Atomen und Strukturtiefen anpasst, die andere Prolog
Systeme fest vorschreiben.
- Das pr?ikat-bezogene Modul-Konzept ist neu f? Version 5.0.
Es wurde redesigned,um data-hiding und Metaprogrammierung in einer
modularen Art zu unterst?zen.
Pr?ikate anderer Programmiersprachen k?nen ebenfalls in Module
aufgenommen und importiert bzw. exportiert werden.
Das Constraint Technologie Paket er?fnet die L?ung komplexer kombinatorischer Probleme in IF/Prolog. Die folgenden M?lichkeiten erweitern den Prolog Kern.
- grosse Ganz- und Rationalzahlen -
exakte Arithmetik mit sehr grossen Zahlen.
- Coroutinen - Routinen, die durch die Instantiierung von
Variablen aktiviert werden.
- Numerische Constraints - Lineare Gleichungssysteme ?er
rationalen Zahlen, wobei high level Pr?ikate f? viele
Operationen zur Verf?ung stehen: Summen, Disjunktion, Minimierung,
Maximierung und viele mehr.
- Finite Dom?en - spezifizieren eine Menge von Werten einer Variablen;
durch die Zulassung von nur bestimmten Werten zur Instantiierung
einer Variablen und deren dynamischer Anpassung reduziert diese Technik
den Suchraum erheblich.
- Boolesche Constraints - Relationen, die durch boolesche Aussagenlogik
formuliert werden k?nen, bieten effiziente Manipulationen von
Entscheidungsb?men.
Durch die flexible bi-directionale und reentrant-f?ige Schnittstelle zu C und C++ k?nen IF/Prolog Programme als Software Komponenten so in bestehende Systeme eingebettet werden, dass sie entweder Prozeduren anderer Sprachen aufrufen oder Prolog als intelligenter Server funktioniert. Es gibt einige erw?nenswerte Eigenschaften von Prolog, die IF/Prolog zur richtigen Wahl machen, wenn man seri?e Anwendungen schreiben will:
- Volle Interaktionsm?lichkeit mit den Betriebssystemen -
das Betriebssystem ist sowohl von Prolog als auch von den anderen
Sprachen zug?glich. Prolog kann benutzt werden, um
Kommando-Parameter, Pipes, Dateien und andere Stream Typen vom
Betriebssystem oder benutzerdefiniert zu kontrollieren.
- Eine zwei-Ebenen Schnittstelle von einer anderen Sprache zu Prolog -
erm?licht dem Benutzer, entweder Prolog goals als C-strings zu
?ergeben, die dann geparst werden oder zur Steigerung der Effizienz,
Strukturen in der systemeigenen Darstellung zu bauen,
die einen vordefinierten Satz von Makros verwenden.
- Die Schnittstelle von Prolog zu anderen Sprachen erlaubt Ihnen,
deterministische oder wiederverwendbare Pr?ikate als
Routinen dieser Sprache zu definieren. Diese Pr?ikate sind
genauso effizient wie die built-in Pr?ikate von IF/Prolog selbst.
- Die Verwendung verschiedener Programmiersprachen zusammen mit
IF/Prolog - Der Code der anderen Programmiersprache und der von
Prolog kann beliebig gemischt werden und dabei auch rekursiv
verwendet werden.
- Pr?ikate anderer Programmiersprachen in Modulen -
Routinen anderer Programmiersprachen k?nen in Modulen
zusammengefasst werden, die dann genauso leicht in bestehende
grosse Applikationen eingebettet werden k?nen, wie die Module
die in IF/Prolog selbst geschrieben sind.
- Keine Grenzen - es gibt keine Gr?senbegrenzungen f? Daten, die
zwischen Prolog und anderen Programmiersprachen ausgetauscht werden,
da der Garbage Collector und die Speichervergr?serung auch w?rend der
Ausf?rung von Programmen der anderern Programmiersprache
f? den Nutzer transarent arbeiten.
Das Pr?ikat-basierte Modul-Konzept von IF/Prolog (neu f? Version 5.0) wurde entwickelt, um data-hiding und Metaprogrammierung modular zu unterst?zen. Nur mit IF/Prolog k?nen Module sowohl in ihrer ganzen gegebenen Struktur als auch als Teile genutzt werden, beides M?lichkeiten, die essenziell wichtig f? modernes Software Engineering sind.
IF/Prolog Version 5.0 unterst?zt den ISO Prolog Standard, Pt1 vollst?dig. Sowohl Siemens Nixdorf Informationssysteme AG als auch IF Computer waren in den letzen Jahren aktive Teilnehmer bei den DIN- und ISO- Aussch?sen. IF/Prolog wurde in ANSI C unter Ber?ksichtigung der ISO 9000 Enwicklungs- Zertifizierung implementiert. Es ist sehr portabel und daher auch sehr stabil.
SNI und IF Computer arbeiten mit anderen f?renden Prolog Herstellern in der Prolog Management Group (PMG) zusammen.
Die graphische Benutzeroberfl?he von IF/Prolog unter OSF/Motif, die auf allen UNIX Plattformen standardm?sig ausgeliefert wird, ist eine v?lig fensterorientierte Entwicklungsumgebung, die folgende Vorteile bietet: Debugger, Tracer, Listing und Cross-Reference-Tools.
Die Auswahl ?er Pull-down Men? und ein fensterorientierter Debugger erh?en die Produktivit? bei der Programmierung.
Die graphische Benutzeroberfl?he wurde erweitert, um die neue Constraint Technologie voll zu unterst?zen. Der Debugger und Tracer wurden im Vergleich zum alten Debugger komplexer, um den Ausstieg innerhalb der Constraint-Pr?ikate klarer darstellen zu k?nen.
Die on-line Hypertext Hilfe (siehe unten) macht das Benutzermanual per Tastendruck stets greifbar.
Graphische Entwicklung in Prolog ist wesentlich einfacher als in C oder C++; windowing events k?nen synchronisiert werden, indem der interactive fensterorientierte Debugger genutzt wird. Der GUI Code muss nicht neu gelinkt werden, sondern der Quellcode kann einfach rekonsultiert werden, was eine betr?htliche Zeitersparnis beim Durchlauf eines Testzyklus bedeutet.
Als Programmierschnittstelle ist verf?bar:
- X11-OSF/Motif Schnittstelle - die OSF/Motif (V1.2 Funktionalit?)
Schnittstelle bietet vollen Zugriff auf die OSF/Motif Library Routinen.
Es existiert eine eins-zu-eins Verbinung zwischen den ?uivalenten
C-Library-Routinen und den Prolog Pr?ikaten.
Einige f?rende kommerzielle Datenbank Systeme k?nen direkt von
IF/Prolog in Verbindung mit den folgenden zwei Datenbank-Schnittstellen (Optionen) <
aufgerufen werden:
- Die generelle SQL-Schnittstelle - eine allgemeine SQL Schnittstelle, die
es IF/Prolog erm?licht, mit Oracle (V6 und V7), Informix (V4, V5 und
V6) und INGRES zusammenzuarbeiten. Da die Schnittstelle auch als
source-code ausgeliefert wird, kann man sie an andere SQL Datenbanken
angepassen.
- Die Informix Schnittstelle - eine umfassendere Schnittstelle zu Informix,
die den Zugang zu einer der erfolgreichsten SQL Datenbanken liefert.
- Unter IF/Prolog kann mit der strikten ISO Standard Syntax gearbeitet
werden, es werden aber auch Pr?ikate der Edinburgh Syntax unterst?zt,
die von Public Domain Prolog Programmen oder Bibliotheken benutzt werden.
- Fremdsprachen Support - IF/Prolog unterst?zt sowohl Fremdsprachen mit
8-bit Zeichensatz als auch eine grosse Anzahl Asiatischer Sprachen
(16- und 32-bit).
- Signal Handling - IF/Prolog kann auf Signale des Betriebssystems
reagieren und mit diesen als System Prozess zusammenarbeiten.
- Portabilit? -- IF/Prolog bietet eine einheitliche Entwicklungs-
und Runtime-Umgebung auf mehr als 600 Plattformen von mehr als
70 Hardware Herstellern. Es ist wahrscheinlich die am weitesten
verf?bare kommerzielle Programmiersprache der Welt. Der Quellcode
ist auf all diesen Plattformen kompatibel.
- Run Time Systeme - IF/Prolog Programme k?nen in bestehende
Anwendungen eingebettet werden, wobei der interaktive Teil von
Prolog f? den Benutzer nicht mehr sichtbar ist. Diese
Endbenutzerprodukte k?nen dann auf allen Plattformen ausgeliefert
werden, auf denen Prolog lauff?ig ist.
Sie ben?igen eine Runtime Lizenz f? jede unterschiedliche CPU,
auf der die Applikation l?ft.
IF/Prolog ben?igt mindestens 8 MB Hauptspeicher und ca. 10 MB freien Plattenspeicher. Die optionalen Schnittstellen ben?igen zus?zlichen Haupt- und Plattenspeicher. Zus?zliche Standard Shared Libraries werden in Verbindung mit IF/Prolog ben?igt.
IF/Prolog ist zu dem Standard C Compiler ihres Betriebssystems kompatibel.
|