Alaric Snell-Pym wrote:
> * Low-level vs. High-level *
> 
> A low-level macro is defined as some Scheme code that's handed the
> macro call expression, as an actual s-expression (perhaps with some
> magic around the symbols to deal with hygiene issues). It literally is
> a function from Scheme source code for a macro reference to Scheme
> source code of what the macro should be expanded to.
> 
> It's low-level because you have to grovel around the input s-expr with
> car and cdr and so on, then cons up the expansion (quasiquotes help a
> lot here).
> 
> A high-level macro, OTOH, has some specialist mini-language that does
> pattern-matching for you. Like syntax-rules, you specify input
> patterns (with variables in) and for each one, an output pattern or
> (as a more intermediate level) Scheme source code to assemble the
> expansion.

OK, so a general purpose language with higher-order first-class 
procedures, generic arithmetic, first-class continuations, etc. is 
"low-level", whereas a domain specific first-order term rewriting system 
in which anything useful must be written in CPS (a kind of register 
machine model) is "high-level".  Perfect.

David

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to