We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Faking Homoiconicity in C# with graphs

Formal Metadata

Title
Faking Homoiconicity in C# with graphs
Title of Series
Number of Parts
150
Author
License
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Some languages (most notably LISPs) exhibit a characteristic called Homoiconicity, which means that code is data and data is code. This makes a language very powerful because a program can inspect and manipulate itself. C# isn't a homoiconic language, but using formalized object graphs, it's often possible to formulate a problem in such a way that the program opens itself up for inspection and manipulation - essentially faking Homoiconicity in parts of the code base. This opens up many powerful options, including easier unit testing, self-documenting systems, run-time changes to program structure, and more.