10 Sep 2020

Zoea is already one of the simplest programming languages in existence. In order to improve its usability even further we have recently added a graphical programming language variant called Zoea Visual.

Zoea Visual enables users to construct programs without writing a single line of code. It is based on a simple and intuitive data flow representation. Data in test cases is organised in columns that represent the familiar data, input, derive and output structure of Zoea programs. As with regular Zoea it is possible to have multiple derive columns if required. Zoea Visual also permits any number of input and output elements.

Individual data elements are represented visually as input fields, lists, tables or objects. It is also possible to create arbitrary composite structures such as embedding an object in a list. In this way Zoea Visual can represent any JSON data structure visually. Comments and data element labels can also be added.

Zoea Visual introduces a new concept of dependencies between data elements. These are represented visually as connectors between elements that normally resemble triangular arrows. Dependencies allow the user to specify one or more source data elements for a given target element. Links can be created between any data elements including tables, rows and individual cells.

The additional information provided by dependencies enables the compiler to produce larger programs more quickly. Dependencies also help to make the program more comprehensible by capturing an important part of the developer intent. The use of dependencies is entirely optional.

The case diagrams also help to provide better feedback during compilation. As compilation proceeds values and dependencies are colour coded to provide feedback on current progress and success or failure. If a solution for a program has not been found it will now be obvious to the user which particular test case/value requires attention.

Zoea Visual can also be used to run compiled programs. At runtime the input and output column elements are used to produce simple input and output forms.

Zoea Visual complements the original Zoea language for those users who prefer the visual programming paradigm.