AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte FPr lite - Interpreter für Function-Level-Programme [Update]
Thema durchsuchen
Ansicht
Themen-Optionen

FPr lite - Interpreter für Function-Level-Programme [Update]

Ein Thema von fpstefan · begonnen am 2. Mär 2012
Antwort Antwort
fpstefan
Registriert seit: 5. Sep 2006


Hallo,
es ist schon 35 Jahre her, da veröffentlichte John Backus (bekannt von FORTRAN und BNF) anlässlich
zum ACM Turing Award 1977 seinen Aufsatz "Can Programming Be Liberated from the von Neumann Style?
A Functional Style and Its Algebra of Programs
" [1]. In diesem Aufsatz beschreibt er einen
Kombinator-Stil, den er damals FP-Systeme nannte. Später nannte er diesen Programmierstil
Function-Level Programming. Es werden kleine Programme mittels Kombinatoren zu größeren Programmen
zusammengebaut.

Ich habe eine Unit in Delphi erstellt, die ein FP-System verarbeitet, das als Datenstruktur nur die
verkettete Liste unterstützt. Dabei liegt ein Function-Level-Programmtext als txt- oder fp-Datei vor
und wird beim Start des Programms in verkettete Listen compiliert, die Funktionsbezeichnern zugeordnet
werden, dann wird das Programm, das ja als Listen vorliegt von einem Interpreter verarbeitet.
Als Vereinfachung habe ich die Infix-Notation gewählt: der Interpreter kennt nur Funktionen und
Operatoren in Infixschreibweise, die zudem rechtsassoziativ sind.

Eine kleine Zusammenstellung zu Function-Level-Programming ist hier zu finden:
http://dl.dropbox.com/u/17011839/FLinks.html

Ein Download eines Archivs mit dem Interpreter und Beispielprogrammen und zudem der Delphi-Unit
(vmunit.pas im Unterordner Delphi XE2) ist im heise Software-Verzeichnis zu finden:
http://www.heise.de/download/fpr-1168853.html

Die Unit vmunit.pas ist leider wenig dokumentiert und einige Variablen sind auf einen
implementierten Garbage-Collector ausgerichtet. Der Interpreter duldet nach außen keine Seiteneffekte,
ist also referentiell Transparent.
[Update:] Als Reaktion auf die Kritik in der vorherigen Projektvorstellung ist das Programm
in eine Unit für die VM und für die GUI unterteilt worden. Die Guiunit ist für die Seiteneffekte
und das Formular zuständig.

Die Unit vmunit.pas für das FP-System ist unterteilt in
- Schnittstelle
- Konstanten
- Automatische Speicherverwaltung
- Umwandlung von Listendarstellung in Textdarstellung
- Compiler (Pre- und Post-Compilierung)
- Prädikate
- FPr-Interpreter und Primitive (größter Abschnitt)
- Initialisierung

MfG Stefan

[1]
http://www.thocp.net/biographies/pap...rd_lecture.pdf
 
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz