Investigations into Portable Object Codes
started 6/3/2002; 2:48:53 AM - last post 6/4/2002; 11:48:05 PM
|
|
Ehud Lamm - Investigations into Portable Object Codes
6/3/2002; 2:48:53 AM (reads: 1855, responses: 2)
|
|
Investigations into Portable Object Codes |
In contrast to functional assembler code, a functional object
code is akin to the lowest level intermediate code in a
transformation-based, type-preserving compiler for a functional
language. From a denotational point of view, it is indeed nothing, but
a simple functional language; however, it has a clearly defined
operational interpretation, which determines its translation into
machine code. As the functional flavour of the program is still
preserved, a range of optimisations (such as, type specialisation and
points-to analysis) are still possible, which can not be applied anymore
after the program has been translated into machine code. The
abstraction level of functional object code is similar to that of the
Spineless
Tagless G-machine and an instance is defined in a
workshop paper.
Another approach to language neutrality.
Posted to implementation by Ehud Lamm on 6/3/02; 4:35:25 AM
|
|
|
|
andrew cooke - Re: Investigations into Portable Object Codes
6/3/2002; 1:52:16 PM (reads: 801, responses: 0)
|
|
|
|
Jason Hickey's group at Caltech (http://www.cs.caltech.edu/~jyh) uses a similar approach for their compilers (and in the compiler class he teaches). The idea is to go through a series of transformations from concrete syntax to abstract syntax to intermediate representations (nothing new so far), and then to a very simple "functional intermediate representation" (FIR) which is in continuation passing style and is still typed. They've compiled several languages down to FIR this way. I don't think interoperability is the main goal, but it could potentially be used that way if (say) you converted the FIR into a bytecoded representation.
|
|
|
|