Language Specification /
Original
Original chapters of the D language specification: (let's keep the list below in sync with the specs).
You can take these links and create your own ordering you find intuitive.
- Introduction
- Overview
- Lexical
- Compilation phases, Source File encodings, Literals, Keywords, Tokens, Pragmas
- Modules
- Imports, Static Construction and Destruction
- Declarations
- Types
- Properties
- Integral Types: .init .size .max .min .sign (?)
- Floating Point Types: .init .size .max .min .sign / .nan .isnan .infinity .isinfinity .isnormal .digits .epsilon .mantissa .maxExp
- Attributes
- extern, deprecated, private, protected, public, export, static, final, override, abstract, const, auto
- Expressions
- Statements
- Labeled Statements, Blocks, if, debug & version, while, do, for, switch/default, continue, break, return, goto, with, synchronize, try/catch/finally, throw, volatile, asm
- Arrays
- Prefix and Postfix Declarations, Slicing, Array operations
- Array properties: .size, .length, .dup, .sort, .reverse, Bounds Checking, Arrays of Bits, Strings
- Associative Arrays properties: .size, .length, .keys, .values, .rehash
- Structs, Unions, Enums
- Classes
- fields, super class, constructors, destructors, invariant, unittest, Class Allocators and Deallocators, Auto Classes, Interfaces
- Functions
- Covariant, Overloading, Parameters (in, out, inout), Nested Functions, Delegates, Function Pointers, Dynamic Closures
- Operator Overloading
- opfunc: opNeg, opCom, opPostInc, opPostDec; opAdd, opSub, opMul, opDiv, opMod, opAnd, opOr, opXor, opShl, opShr, opUShr, opCat, opEquals, opCmp, opAddAssign, opSubAssign, opMulAssign, opDivAssign, opModAssign, opAndAssign, opOrAssign, opXorAssign, opShlAssign, opUshAssign, opCatAssign, opCall, opIndex, opSlice
- Templates
- Contracts
- Versioning
- Predefined Versions: DigitalMars, X86, Win32, linux, LittleEndian, BigEndian, D_InlineAsm, none
- Handling errors
- Garbage Collection
- Memory Management
- Copy On Write, Real Time (considerations), Free Lists, reference counting, Explicit Class Instance Allocation, Mark/Release, RAII, Allocating Class Instances On The Stack
- Floating Point
- Complex and Imaginary types, (e.g. 4.5 + 2i),
- Complex number properties: .re, .im
- Inline Assembler
- align, even, naked, Opcodes, $, __LOCAL_SIZE
- Interfacing To C
- Portability Guide
- Embedding D in HTML
- Memory Model
- Phobos (Runtime Library)
- D for Win32
- C .h to D Modules
- FAQ
- Style Guide
- [Example: DigitalMars:d/wc.html wc]: classic word count program
- D Compiler
- Future
- D Change Log (download, revisions)
- D Links
- Forum, digitalmars.D newsgroup
- Acknowledgements
- D vs C/C++/C#/Java
- Converting C to D
- Converting C++ to D
- The C Preprocessor vs D
- D strings vs C++ std::string
- D complex vs C++ std::complex
- D Design by Contract vs C++