Funnel is a programming language based on
Functional Nets combine key ideas of functional programming
and Petri nets to yield a simple and general programming
notation. They have their theoretical foundation in
Read our introduction to learn more
about Functional Nets and Funnel. Our
Overview of Functional Nets is the latest document describing
The first prototype implementation is Funnel0, a dynamically
typed version of Funnel. Funnel1 incorporates an experimental
type system. This statically typed version of Funnel is
introduced with release 5. The current release includes development
tools for both dialects.
Funnel0 and Funnel1 programs are compiled into Funnel
bytecodes. A virtual machine is executing these bytecodes.
Both the compiler and the runtime system are implemented in
Java. Therefore Funnel will
run on any platform which has at least a Java Runtime
Environment 1.2. Funnel programs itself can access
the full Java API. The latest funnel compiler is also able
to compile Funnel directly to Java bytecodes.
- Nested Types.
Martin Odersky and Christoph Zenger.In Proceedings FOOL8,
Workshop on Foundations of Object-Oriented Languages., January 2001.
- Colored Local Type Inference (colored version)
Martin Odersky, Christoph Zenger, Matthias Zenger.POPL 2001., January 2001.
- An Overview of Functional Nets.
Martin Odersky. Lecture Notes, APPSEM Summer School, Caminha,
Portugal, September 2000.
- Programming With Functional Nets.
Martin Odersky. Technical Report 2000/331, Ecole Polytechnique
Fédérale de Lausanne., March 2000.
- Functional Nets.
European Symposium on
Lecture Notes in Computer Science, Springer Verlag, 2000.
- A Functional View of Join.
Martin Odersky, Matthias Zenger, Gang Chen, and Christoph Zenger.
Technical Report ACRC-99-016, University of South Australia, 1999.
The latest versions of Funnel is available for download. It is
best installed on a Unix system with a
Java Development Kit 1.2 or later. The current release contains
a Funnel compiler with backends for Funnel- and Java-bytecodes. Furthermore,
a new Funnel mode for Emacs is included. You can download this mode separately
The Java backend of the Funnel compiler uses
Markus Dahm's BCEL library.
The Funnel Standard Library FSL is available as a separate
download. FSL is a library of purely functional
data structures implemented in Funnel. The library was developed
by Yacine Saidji.
- Release 9 from March 14, 2002:
download funnel-09.tar.gz or
- Release 8 from April 5, 2001:
download funnel-08.tar.gz or
- Release 7 from October 19, 2000:
download funnel-07.tar.gz or
- Release 6 from August 16, 2000:
download funnel-06.tar.gz or
Please send any suggestions, questions, bugs and
whatever comments you have concerning Funnel