Extending SQL
It is customary for large software systems have their own,
internal report generators. That's where our software started
as well. Because of its universality, we chose SQL as the
basis of query generation for the reporting engine. However,
it soon turned out that standard SQL is insufficient for handling
tasks such as interactive date selection when running user-created
reports. These could have been "hardcoded" into the system,
but it is important that the users have the freedom of creating
their own customized reports. So we extended the standard SQL
language with additional elements which are resolved into
SQL when the query script is run in the report engine.
Document language
However, we didn't stop there. We added markup commands which
enable the user to control the typesetting of reports and other
documents. This part of the language, while much simpler, follows
the example of TeX, the mathematical typesetting language created
by D. Knuth. Finally, we added general commands to the scripting language
making it a full-fledged programming language. This scripting
language (ASL, the "amsiware scripting language") enables
the user to extend the system. The user may add procedures to the program
not yet available. For example, the user may need to change
the value of a field in all records of the table. By using ASL,
this can easily be added to the system as a script and be
run as a new menu option in the user's personal
links . Other examples include creating customized
e-mail messages to clients, or even creating web pages
with full formatting blended with database information.
ASL is a way for the users to customize their systems without
changes to the source code of the basic system.
|