Changes for page Homoiconicity

Last modified by Nicolas Gregoire on 2012/01/05 00:18

From version Icon 8.1 Icon
edited by Nicolas Gregoire
on 2012/01/05 00:25
Change comment: There is no comment for this version
To version Icon 9.1 Icon
edited by Nicolas Gregoire
on 2012/01/05 00:26
Change comment: There is no comment for this version

Summary

Details

Icon Page properties
Content
... ... @@ -1,4 +1,4 @@
1 -== Definition ==
1 +== General definition ==
2 2  
3 3  Homoiconicity is the property of a programming language that the code and the data are stored in the same format. For example, the following languages are homoiconics :
4 4  
... ... @@ -6,8 +6,6 @@
6 6  * Lisp : using lists and theirs sub-types
7 7  * XSLT : using the XML format
8 8  
9 -
10 -
11 11  == Triggering embedded code ==
12 12  
13 13  In some contexts (like browsers), XSLT code execution can be triggered while a XML document is parsed, via a xsl:stylesheet tag. The executed XSLT code can be stored on the Internet or in the XML document itself (homoiconicity + self-reference trick). A [[blog post>>http://scarybeastsecurity.blogspot.com/2011/01/harmless-svg-xslt-curiousity.html||rel="__blank"]] by Chris Evans describes a pseudo SVG file triggering a simple RAM DoS . But we can do better ;-)