Ralf, Reflection involves inspecting the internal details of a program. A reflection domain would be able to look into other domains for details. A reflection domain would export a set of methods like fetchSignatures.
So how would REFLECT get this information? Well, in aldor you can ask the compiler to compile a domain and output it in several forms including FOAM, C, and Lisp. So given a domain to reflect, the REFLECT domain could ask the aldor compiler to recompile the domain with one of those outputs. If the output is FOAM or C you need a parser and a grammar in order to read the compiler output and find the signature information. You would likely then write a call to the parser to read the C file and construct a list of signatures to return as the result of fetchSignatures. If the output is Lisp you don't need a grammar and the parser is a simple aldor program to read list objects. Constructing a list of signatures to return as the result of fetchSignatures is thus a much easier task. The difference between reading C and reading Lisp is enormous. Reading C involves a grammar/parser; reading Lisp is an introductory computer science homework exercise. t _______________________________________________ Axiom-developer mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/axiom-developer
