Print

Print


>   I wonder why people are so against building several development levels,
> because this is the normal way computer programming is structured otherwise:

people aren't (in principle) against the idea.  the argument is not
_against_ multiple levels, but rather whether they can be made to work
acceptably in a tex environment.

>   The lowest level is the assembler which expands to simple machine
> instructions. On top of that, one might build a language like C, which does
> not impose runtime checks and itself is compiled, not interpreted. Then on
> top of that, one might build a more advanced language with runtime checks,
> and often C is a language to use for writing that language. Finally this
> more advanced language can be used to build user applications.
>
>   Similarly, in TeX the assembler might correspond to the most lowlevel
> macros. It would be great if one could add some kind of C compiler on top
> of that, which does not add much runtime overhead. The more advanced
> language might correspond to LaTeX itself, which is used by the user and by
> adding high level structures.

this is all very well: it has a nice feel to it.  but tex isn't like
that.  *all* levels of a tex macro package are processed by the same
interpreter.  that interpreter has several extraordinary properties
which cause `crosstalk' between the levels (for example, expandability
does just this).

and of course, what's appropriate for an interpreter isn't necessarily
equally sensible for a compiled language.  we simply cannot hope to
compile tex without a major effort *outside* tex: an optimising
compiler written in tex is surely a nono -- one couldn't possibly
afford a pass of something (presumably) even slower than docstrip on
documents, and class and package files aren't really the problematic
issue as far as optimisation goes.

>   I gather L3PL is intended to correspond to this lowest assembler level,
> but I think it would help if one could add a C-level, that is, if it does
> not add much overhead.

since you originally talked (some time before the present thread)
about modular naming, i've been thinking about it, on and off.  at one
stage i was intending to present a paper about the issue at eurotex,
but have now timed out on a paper at tug'98, even.  i've done a fair
bit of research since into naming systems (it's a topic that has
direct relevance to my research group), and i think i know how i would
structure a naming system within tex.  what i _don't_ know (after
several months of thinking about it) is how to implement such a
system.

robin