Main Description Language

As well as supporting an AlgorithmDescriptionLanguage?, we also want to support a "Program" or "Main" description language. This allows the user to specify which algorithms are run on which data, as well as customising the output of the final result.

Primary Aims

  • Identify the parameters/data (Hidden Markov Models, constants, sequences).
  • Call algorithms specified by the AlgorithmDescriptionLanguage?, with parameters as defined by those above.
  • Manipulate and print the result

Basic Syntax

We will provide a new high level element, called "main". Only one such element is supported per program.

main([parameters]) {

We will provide statements with each of the aims in mind:

  • Variable declaration and assignment
  • Function call for algorithms.
  • Simple printing of the result.

These are deliberately defined with only limited scope in mind - we want to avoid defining a general purpose language. This simple language should provide a base to work from - once we have user feedback we can determine how flexible we need to be in, say, printing formatted output or performing post-algorithm calculations.

Furthermore, providing a "C" interface to the program will allow for a fine-grained customisation of the output, which is where I envisage the most flexibility will be required. Any access here must also bear in mind the primary aims of the software: in particular, to support generation without the need for customising output.

Data types

  • Numeric (Decimal/Floating? point/Integer) - Support should be similar to that within the HMM model.
  • List data type - a typed homogeneous list
  • HMM - A data type that can be extended by user definitions of HMM's. Provides a high level interface to HMM's
  • DynamicProgrammingTable? - a representation of the table of values. An area for storing the eventual computations of an algorithm. Accessors are provided by

Further Ideas

  • Manipulation of lists (i.e slicing a la Python).
  • Access to HMM's via the datatype, including
  • Printing options, such as join, for loops etc.
Last modified 10 years ago Last modified on Mar 19, 2010, 5:42:46 PM