Aldor programming philosophy from the point of view of it's evolution from previous incarnations of the Axiom library compiler, is described here: http://www.aldor.org/docs/HTML/chap18.html There is one construct in particular in Aldor that really
stands out - the concept of representation and it's opposite
(abstraction?). In Aldor these are formally denoted
by two very peculiar coercion operations: In older SPAD terms, rep and per can be written as the following macros: macro { rep x == x @ % pretend Rep; per r == r @ Rep pretend %; ) The expression The expression In looking through older SPAD code it is clear that these
combinations occur frequently and their encapsulation as Does anyone know of any formal programming language research
papers that describe the semantics of It seems to me that Below is a first attempts to answer these questions - comments, corrections and opinions would be most welcome! It seems appropriate to me to think of rep and per as forming a pair of adjoint functors: rep ----> % domain Rep domain <---- per
domains must be thought of in terms of categories both in the sense of category theory and in Axiom's sense of "category". The appropriate categories usually have at least the structure of a Cartesian closed category which they inherit from Axiom's basic types constructors, record, union and mapping. See discussion: TuplesProductsAndRecords In terms of category theory there is a natural transformation,
called the x --> rep(per(x)) and In category theoretic terms The implementation of the domain in terms of the representation establishes a natural bi-jection between the operation of the external domain and the operation of it's internal representation: x -> rep y (representation) ------------ per x -> y (domain) The book: "Basic Category Theory for Computer Scientists", by
Benjamin Pierce, MIT Press, 1991, is a good reference. See
especially section 2.4. Pierce gives an excellent example in
terms of definition of the Also: "Categories, Types and Structures. An introduction to Category Theory for the working computer scientist." by Andrea Asperti and Giuseppe Longo, M.I.T. Press, 1991, which is downloadable from here: http://www.di.ens.fr/users/longo/download.html Regards, Bill Page. (from an email to axiom-develper on Thursday, September 01, 2005 6:36 AM) |