MiniD 2 Language Specification
This is the specification for version 2 of MiniD. This specification is still under development and is not yet complete in many areas. Differences from MiniD 1 are noted throughout the spec in green boxes. I'll probably aggregate all the changes into a single page come the release of MiniD 2.
MiniD 2 is my main focus of development. The spec is pretty much complete; I don't really plan on changing much and I think I'm out of ideas to add. The new MiniD 2 implementation is very nearly complete as of the middle of October and a beta or release candidate should be out soon.
- MiniD 2 Specification
- Compilation - Describes the process of compiling source text into an executable form.
- Execution - How the compiled MiniD code is actually run.
- Lexical - The very basic textual bits that the language is made up of.
- Expressions - The algebraic language syntax of MiniD.
- Statements - Various language constructs.
- Types - A description of the various data types in MiniD.
- Declarations - How one declares and initializes variables.
- Functions - How to declare functions and what they can do.
- Objects - The object-oriented aspects of MiniD.
- Modules - The largest blocks of organization in MiniD, and how to work with them.
- Metamethods - How to customize the behavior of objects and perform operator overloading.
- Grammar - The (mostly-correct) EBNF grammar for MiniD.
- Standard Library - The library of code which accompanies MiniD.
- Base Library - A set of simple/common functionality that doesn't fit anywhere else.
- Modules Library - A subset of the base library that holds the functions and structures necessary for the MiniD module system.
- Thread Library - A subset of the base library that has to do with threading and thread objects.
- Array Library - A library of common array functions.
- Character Library - Character classification and modification.
- Hash Library - Operations that are mostly applicable to both hash types: tables and namespaces.
- IO Library - A library providing basic streamed file IO.
- Math Library - Regular old math functions.
- OS Library - Some OS-dependent functionality.
- RegExp Library - String manipulation and matching with regular expressions.
- String Library - Functions for manipulating strings.
- Time Library - For timing things and getting the system time.
- Base Library - A set of simple/common functionality that doesn't fit anywhere else.