Note: This website is archived. For up-to-date information about D projects and development, please visit wiki.dlang.org.

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.