2,951
edits
Miraheze>RikedyP (From archive.aplwiki.com) |
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.) |
||
(5 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) 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. | |||
== Further reading == | == Further reading == | ||
Line 34: | Line 35: | ||
Writing software is more like drafting legislation or writing a screenplay than it is like engineering. Paper presented at XP2006, Oulu, June 2006. | Writing software is more like drafting legislation or writing a screenplay than it is like engineering. Paper presented at XP2006, Oulu, June 2006. | ||
* [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]] |