[Aldor-l] [Axiom-developer] Re: exports and constants
root
daly at axiom-developer.org
Thu Jul 27 09:50:51 EDT 2006
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
More information about the Aldor-l
mailing list