Difference between revisions of "Commonly-Used Acronyms"

From D Wiki
Jump to: navigation, search
(D acronyms and abbreviations)
 
(add DbI)
 
(19 intermediate revisions by 7 users not shown)
Line 3: Line 3:
 
Here is a small list of the usual ones:
 
Here is a small list of the usual ones:
  
- AA: [http://dlang.org/hash-map.html Associative Arrays].
+
* AA: [http://dlang.org/hash-map.html Associative Arrays].
  
- AST: Abstract Syntax Trees. Trees resulting from parsing.
+
* ARC: Automatic Reference Counting. A form of automatic memory management.
  
- AST Macros: transformations of an AST. Used while parsing: a macro encodes a transformation from a user-defined syntax to a standard D syntax. [Not implemented in D].
+
* AST: Abstract Syntax Trees. Trees resulting from parsing.
  
- 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.
+
* AST Macros: A macro system for transforming a program's AST during compilation. [Not implemented in D].
  
- DSEL : Domain-Specific Embedded Language. A DSL used inside a more general programming language. Also known as an internal DSL.
+
* CI: Continuous integration. A regular merging and automated testing of developer code with the mainline codebase.
  
- DSL: Domain-Specific Language. A small sub-language dedicated to a particular domain or problem. Examples are regexes, string formatters (%d, %s, ...).
+
* 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.
  
- ICE: Internal Compiler Error.
+
* DbI: Design by Introspection. The fact to use compile-time reflection to determine what can implement a component, making its primitives optional and the composition elastic. Notably used in std.experimental.allocators and std.experimental.checkedint. See [https://youtu.be/es6U7WAlKpQ presentation] by A.Alexandrescu at the Google Campus TLV.
  
- IFTI: Implicit Function-Template Instantiation. For function templates, the template arguments can be automatically determined by the compiler from the function arguments. For example:
+
* DRY: Don't Repeat Yourself (in code) a principle summarized as: Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
  
- NIH: Not Invented Here. Also: NIH Syndrome. When a community starts writing its own tools in its own language, (deliberately) ignoring there are more mature tools available elsewhere.
+
* DSEL: Domain-Specific Embedded Language. A DSL used inside a more general programming language. Also known as an internal DSL.
  
- RAII: [http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization Resource Acquisition is Initialization].
+
* DSL: Domain-Specific Language. A small sub-language dedicated to a particular domain or problem. Examples are regexes, string formatters (%d, %s, ...).
  
- RTTI: [http://en.wikipedia.org/wiki/Run-time_type_information runtime-time type information]
+
* FFI: A foreign function interface (FFI) is a mechanism by which a program written in one programming language can call routines or make use of services written in another.
  
- SFINAE: [http://en.wikipedia.org/wiki/Substitution_failure_is_not_an_error Substitution Failure is not an Error]
+
* FQN: Fully qualified name. See [http://dlang.org/phobos/std_traits.html#fullyQualifiedName here].
  
- UDA: User-Defined Attributes. See [http://dlang.org/attribute.html here].
+
* GC: Garbage Collection. A form of automatic memory management.
  
- UFCS: Universal Function Call Syntax. Allows foo(a,b) to be written as a.foo(b). This allows free functions to be used as members, and function calls to be chained: [0,1,2].map!(a=>a+).array.
+
* 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.
  
See also: [http://dlang.org/glossary.html the Glossary].
+
* 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 [http://www.gotw.ca/publications/mill18.htm 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.
 +
 
 +
* RAII: [http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization Resource Acquisition is Initialization].
 +
 
 +
* RTTI: [http://en.wikipedia.org/wiki/Run-time_type_information runtime-time type information]
 +
 
 +
* SFINAE: [http://en.wikipedia.org/wiki/Substitution_failure_is_not_an_error Substitution Failure is not an Error]
 +
 
 +
* TLS: Thread-local Storage. A portion of static or global memory that is only accessible by a single thread.
 +
 
 +
* UDA: User-Defined Attribute. See [http://dlang.org/attribute.html here].
 +
 
 +
* UDT: User-Defined Type.
 +
 
 +
* UFCS: Universal Function Call Syntax. Allows <code>foo(a,b)</code> to be written as <code>a.foo(b)</code>. This allows free functions to be called as if they were member functions and allows function calls to be chained with the . operator: <code>[0,1,2].map!(a=>a+1)().array()</code>.
 +
 
 +
== See also ==
 +
*[http://dlang.org/glossary.html the Glossary].
 +
 
 +
[[Category:Contents]]

Latest revision as of 21:28, 14 March 2020

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].
  • CI: Continuous integration. A regular merging and automated testing of developer code with the mainline codebase.
  • 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.
  • DbI: Design by Introspection. The fact to use compile-time reflection to determine what can implement a component, making its primitives optional and the composition elastic. Notably used in std.experimental.allocators and std.experimental.checkedint. See presentation by A.Alexandrescu at the Google Campus TLV.
  • DRY: Don't Repeat Yourself (in code) a principle summarized as: Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
  • 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, ...).
  • FFI: A foreign function interface (FFI) is a mechanism by which a program written in one programming language can call routines or make use of services written in another.
  • 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.
  • TLS: Thread-local Storage. A portion of static or global memory that is only accessible by a single thread.
  • 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