Eye of HorusHeader

Clarity Programming




Clarity is a schematic functional programming environment that allows you to design and implement programs by drawing them. The picture below shows an example of the hypotenuse function that expresses Pythagoras' theorem.


The Clarity environment allows you to draw your programs and then run them. The drawing is called a 'schema' and appears like a data flow graph where data is processed by functions and passed onto other functions for further processing. You select the functions from an extensive library and link them up with arrows. The final result is another function which you can add to the library. All this is done within a friendly environment which guides you through any difficult design processes.

Behind the scenes, Clarity converts your design drawing into the interpreted functional functional database language FAITH. This has the advantage that no additional database is needed and with advanced pattern recognition features built-in, complex recursive queries can be handled. Using your own DLL's written in for example C, C++, C# or Fortran, Clarity may be extended to suit any purpose such as communicate with other programs or act as a HTTP server.

Using the network windows of Clarity, various code views can be made. Additional emphasis may be given to function groups by using different colours and different sizes. With quick access to every function by simply double clicking on it, navigation is made easy.

Network Example

The advanced exporting functionality of Clarity allows you to easily share functions between programs. Clarity ensures that in addition to the selected functions, all elements needed to perform the functions correctly are exported. This guarantees the same functionality in the imported program as it had in the exported one.

The Clarity programming environment has advanced facilities for creating and maintaining technical documentation of programs. Every element in a function can be given a separate annotation. Using the see-through facility, annotation can be shared between various views simplifying any updating of documentation.

The Clarity programming environment uses the functional database language FAITH. FAITH is a weakly typed functional language meaning that some types are included and are dynamically type checked. Using constructors, additional types may be created. Clarity has many types built in such as: Boolean, characters, integers, floats, tuples, lists and sets. This makes Clarity a fully developed functional programming environment suitable for any purpose.

ClarityPro comes with a Clarity kit. The kit is a collection of useful databases and variations of Clarity (see below). It is possible to link with any other language through different mechanisms provided by ClarityPro and the software in the Kit,. For example, it is possible to embed Clarity programs into existing programs using ClarityDLL while gaining all the advantages by developing programs in Clarity.

Back to top>>


Creating programs using the Clarity programming environment has many advantages over conventional programming and integrated development environments (IDE) such as:

  • Elimination of Syntax Errors
  • Model development in half the time with fewer errors (see book Drawing Programs for experimental data)
  • Built-in easy to use documentation system
  • Automatic impact analysis to maintain overall program consistency
  • Quick navigation through programs using function list, program tree or network windows
  • Advanced code importing and exporting facilities
  • Effortless refactoring of systems
  • Straightforward communication by conveying ideas with Clarity diagrams
  • Unique complexity management system with network windows
  • Environment fully compatible with rapid prototyping (RP) and extreme programming (XP) methods
  • Significant reduction in maintenance time
  • Suitable for programming without a keyboard (programming on notebooks, palm tops or mobile phones)
Back to top>>

Clarity Products

Clarity programming tools are available in four variants: ClarityPro, ClarityLite, ClarityEye and ClarityDLL. ClarityPro and -Lite can both be used to create and interpret programs while ClarityEye and -DLL can only interpret. However, there is the possibility of dynamic function creation where functions can be created during runtime.

  1. ClarityPro
    The entire programming environment with all capabilities.
  2. ClarityLite
    A stripped version of Clarity Pro where all Input/Output functionality has been removed apart from several functions needed to communicate with users at a very basic level.
  3. ClarityEye
    An interpreter that allows you to run all programs created in either Clarity Lite or Clarity Pro but without the ability to create new ones.
  4. ClarityDLL
    A data link function that has all the functionality of ClarityEye. This enables the use of Clarity as a function within another program.

Back to top>>

Product Comparison

The features of each individual product are listed in the table below.

  Clarity Lite™ Clarity Eye™ Clarity Pro™
Program Development Yes No Yes
Interpreter Yes Yes Yes
Dynamically Linked Libraries No Yes Yes
IO / Graphics / Maths Interfaces No Yes Yes
Networking No Yes Yes
Query Kit No No Yes
Forum Support No No Yes

Back to top>>


Copyright 2000-2009© Tom Addis and Jan Addis
The site originally was designed by Bart-Floris Visscher and the current site has been modified by Tom Addis