What is Jazz?
is a high-level programming language
for expressing, in a concise and accurate way, large
digital synchronous circuits. From a language-designer
is a declarative, single-assignment,
higher-order, lazy, functional, and object-oriented
language with parameterized types and multi-methods.
is strongly-typed (with a type-system derived from ML-sub) and supports
both the explicit and implicit declaration of variables and methods
thanks to a powerful constraint-based type-inference algorithm. The
syntax of Jazz and
its object model are Java-like and should look familiar to any
is currently being implemented by Alexandre Frey
in cooperation with Gérard
Berry, Patrice Bertin, and François
Bourdoncle (CMA, École des Mines de Paris), and Jean Vuillemin (DMI, École
the language is not finalized yet, and lacks any form of
documentation. Try it at your own risks!
(use the links in the source code to navigate)
- The standard jazz.lang
package accessible by all programs.
- The jazz.util
package containing various utility classes.
- The jazz.io
package for performing input/output operations.
- The jazz.unsafe
package containing classes and methods with side-effects allowing package
implementors to write efficient code.
- The jazz.circuit
package for creating circuits.
- The jazz.circuit.pam package for
creating circuits on PAMs and Pamettes using the PamDC library.
- The jazz.circuit.bdd
package for creating and manipulating Binary Decision Diagrams.
allowing the symbolic manipulation of circuits and the algorithmic generation
of circuits in an imperative way.
- The jazz.circuit.esterel package
allowing the parsing of Pure Esterel programs and their compilation into
circuits as defined in A Hardware
Implementation of Pure Esterel G. Berry. Sadhana, Academy Proceedings
in Engineering Sciences, Indian Academy of Sciences, vol. 17, part 1
system is written in Java and is compiled
using the TowerJ
Bourdoncle, $Date: 1998/12/16 15:09:49 $.