Commonly-Used Acronyms

From D Wiki
Revision as of 06:38, 8 January 2018 by D user (talk | contribs) (DRY)
Jump to: navigation, search

The D mailing lists, D blogs and IRC discussions commonly use acronyms.

Here is a small list of the usual ones:

  • ARC: Automatic Reference Counting. A form of automatic memory management.
  • AST: Abstract Syntax Trees. Trees resulting from parsing.
  • AST Macros: A macro system for transforming a program's AST during compilation. [Not implemented in D].
  • CTFE: Compile-Time Function Execution/Evaluation. The ability, for the D programming language to evaluate a (standard, runtime) function during compilation, yielding a compile-time constant as a result.
  • DRY: Don't Repeat Yourself (in code)
  • DSEL: Domain-Specific Embedded Language. A DSL used inside a more general programming language. Also known as an internal DSL.
  • DSL: Domain-Specific Language. A small sub-language dedicated to a particular domain or problem. Examples are regexes, string formatters (%d, %s, ...).
  • FQN: Fully qualified name. See here.
  • GC: Garbage Collection. A form of automatic memory management.
  • ICE: Internal Compiler Error.
  • IFTI: Implicit Function-Template Instantiation. For function templates, the template arguments can be automatically determined by the compiler from the function arguments.
  • LGTM: Looks Good To Me. You can see it during voting threads and pull requests discussions.
  • NIH: Not Invented Here. Also: NIH Syndrome. When someone insists on writing everything themself rather than using existing libraries or tools to solve a problem.
  • NVI: Non-Virtual Interface. See here.
  • PR: Pull Request. On Github, where most of the D development takes place, you can contribute code to the compilers and standard library by doing a pull request.
  • UDA: User-Defined Attribute. See here.
  • UDT: User-Defined Type.
  • UFCS: Universal Function Call Syntax. Allows foo(a,b) to be written as a.foo(b). This allows free functions to be called as if they were member functions and allows function calls to be chained with the . operator: [0,1,2].map!(a=>a+1)().array().


See also: the Glossary.