OADL - Object/Array Data Language

A dynamically-typed object-oriented language

Ross Cunniff


Introduction

OADL is released under the MIT public license - http://www.opensource.org/licenses/mit-license.php - which states in full:

Copyright (c) 1997 Ross Cunniff

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

This means that anybody may do just about anything they want with this documentation and OADL source, as long as this copyright notice is retained. At this time, the OADL source itself has not been published.

OADL Overview

OADL - Object/Array Data Language - is an interpreted object-oriented language with dynamic typing and implicit memory management. It was designed for convenient implementation of applications with large numbers of pre-initialized objects (for example, a text adventure). OADL supports multiple inheritance, operator overloading, multi-dimensional array-valued expressions, and static and dynamic linking of OADL programs. OADL also implements an interactive desk calculator mode. Most of the examples in this documentation are intended to be used in this mode.

OADL was especially designed for embedded use in computer games; for example, it can be used:

This documentation presumes that the prospective OADL programmer has some familiarity with C, C++, and object-oriented programming in general.

This documentation is hosted at http://rcunniff.com/OADL/oadl.html. Several OADL test programs can be found at Tests/index.html . Actual adventure game sources written in OADL can be found at ADV/index.html . Documentation of the OADL command-line implementation can be found starting at MANPAGES/oadl.html. An index of all of the OADL man pages can be found at MANPAGES/manpages.html.

This reference is broken up into the following chapters:

  1. Introduction (this page)
  2. Lexical Elements
  3. OADL Program Syntax
  4. OADL Types
  5. Arrays, Lists, and Strings
  6. Dictionaries
  7. Classes
  8. Objects (Instances)
  9. Expressions
  10. Procedures
  11. Intrinsic Methods and Procedures
  12. External Procedures
  13. Input / Output
  14. OADL Format Specifiers
  15. Predefined Symbols
  16. Glossary
  17. OADL Implementation Notes
  18. Lex / Yacc Grammar

Continue to Lexical Elements