Aztec is a general purpose object oriented programming language. The language provides a unique combination of power and flexibility while maintaining a simple set of operators and reserved keywords.
The primary design goals of the Aztec Programming Language include:
♦ Reduce the complexity of the core language by minimizing the number of primitive data types and operators.
♦ Provide a clean and consistent interface throughout the core language and class framework.
♦ Provide the ability to perform logic during the compile phase without requiring a separate preprocessing language.
♦ Support an event handling model which is easy to use, flexible and consistent throughout the framework.
♦ Provide automatic memory management for objects, but also offer the developer control over memory management where appropriate, including deterministic destructors.
♦ Provide the capability to display a UI on a remote machine and process events locally.
♦ Offer a comprehensive model for scope and visibility of identifiers.
♦ Look across all source modules to resolve identifiers.
♦ The language definition and the run-time environment must be nimble enough to be used as an effective scripting language for rapidly developing small utility applications, while at the same time being robust, flexible and efficient enough for developing larger software systems.
The Aztec Programming Language combines the power and capabilities of a complete object oriented programming language with the ease of use and flexibility of a scripting language. Aztec is implemented as an interpretive language which can be executed in two different modes.
♦ It can execute source code directly by implicitly performing a compile procedure and automatically sending the bytecode to the Virtual Machine for execution.
♦ It can explicitly perform a compile step to create one or more separate bytecode files for later execution in the Virtual Machine.
The Aztec Compiler, Class Framework, and Virtual Machine are all designed to have an extremely small footprint, making the entire system easy to install, use and share with others.
Aztec supports all of the standard features of an object oriented language, including multiple inheritance and polymorphism. All primitive data items are treated as objects, and a comprehensive and efficient framework for manipulating primitive data is provided.
♦ Each method in the primitive framework is implemented internally as a separate Aztec Virtual Machine instruction, maximizing run-time efficiency and providing a good argument for minimizing the number of operators in the language.
The net result is a language with a simpler and more consistent syntactical interface without losing any functionality or performance.
There are only four fundamental data types:
♦ 8 byte integer (int)
♦ 8 byte floating point (float)
♦ Variable length string (string)
♦ Boolean (bool)
A powerful set of instance methods is provided to manipulate the 8 byte integers in many ways – at the bit level, byte level, 2 byte and 4 byte levels – signed and unsigned. Every primitive data type also provides flexible data conversion methods to every other primitive type. When reading and writing integer and floating point data using the Aztec Framework, options are provided to convert the internal Aztec formats into a variety of binary sizes and formats, so clean data interchange with non-Aztec programs is easily maintained.
The Aztec Virtual Machine provides a completely safe execution environment. It maintains control over all object access, and ensures that the program does not perform any illegal operations.
♦ All operations are managed internally by Aztec, including math, file I/O, socket I/O and memory operations. All illegal operations are caught by the system and are turned into Aztec Exceptions which can be handled in code.
♦ Object referential integrity is always maintained. A reference variable is never allowed to point at an object which is invalid for the reference type. There is a formal mechanism provided to test and convert a base reference to a derived reference.
The Web Site
This web site contains the official documentation for the Aztec Programming Language, Aztec Class Framework and Aztec Engine. It is presented in the form of two separate books titled "Language Definition" and "Framework Definition".
♦ Each book provides a navigation bar on the left and displays each content page on the right side of the web site.
♦ Several navigation schemes are offered to provide intuitive access to the information.
The Aztec documentation is not intended to be a tutorial on object oriented programming. Experience with general programming and object oriented technology is assumed.
Thank you for your interest in the Aztec Programming Language. Learning a new language and framework is not a trivial task, and I appreciate you taking the time to learn about Aztec.
♦ During the alpha/beta phase, new Aztec Engine code containing enhancements and bug fixes will be released periodically.
I welcome all serious comments and suggestions, and I will give thoughtful consideration to all feedback that I receive.