Content deleted Content added
m cat |
bold formatting title using AWB |
||
Line 1:
'''Concept programming''' is an [[programming paradigm]] focusing on how ''concepts'', that live in the programmer's head, translate into ''representations'' that are found in the code space.
== Pseudo-Metrics ==
Concept programming uses ''pseudo-metrics'' to evaluate the quality of code. They are called pseudo-metrics because they relate the concept space and the code space, with a clear understanding that the concept space cannot be formalized strictly enough for a real metric to be defined. Concept programming pseudo-metrics include:
* ''[[Syntactic noise]]'' measures discrepancies between the concept and the syntax used to represent it. For instance, the semi-colon at the end of statements in [[
* ''[[Semantic noise]]'' measures discrepancies between the expected meaning or behavior of the concept and its actual meaning or behavior in the code. For instance, the fact that integer data types overflow (when mathematical integers do not) is a form of semantic noise.
* ''Bandwidth'' measures how much of the concept space a given code construct can represent. For instance, the overloaded addition operator in C has higher bandwidth than the <code>Add</code> instruction in assembly language, because the C operator can represent addition on floating-point numbers and not just integer numbers.
Line 11 ⟶ 10:
== Rule of equivalence, and equivalence breakdown ==
The ''rule of equivalence'' is verified when the code behavior matches the original concept. This equivalence may break down in a number of cases. Integer overflow breaks the equivalence between the mathematical integer concept and the computerized approximation of the concept.
Line 21 ⟶ 19:
== Methodology ==
In order to write code, concept programming recommends the following steps:
Line 29 ⟶ 26:
# Write code that preserves as much as possible the expected behavior and semantics of the relevant aspects of the original concept.
Many programming tools often lack in terms of notational capabilities, so concept programming sometimes requires the use of [[preprocessor]]s, [[
== Concept-oriented languages ==
[[
▲[[XL_Programming_Language|XL]] is the only known concept-oriented language known to date.
== External links ==
*[http://xlr.sf.net The XL Programming Language on SourceForge]
[[Category:
|