Yampa is the culmination of our efforts to provide domain-specific embedded languages for the programming of hybrid systems using the concepts of Functional Reactive Programming (FRP). Yampa is structured using arrows, which greatly reduce the chance of introducing space- and time-leaks into reactive, time-varying systems.
A tutorial, which was part of the Advanced Summer School on Functional Programming in Oxford, August 2002, can be found here. (It's also included with the Yampa Robotics Simulator Bundle) The publication page of our group contains references to other publications on various aspects of FRP and Yampa that may be of interest. In particular Functional Reactive Programming, Continued covers some advanced topics beyond what is covered in the tutorial.
Yampa is still under active development. We occasionally make snapshots of our source code available for interested parties to learn more and experiment with using Yampa for their own applications.
Yampa releases include complete source code and detailed instructions on how to configure, build and install Yampa with either GHC or Hugs98 on either Linux or Windows. Caveat: This is a snapshot of work in progress. While we are very interested in having other users explore and experiment with Yampa, we make no claims that this is a finished product, and we reserve the right to make non-backward-compatible changes to the library interface in subsequent releases.
Yampa is currently provided in two different forms:
Download: Yampa-0.9.1.tgz
Download:
N.B.: The above distributions contain the same files, but use
line-termination conventions in text files appropriate to the given platform.
We are very interested in hearing from users. We have set up a mailing
list for Yampa-related comments, questions, discussions, and announcements:
yampa-users@cs.yale.edu.
To subscribe, click
here.
There is a separate list for reporting bugs:
yampa-bugs@cs.yale.edu
You can also get in touch directly with any of us using the e-mail
addresses listed below.
Yampa Robotics Simulator Bundle
This contains a source-only release of Yampa,
as well as a robotics library and graphical interactive robotics
simulator. This is essentially
the software that was used at the Advanced Functional Programming summer
school in Oxford in 2002. The bundle includes sources for the Arrow module, the
Arrowp preprocessor, and HGL (for X, not Windows) as well.
Version 0.9.1 is a minor update of 0.9, including a version of HGL that
should compile with GHC 5.04.1.
This release has only been tested with GHC and on
Linux/x86 and Solaris/Sparc platforms. It is unlikely to run out of the box
on Windows machines, particularly if you don't have a working version of HGL.
Yampa Core
This package
contains just the source code for the Yampa core, test suite
and example programs. This release is intended for developers or
advanced users, as you will have to provide significant amounts of extra
software to interface Yampa with your particular application domain (such
as robotics or graphics) in order to do anything interesting with
Yampa.
This package will always contain the most
up-to-date released version of the Yampa source code and license, so
developers planning to use Yampa in their own projects should always
fetch and install this version.
Feedback
What's Yampa?
YaMPA doesn't really mean anything, but this work started at Yale,
ended with Arrows, and had Much Programming in the middle. Yampa is
also a river in Colorado that combines continuous, placid sections
with an occasional abrupt transition - a perfect metaphor for hybrid systems.
We used to call this AFRP, but that's too hard to pronounce.
Yampa was developed in the
Yale Haskell Group. The main contributors to the present release are:
| Antony Courtney | antony@apocalypse.org | |
| Paul Hudak | paul.hudak@yale.edu | |
| Henrik Nilsson | nilsson@cs.yale.edu | |
| John Peterson | peterson-john@cs.yale.edu |