2,954
edits
Miraheze>Adám Brudzewsky No edit summary |
m (Mark as an essay, as it's mainly Stephen Taylor writing about his own term. If we want an article on the concept, it should be a new page.) |
||
(3 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
Semantic | Semantic density is a ''metric'' of the readability of a program by a non-programming domain expert. | ||
Programs work with ''representations'' of some domain. Every program must thus be read in two ways: | Programs work with ''representations'' of some domain. Every program must thus be read in two ways: | ||
Line 26: | Line 26: | ||
* assigning names only once; homonyms are confusing enough in natural languages; | * assigning names only once; homonyms are confusing enough in natural languages; | ||
* naming only objects that correspond to terms in the reader's vocabulary; | * naming only objects that correspond to terms in the reader's vocabulary; | ||
* using (in Dyalog, NARS2000, ngn/apl, dzaima/APL, GNU APL) anonymous [[ | * using (in Dyalog, NARS2000, ngn/apl, dzaima/APL, GNU APL) anonymous [[dfn]]s (lambdas) to avoid assigning other names; | ||
* using [[tacit programming]] (in Dyalog, NARS2000, ngn/apl, dzaima/APL) to avoid using argument names in expressions. | * using [[tacit programming]] (in Dyalog, NARS2000, ngn/apl, dzaima/APL) to avoid using argument names in expressions. | ||
Line 36: | Line 36: | ||
* [http://archive.vector.org.uk/art10009900 Pair Programming With The Users] by Stephen Taylor, ''Vector'' 22:1 | * [http://archive.vector.org.uk/art10009900 Pair Programming With The Users] by Stephen Taylor, ''Vector'' 22:1 | ||
Why write specifications when you can collaborate with the users on executable code? Introduces the concept of 'semantic density' in constructing Domain-Specific Notations. | Why write specifications when you can collaborate with the users on executable code? Introduces the concept of 'semantic density' in constructing Domain-Specific Notations. | ||
[[Category:Essays]] |