Delphi language features

From LibreDevelop
Revision as of 21:18, 8 May 2013 by Chronos (talk | contribs)
Jump to navigation Jump to search

Here is incomplete Delphi/Object Pascal feature tree. Some features are dependent on others so some have precedence during compiler development.

  • Statements
  • Variables (var)
  • Constants (const)
  • Name spaces (namespace)
  • Direct access to memory (pointers, directive absolute)
  • Compiler directives:
    • Conditionals (IFDEF, ENDIF, DEFINE, ...)
    • Region, code hiding (REGION)
    • Compiler options (M, ...)
  • Operators (and, or, xor, not, shl, shr, +, -, /, *, div, mod, as, in, ...)
  • Expressions (parenthesis, operator priority, infix notation)
  • Assignment (:=)
  • Function overloading (overload)
  • Integrated assembler (asm-end)
  • Comments ( {}, //, (* *) )
  • Subroutines (function, procedure)
    • Nested functions
    • Functions parameters
    • Inlined code (inline)
  • Types (type)
    • Elementary
      • Enumeration (Boolean, ...)
      • Subrange (0..100, ...)
      • Ordinals (SmallInt, Byte, Integer, Word, Cardinal, Int64, ...)
      • Floating numbers (Real, Single, Double, Extended, ...)
      • Characters (Char, WideChar, AnsiChar, ...)
      • Strings (String, ShortString, AnsiString, WideString, PChar, ...)
      • Pointers (Pointer, @, ^)
      • Variant
      • Procedural types
    • Composed
      • Array, static/dynamic
      • Record
        • Překrývání proměnných (variant records): case Integer of...
        • Packed
        • Operator redefinition
        • Advanced with constants,types,variables,procedure/functions
      • Set
      • Class
        • Visibility (published, public, private, protected)
        • Methods (procedure, function)
          • Virtual methods (virtual, override)
          • Inlined (inline)
        • Inheritance (inherited)
        • Properties (property, default, indexed)
        • Events (property with function type)
        • Nested definitions
        • Constructors and destructors (constructor, destructor)
      • Interface (interface)
  • Globals (variables, constants, types, functions)
  • Modularity (unit)
    • Types (program, unit, package, library)
    • Initialization (initialization)
    • Finalization (finalization)
    • Sections (interface, implementation)
  • Controls structures
    • Condition (if-then-else)
    • Loop with known cycle count (for-to-do)
    • Loop (repeat-until)
    • Loop (while-do)
    • Loop exit (break)
    • Jump to next iteration (continue)
    • Compound statement (begin-end)
    • Multiple branching (case-of)
    • Context change (with-do)
    • Exception raise (raise)
    • Exception handling (try-except)
    • Exception finalization (try-finally)
    • Loop with enumerators (for-in-do)
  • Parametric types (generics)
    • Constraints (class, record, ordinal, float, ...)
  • Translation strings (resourcestring)
  • Thread local variables (threadvar)
  • Reference counting (interface)
  • Automatic memory management (memory manager)

Historic features

  • File types (file, text)
  • Direct jump (goto, label)