[
Lists Home |
Date Index |
Thread Index
]
On Tuesday 12 November 2002 07:59, Paul Prescod wrote:
> Abstractions do not always leak. I've been using a PowerBook for several
> months, both programming and in GUI apps and not once worried about
> PowerPC assembly language. Compilera and interpreters have pretty well
> hidden that from me through abstractions. The problem is that code
> generators do a poor job of abstracting. A code-generator is typically a
> workaround for not having implemented the right level of abstraction in
> your library or language.
Drifting off topic, I once designed a mechanism for avoiding having to run
code generators which was based around a Cunning Trick to allow a language to
be its own macro language, with willy-nilly sharing of contexts between
compile time and run time (which is useful because you can define a function
in a library then use it both at compile time and run time)... which lets you
create 'macros' that perform arbitrary 'compilation' to generate the actual
code the compiler compiles.
A nice example was a macro that added the ability to use state machines as a
control flow construct. You could write (from memory):
(define (string-repeat str times)
(car (state-machine (result: "" timesleft: times)
start:
(if (> timesleft 0)
(goto start result: (strcat result str)
timesleft: (- timesleft 1))
(goto finish)))))
...and it would be compiled into an arbitrary nest of ifs and recursions and
whatnot, which for more complex state machines is a real mess compared to the
abstraction state transition notation.
>
> Paul Prescod
>
ABS
--
A city is like a large, complex, rabbit
- ARP
|