Semantic density: Difference between revisions

Jump to navigation Jump to search
152 bytes added ,  14:38, 28 May 2020
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.
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 Density is a ''metric'' of the readability of a program by a non-programming domain expert.
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 D-fns (lambdas) to avoid assigning other names.
* 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.


{{APL programming language}}
[[Category:Essays]]

Navigation menu