General presentation
Back
to Summary
Z Language
KHAWARIZM is an environment for learning and deepening the
main data and file structures.
KHAWARIZM offers the possibility to write algorithms in an algorithmic
language (Z-language), to indent them, to run or simulate them and to
convert them automatically to the PASCAL and C programming languages.
KHAWARIZM aims at the assisted design of algorithms.
KHAWARIZM offers several windows
showing :
-Data ( Readings )
- Results of the run ( Writings )
- Results of the simulation ( Complete trace )
At any time in KHAWARIZM, you can invoke the help ( F1 ) or activate
operations with buttons.
KHAWARIZM offers the
following services:
- An editor to write your algorithms providing all the documentation on the
Z language.
- An indentor to arrange your algorithms.
Its main features are :
. each statement is written on a different line,
. the keywords are rewritten in upper case (or lower case),
. the first character of any identifier is rewritten in upper case,
. control structures are highlighted,
. instructions of the same level start on the same column.
. the "ventilation step" is variable.
- An interpreter to execute your algorithms, giving as a result all the
writings emitted (Results window).
- A simulator to give the complete progress (window "Simulation") of your
algorithms by showing the evolution of all the manipulated objects. This
helps you to correct or build your algorithms.
- A translator for automatic conversion of algorithms to Pascal or C
programs.
In KHAWARIZM, the algorithms are expressed in an algorithmic
language (the Z language).
The particularity of the Z language lies in the fact that it can write
algorithms on abstract machines simulating the main data structures.
The Z language is designed primarily for the following purposes:
- Experimenting on the main data structures, regardless of their
implementation, by developing algorithms on
. arrays
. structures,
. linked lists,
. two-sided lists,
. queues,
. stacks,
. binary search trees,
. m-ary search trees.
- Creating and managing complex data structures including
. linked list of queues,
. linked list of stacks, ,
. tree of linked lists,
. linked list of stacks of arrays,
. etc...
- Writing recursive algorithms.
Thanks to the abstract machine defined on files, the Z language also allows
the use of files and the construction of both simple and complex file
structures.
KHAWARIZM offers all the documentation on
the Z language.
KHAWARIZM provides the Z --> PASCAL and Z --> C translations.
KHAWARIZM gives some possible implementations in PASCAL and C of the various
abstract machines considered in the Z language.
All the documentation is collected in a hyper-text.