pi-RED / KiR
pi-RED is a complex software system for developing and evaluating programs in a functional language. It provides a sophisticated systax-directed editor and a
complete run-time environment for functional languages featuring the reduction semantics of an applied lambda-calculus. Both programming and program execution
are supported as fully interactive processes. Programs may be constructed either top-down or bottom-up by systematically inserting expressions into place-holder
positions of other expressions or by replacing expressions with others. Program execution is realized as a sequence of meaning-preserving program transformations
based on a fixed set of rewrite (or reduction) rules, of which the most important one is a full-fledged beta-reduction. Programs may either be run to completion `in
one shot' or be reduced in a step-by-step mode, with intermediate programs being displayed to the user for inspection and modifications. Due to the availability of a
full-fledged lambda-calculus, pi-RED fully supports higher-order functions: functions may be freely applied to other functions or to themselves, and new functions
resulting from the evaluation of (partial) function applications may be made visible to the user in high-level notation.
pi-RED is available with a implementation of the functional language KiR (for Kiel Reduction Language) which is strict, statically scoped and
dynamically typed.
In addition to the features that are common to almost all functional
languages, KiR includes APL-like structured data types for efficient
numerical computations, and sophisticated pattern matching facilitaties
which make it ideal tool for prototyping other languages and their run-time
environments.
Contents of this page:
Included in the distribution is the complete interactive programming environment (editor, preprocessor, reduction system simulator, postprocessor and online help),
the KiR-Manual as well as installation instructions so you should be able to install it easily on Unix Workstations.
(Tested and preconfigured for Sun, Apollo, HP, NeXT and Linux.)
- User's Guide
(documents the language KiR and the use of the reduction machines)
- lneu-0.4.1
(interpreting version pi-RED^*)
- red-0.7
(compiling version pi-RED^+)
The archives are packed using tar and GNU gzip.
Copyright Notice:
The documents below are provided as a means of timely dissemination of
information and are intended for personal use only. All other uses of
the materials, such as reposting or reprinting, require the explicit
permission of the copyright holder. Copyrights are maintained by the
authors or the publishers (e.g., Springer or ACM).
- W. Kluge:
A User's Guide for the Reduction System pi-RED
[ps-file]
University of Kiel, Institute for Computer Science and Applied Mathematics,
Internal Report 9419, 1994.
- C. Schmittgen:
Spezifikation der Architektur und Realisierung eines Reduktionssystems
mit konsequenter Unterstützung strukturierter Datenobjekte und
n-stelliger definierter Funktionen
PhD thesis, TU Berlin, 1986.
- D. Gärtner:
pi-RED^*: Ein interaktives codeausführendes Reduktionssystem
zur vollständigen Realisierung eines angewandten
Lambda-Kalküls
PhD thesis, CAU Kiel, 1991.
- H. Blödorn:
Organisatorische Maßnahmen zur effizienten Unterstützung
höherer Sprachkonstrukte in einem interaktiven Reduktionssystem
PhD thesis, CAU Kiel, 1992.
- C. Schmittgen, H. Blödorn, W. Kluge:
pi-RED^*: A Graph Reducer for Full-fledged Lambda-Calculus
In: NGC, 10 (2), 1992.
- D. Gärtner, A. Kimms, W. Kluge:
pi-RED^+: A Compiling Graph Reduction System for a Full Fledged
Lambda-Calculus
[ps-file]
In: Proceedings of the 4th International Workshop on
Parallel Implementation of Functional Languages, RWTH Aachen, 1992.
- D. Gärtner, W. Kluge:
pi-RED^+: An Interactive Compiling Graph Reduction System for an
Applied Lambda-Calculus
In: Journal of Functional Programming, 6 (5), 1996.
- W. Kluge, C. Rathsack and S.-B. Scholz:
Using pi-RED as a Teaching Tool for Functional Programming
and Program Execution
[ps-file]
In: Functional Programming Languages in Education, LNCS 1022, Springer, 1996.
- W. Kluge:
A Lazy Variant of the Reduction System pi-RED
In: Proceedings of the 8th International Workshop on
Implementation of Functional Languages, CAU Kiel, 1996.
- C. Rathsack:
Zur Übersetzung von Termen eines angewandten Lambda-Kalküuls
unter besonderer Berücksichtigung der Rückübersetzbarkeit
ausgezeichneter Zwischenzustände der Codeausführung
PhD thesis, CAU Kiel, 1996.
- C. Reinke:
Functions, Frames, and Interactions:
Completing a Lambda-Calculus-Based Purely Functional Language
With Respect to Programming-in-the-Large and
Interactions With Runtime Environments
[ps-file]
PhD thesis, CAU Kiel, 1997.
- R. Schröder:
Experiments on Speculative Evaluation in a Functional
Programming Language
PhD thesis, CAU Kiel, 2000.
KiR group, CAU, Department of Computer Science,
Olshausenstrasse 40, 24098 Kiel, Germany;
base@informatik.uni-kiel.de;
Tel.: +49 431 880-4482;
FAX: +49 431 880-4054;