cpp@calmasd.Prime.COM (Chuck Peterson) (04/10/90)
I'm interested in designing an interpreter for a procedural language with object oriented features. (No flames, please. I'm just describing what I'm doing.) What is going on in the world of intermediate code these days? (This may also be considered the world of "virtual machines.") I'm referring to the representation of a program which is executed by an interpreter. Are intermediate codes designed specifically for the interpretation of particular languages, or has anyone designed a general purpose intermediate code? Or how about an intermediate code for procedural object oriented languages? One example of what I am talking about is p-code, the intermediate code of the UCSD Pascal system. I've also heard of m-code (from which p-code was reportedly derived). Please mail any information, references, rumors, etc., to me. Thanks.
djones@megatest.UUCP (Dave Jones) (04/14/90)
From article <1102@calmasd.Prime.COM>, by cpp@calmasd.Prime.COM (Chuck Peterson): > > I'm interested in designing an interpreter for a procedural > language with object oriented features. (No flames, please. > I'm just describing what I'm doing.) > > What is going on in the world of intermediate code these days? Everybody else seems to be using C as their intermediate code. Not a bad idea, that. If you want to execute interactively entered code, as in Sabre C, for example, you'll have a bit further to go, in that you will need a fast compiler/dynamic-linker. Directly interpretable code (p-code) usually suffers from machine- dependence: byte-order, floating-point format, alignment conventions and restrictions. So I would say, stay away from it if you can. I speak from experience on this! I thought I was safe because I was more or less committed to one vendor for a target-machine. But that vendor then came out with a new architecture, bythefully imposing absurd alignment restrictions on data, breaking my interpreter horribly. Aaaaaaarghhh!