Difference between revisions of "Commonly-Used Acronyms"
(add DbI) |
|||
(18 intermediate revisions by 7 users not shown) | |||
Line 4: | Line 4: | ||
* AA: [http://dlang.org/hash-map.html Associative Arrays]. | * AA: [http://dlang.org/hash-map.html Associative Arrays]. | ||
+ | |||
+ | * ARC: Automatic Reference Counting. A form of automatic memory management. | ||
* AST: Abstract Syntax Trees. Trees resulting from parsing. | * AST: Abstract Syntax Trees. Trees resulting from parsing. | ||
− | * AST Macros: | + | * 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. | * 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. | ||
− | * DSEL : Domain-Specific Embedded Language. A DSL used inside a more general programming language. Also known as an internal DSL. | + | * 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. |
+ | |||
+ | * 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, ...). | * 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 [http://dlang.org/phobos/std_traits.html#fullyQualifiedName here]. | ||
+ | |||
+ | * GC: Garbage Collection. A form of automatic memory management. | ||
* ICE: Internal Compiler Error. | * 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. | + | * 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 [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]. | * RAII: [http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization Resource Acquisition is Initialization]. | ||
Line 27: | Line 47: | ||
* SFINAE: [http://en.wikipedia.org/wiki/Substitution_failure_is_not_an_error Substitution Failure is not an Error] | * SFINAE: [http://en.wikipedia.org/wiki/Substitution_failure_is_not_an_error Substitution Failure is not an Error] | ||
− | * UDA: User-Defined | + | * 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 foo(a,b) to be written as a.foo(b). This allows free functions to be | + | * 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:
- AA: Associative Arrays.
- 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 asa.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()
.