Introduction
The Tesseræ system is a set of tools to allow the building of component-based programs. Components are written in standard languages (at the moment C is supported) with extensions to deal with interface calls and then linked together using the architectural description language Tesseræ.
What are Components?
Components are self-contained blocks of code that communicate with other components via “interfaces”, essentially bi-directional lists of function calls. If a component provides or uses an interface then it must implement all of the functions or events required by that interface. This means that any pair of interfaces of the same type on any components can be linked together.
The organisation of components can be changed at run time. This makes the writing of software for adaptive devices easier since components can be written to do a single job only and then be switched around by the component system at runtime rather than having to clutter the program code with lots of if/then statements to deal with all the different ways in which the device can adapt.
Components allow for easy abstraction of hardware. Hardware functions can be wrapped in components with standard interfaces. When software is ported from one platform to another only the hardware abstraction components need to be changed. The component compiler will inline code when compiling to avoid multiple function call inefficiencies.
Components allow easy source-level simulation. Hardware abstraction components can be replaced by simulation components and the source code compiled on a simulation platform.
The ways in which components can be linked together and the ways in which calls on interfaces can be used can be checked at compile time to help ensure the correctness of the compiled code.
Kits
A component “kit” is a hierarchical organisation of components. Multiple kits may be specified at compile time. These will be overlaid to provide the “working kit” that the component compiler selects from while compiling.
Documentation
| Reference Manuals | ||||
| DOC | Tesseræ Reference Manual | (0.0.5) | ||
| DOC | Aisle Reference Manual | (0.0.13) | ||
Literate Programming
“Literate Programming” is a method of programming where the documentation about the source code (not the user documentation, the user should never have to look at the source code) is intermingled with the source code. All the Tesseræ source code is written using the illit literate programming system. Links to the formatted literate source of a program are indicated with the LIT icon.
Version Numbers
The Tesseræ system and tools that were produced during its creation have a standardised version number system. Version numbers follow the GNU style and are always of the form “major.minor.patch”. In general, minor changes between releases are shown by the patch number; different but compatible versions are shown by the minor version number; and major or incompatible changes are shown by the major version number.
All software starts out at version 0.0.1 (this version may well never be released except within the software team), the first beta (mostly reliable, but possibly incomplete) release is 0.1.0, and by the time the version number has reached 1.0.0 the software can be expected to have reached a good level of completeness and reliability.
When a program or document is modified from a released version it will have a plus sign appended to its version number (eg. “0.1.2+”). These versions should be considered unstable.
Related Tools
illit
“illit” is a simple literate programming system. Literate programming allows the inclusion of program documentation into the program code itself, hopefully meaning that the chances of the two getting out of sync are much lower than with the traditionally separate code documentation. illit is written in Perl and has been tested under Linux and FreeBSD. It may work under Windows.
| DOWNLOAD | LIT | DOC DOC | illit, A Literate Programming System | (0.0.5) |
Tesseræ LaTeX Class
For formatting documentation for the Tesseræ system.
| DOWNLOAD | LIT | DOC | Tesseræ LaTeX Class File | (0.1.1) |