Welcome to the home of the Open Quark Framework for Java, and the lazy functional language CAL.

Open Quark provides Java with a compiled, highly efficient embedded lazy functional runtime, a native language “CAL”, and a bevy of APIs and tools for developing production Java applications that leverage the benefits of the functional paradigm as a part of their construction.

Open Quark allows for a full range of deployment scenarios, including:

  1. Mixed Java/CAL source applications

  2. CAL-only applications (running on the JVM)

  3. Function definition from Java (functional meta-programming)

  4. Concurrent CAL (multi-threaded evaluation)

Being intended as an embedded functional runtime for Java, Open Quark supports concurrent compilation and evaluation of functions, and the dynamic loading and disposing of modules.  Code can be precompiled (and loaded from JARs), or compiled on-the-fly.  Java code has a number of different ways of composing new functions, including a high-level object model, and a low-level CAL source model.

Open Quark includes developer tooling of various kinds, such as:

  1. A comprehensive Eclipse plug-in with CAL editor, browser etc.

  2. An interactive shell (command line tool)

  3. A graphical language with an IDE called the Gem Cutter

  4. Refactoring and navigation support

  5. Code profiling and debugging

  6. Code documentation (CALDoc)

  7. CAR/JAR packaging tools

Open Quark is used in commercial products.  It is mature and robust. 

What’s New:

We are finalising the Contribution Agreements for the project.

Please refer to the Community page.  With agreements in place, we will be able accept contributions to the project.

Added a link to Nik Shaylor’s CAL Games web page.  See Links.

The Gem Cutter is a graphical language IDE for the convenient creation and testing of functions

Click here to see a sample of the CAL languagehttp://openquark.org/Documents/tutorial_calintro.html