Doing it better 1999-04-15 b ### > I have (understandably?) made no programming progress with Tau, but have > made some theoretical progress: I have a nice data structure which > combines registers, stacks and memory blocks. [snip] > This has the nice property that any real VM (or even processor) can be > described as a series of constraints on this idealised system (e.g. there [snip] A nice idea. But I don't think it has the practical application you mention, because it is really much easier to write a Java class or something. That's not to say it has no application at all... > Obviously, something is missing: I need a similar description of > "transformational" instructions that apply functions to bitstrings. I'd > like a similarly nice model of them with the same property that the space > complexity of the description is roughly proportional to the space > complexity of typical code generated (or obeyed during interpretation) to > implement it. Again, I'd suggest that an interpreter is a pretty tight definition of a language. Or maybe you want a looser definition? Or maybe just a definition which is data and not code? One option is to represent the data as a set of nodes, and hence the state of the machine as a graph, and then the semantics as rewrite rules. I think I may be able to generate a passable interpreter from such a description. It requires work. Alistair