Entwickler-Ecke
Open Source Projekte - Interpreter für Function-level Programme
Fpstefan - Sa 11.08.12 02:57
Titel: Interpreter für Function-level Programme
Hallo.
Mit Delphi XE2 habe ich einen Interpreter für Function-level Programme zusammengestellt.
Wer an die Ursprünge von John Backus zu diesen Thema interessiert ist :arrow:
https://dl.dropbox.com/u/17011839/entwickler/backus_turingaward_lecture.pdf
Die Idee habe ich etwas abgewandelt, es gibt Operatoren und Funktionen und es gibt die Definition von neuen Funktionen
/ Operatoren. Die Operatoren haben immer die Infixnotation.
Beispiele:
f + g (Addition)
f * g (Multiplikation)
f , g (cons-Verkettung)
f o g (Funktionsverkettung)
x & (Konstante)
name == term (Definition)
In dem Bild habe ich noch weitere Beispiele:
Eine zip-Datei liegt als Download vor :lupe:
zip-Download (zip, 3.69 MB) und eine setup-Datei :welcome:
setup-Download (exe, 3.83 MB)
Und ein wichtiges Prinzip ist die Regel recht-vor-links auch rechts-Assoziation genannt.
UPDATE: Ich habe einen Öffnen-Dialog eingebaut, um Skripte hinzuzuladen, und ein Werbebanner.
Gruß Stefan
Mathematiker - Sa 11.08.12 12:46
Hallo,
Fpstefan hat folgendes geschrieben : |
Mit Delphi XE2 habe ich einen Interpreter für Function-level Programme zusammengestellt. |
obwohl ich keine Ahnung davon habe, was ein Interpreter für Function-level Programme ist, bin ich immer offen für alles mir Unbekannte. Schließlich will man ja auch etwas lernen. Nach
http://de.wikipedia.org/wiki/Functional_Programming_System usw. ahne ich ungefähr, worum es geht. :nixweiss:
Seit mehr als 2 Stunden versuche ich nun, Deinem Programm irgendetwas zu entlocken. Ich schaffe es nicht.
Kannst Du bitte erklären, wie ich Deine mitgelieferten Beispieldateien (*.fp) in Dein Programm hineinbekomme und wie ich dann die geladene Datei abarbeite. Bis ich durch Zufall mitbekam, dass ein rechter Mausklick auf das Logo ein Menü anzeigt, hat es auch schon etwas gedauert. Dort gibt es aber keine Möglichkeit eine Beispieldatei zu öffnen.
Mein "erfolgreichster" Versuch ohne ständige Exception-Meldungen war bisher
Quelltext
1: 2:
| file::'primzahlen' (file :: 'primzahlen') |
Schon
Quelltext
1: 2:
| input : file (exception :: 'STOP') |
brachte wieder eine Fehlermeldung. Ich stelle mich einfach zu blöd an. :(
Beste Grüße
Mathematiker
Fpstefan - Sa 11.08.12 15:13
Hallo Mathematiker,
Zitat: |
Kannst Du bitte erklären, wie ich Deine mitgelieferten Beispieldateien (*.fp) in Dein Programm hineinbekomme und wie ich dann die geladene Datei abarbeite. |
Zugegeben ich war ein bischen faul was Dokumentation betrifft.
Die *.fp Dateien sind Skripte im .txt oder .rtf Format, die werden in Windows per Drag-and-Drop auf die Auswerter-Datei (FPrlite.exe) gezogen; dann arbeiten die sich schon ab und geben das Ergebnis als Grafik oder Text aus.
Das Textfeld kann man wie eine Console verwenden und zB folgenden Text eingeben:
last == (nilp o tail) -> 1 ; last o tail
und dann <Return-Taste> übernimmt den Text. Um "last" auszuprobieren kann man eingeben:
last : (list :: aa bb cc dd ee)
und dann <Return-Taste> wertet den Text aus.
Mit einem Mausklick auf das Banner mit dem Logo, kann man zB Dump auswählen, dann werden alle Definitionen
angezeigt und "last == ..." zB auch.
(f o g) : x entspricht f(g(x)) das ist das besondere am Function-level Programming.
Gruß Stefan
Mathematiker - Sa 11.08.12 22:01
Fpstefan hat folgendes geschrieben : |
Die *.fp Dateien sind Skripte im .txt oder .rtf Format, die werden in Windows per Drag-and-Drop auf die Auswerter-Datei (FPrlite.exe) gezogen; dann arbeiten die sich schon ab und geben das Ergebnis als Grafik oder Text aus. |
Ich habe unter Vista und Windows 7 zum einen aus dem Windows Explorer zum anderen aus dem Windows-Commander versucht eine *.fp-Datei per Drag-und-Drop auf pfrlite zu ziehen. Es geht nicht. Das Programm nimmt die Datei nicht an.
Dann habe ich eine *.fp-Datei in *.txt umbenannt; mit dem gleichen Ergebnis.
Dann habe ich versucht, den Inhalt einer *.fp-Datei mit Kopieren und Einfügen in das Programm zu bekommen. Geht leider auch nicht.
Tut mir leid, dass ich nichts Erfreulicheres sagen kann.
Beste Grüße
Mathematiker
Fpstefan - Sa 11.08.12 23:33
Hallo Mathematiker,
Zitat: |
Ich habe unter Vista und Windows 7 zum einen aus dem Windows Explorer zum anderen aus dem Windows-Commander versucht eine *.fp-Datei per Drag-und-Drop auf pfrlite zu ziehen. Es geht nicht. Das Programm nimmt die Datei nicht an. |
Das hört sich ja nicht gut an. Da ich WindowsXP verwende ist mir das noch nicht aufgefallen.
Ich werde dem Problem nachgehen. Danke für diesen wichtigen Hinweis.
Gruß Stefan
Fpstefan - Sa 26.01.13 22:50
Hallo,
da es wohl Probleme mit dem Laden von Skripten unter Windows7 und Vista gab,
habe ich ein Öffnen-Dialog in das Programm eingearbeitet. (Klick auf das Banner
mit dem Logo, dann im Popupmenü)
Dann kann man Skripte in das laufende Programm hinzuladen.
Ich hoffe, dass der Dialog keine Probleme unter Windows7 und Vista hat.
Wenn das Programm eine Grafik anzeigt kann man mit ESC wieder in das Console-Feld.
Ich wollte auch ein bisschen Werbung machen und habe ein Werbebanner mit eingebaut.
Gruß Stefan
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!