Commit 33613b6a authored by Fredrik Wieczerkowski's avatar Fredrik Wieczerkowski

Update build instructions

parent 6d0080c2
# Curry Frontend
The Curry frontend parses source files (`.curry`), emits errors and
warnings, performs various checks and transformations and
generates FlatCurry (`.fcy`, `.fint`) or AbstractCurry (`.acy`, `.uacy`).
generates FlatCurry (`.fcy`, `.fint`) or AbstractCurry (`.acy`, `.uacy`) amonst other formats.
The project originated from a modified version of the
Münster-Curry-Compiler (MCC) for use as a frontend in PAKCS.
## 1 Installation
### 1.1 Installation der Binary-Distribution
## Requirements
Die Binary-Distribution befindet sich in einem tar-Archiv und wird
durch folgendes Kommando entpackt:
* `cabal-install`
* A recent version of the `curry-base` package, installed locally
tar zxvf <Distribution>.tar.gz
## Building
Danach steht der Compiler im Verzeichnis 'mcc' zur Verfügung.
To build the project, run
### 1.2 Installation der Source-Distribution
> cabal v1-build
Nach dem Entpacken des tar-Archivs mittels
## Running
tar zxvf <Distribution>.tar.gz
To run the project, you can use
kann der Compiler durch Aufruf von 'make' im Verzeichnis 'mcc' installiert
werden. Bei Recompilierung (z.B. nach Änderungen in der Quelldateien)
wird empfohlen vor einer erneuten Installation 'make clean' auszuführen.
> cabal v1-run
Nach erfolgreicher Installation befindet sich in beiden Fällen im Verzeichnis
'mcc/bin/' folgende ausführbare Datei:
Alternatively, you can launch the built executable manually from `dist/build/curry-frontend`.
cymake - der Curry-Programm-Builder
## Usage
Dieses Tool übersetzt Curry-Programme unter Berücksichtigung der Import-
abhängigkeiten.
For a detailed overview of the available options, you can use:
## 2 Kommandoübersicht
> curry-frontend --help
In der folgenden Tabelle sind die Optionen zur Generierung der jeweiligen
Darstellungen für das Kommando 'cymake' aufgelistet:
### Available Formats
--flat : Erzeugt FlatCurry- und FlatInterface-Datei
--xml : Erzeugt FlatXML-Datei
--acy : Erzeugt (typinferierte) AbstractCurry-Datei
--uacy : Erzeugt ungetypte AbstractCurry-Datei
```
--flat : Generate a FlatCurry and FlatInterface file
--xml : Generate a FlatXML file
--acy : Generate a (type-inferred) AbstractCurry file
--uacy : Generate an untyped AbstractCurry file
```
## 3 Erzeugung von FlatCurry- und FlatXML-Programmen
#### Generation of FlatCurry and FlatXML files
Die Übersetzung eines Curry-Programms 'file.curry', sowie sämtlicher
importierter Module nach FlatCurry bzw. FlatInterface, bewirkt folgendes
......@@ -64,7 +60,7 @@ Kommando:
Die hierdurch generierte Flat-XML-Datei hat die Endung '_flat.xml'.
## 4 Erzeugung von AbstractCurry-Programmen
#### Generation of AbstractCurry files
Die Übersetzung eines Curry-Programms 'file.curry' nach (typgeprüftem)
AbstractCurry bewirkt folgendes Kommando:
......@@ -93,7 +89,7 @@ entsprechenden Interfaces für die Typinferenz (nur im Fall der getypten
AbstractCurry-Generierung) und die statisch-semantische Analyse benötigt
werden.
## 5 Anmerkungen
## Remarks
- Um die PAKCS-Bibliotheken (insbesondere die Prelude) für Übersetzungen
nutzen zu können muß die Umgebungsvariable 'PAKCS_LIB' auf die
......@@ -110,7 +106,7 @@ werden.
data T _ = C
## Bekannte Probleme
## Known Issues
- Lambda-, do-, if-, case-, oder let-Ausdrücke, die in Argumenten von
Funktionsaufrufen verwendet werden, müssen immer geklammert werden.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment