1. A method for defining declarative code in an intermediate machine readable representation, including: specifying a plurality of programming constructs of a declarative programming language including specifying each type associated with the plurality of programming constructs as a function of at least one constraint on type, wherein values associated with the plurality of programming constructs are conformable to a plurality of types such that a particular value is conformable with each of the plurality of types in which the particular value does not violate a constraint codified in a type declaration, and wherein the specifying includes specifying additional state information about at least one programming construct of the plurality of programming constructs; and based on the plurality of programming constructs, generating in memory of a computing device at least one abstract syntax tree structure in a machine readable intermediate language representation of the declarative programming language, wherein the generating includes representing the additional state information in the at least one abstract syntax tree structure as at least one attached property.
7. A computer-readable memory device comprising computer readable instructions executable by at least one processor for specifying and generating the abstract syntax tree structures according to the method of claim 1 .