10. A system having a memory and a processor for representing a document specific to a domain for interaction with a user, comprising: a domain-to-abstract language component configured to transform a domain language document in a domain language to an abstract language document in an abstract language at least in part by mapping elements of the domain language document to abstract language elements of the abstract language, wherein the domain-to-abstract language component is specific to the domain of the domain language document and wherein the abstract language represents the abstract language document in a set of domain-independent terms; an abstract-to-concrete language component configured to transform the abstract language document in the abstract language to a concrete language document in a concrete language at least in part by mapping elements of the abstract language document to concrete language elements of the concrete language based on two or more notational choices received from the user, wherein the abstract-to-concrete language component is independent of the domain of the domain language document and wherein the concrete language represents the concrete language document after a specific set of marks has been chosen, and wherein the concrete language document is based on each of the two or more notational choices received from the user; and a concrete-to-graphical language component configured to transform the concrete language document in the concrete language to a graphical language document in a graphical language at least in part by mapping elements of the concrete language document to graphical language elements of the graphical language based on dimensions of a display area, wherein the concrete-to-graphical language component is independent of the domain of the domain language document, wherein each notational choice specifies how at least one type of item in the graphical language document is to be formatted when displayed, wherein a first type of items are programming blocks so that a first notational choice specifies how programming blocks are to be formatted when displayed, wherein the document includes at least one programming block, and wherein each of the components comprises computer-executable instructions stored in the memory for execution by the system.
10. A system having a memory and a processor for representing a document specific to a domain for interaction with a user, comprising: a domain-to-abstract language component configured to transform a domain language document in a domain language to an abstract language document in an abstract language at least in part by mapping elements of the domain language document to abstract language elements of the abstract language, wherein the domain-to-abstract language component is specific to the domain of the domain language document and wherein the abstract language represents the abstract language document in a set of domain-independent terms; an abstract-to-concrete language component configured to transform the abstract language document in the abstract language to a concrete language document in a concrete language at least in part by mapping elements of the abstract language document to concrete language elements of the concrete language based on two or more notational choices received from the user, wherein the abstract-to-concrete language component is independent of the domain of the domain language document and wherein the concrete language represents the concrete language document after a specific set of marks has been chosen, and wherein the concrete language document is based on each of the two or more notational choices received from the user; and a concrete-to-graphical language component configured to transform the concrete language document in the concrete language to a graphical language document in a graphical language at least in part by mapping elements of the concrete language document to graphical language elements of the graphical language based on dimensions of a display area, wherein the concrete-to-graphical language component is independent of the domain of the domain language document, wherein each notational choice specifies how at least one type of item in the graphical language document is to be formatted when displayed, wherein a first type of items are programming blocks so that a first notational choice specifies how programming blocks are to be formatted when displayed, wherein the document includes at least one programming block, and wherein each of the components comprises computer-executable instructions stored in the memory for execution by the system. 17. The system of claim 10 including a pending language component that represents intermediate changes to the document that are invalid for the domain and cannot be stored in the domain language.