Massalin's Synthesis Quajects equivalent to ASM generating macros used in Game Oriented Assembly LISP?

cs.stackexchange https://cs.stackexchange.com/questions/2184

  •  16-10-2019
  •  | 
  •  

Question

Alexia Massalin's Dissertation on Synthesis was a Phd thesis on Operating Systems that contained a concept called 'Quajects' (see Chapter 4).

This is some additional commentary on the Phd Thesis.

Best I can work out - a Quaject is construct that generates Assembler customised for the function being used at the time. (Perhaps like a JIT).

The project that I've seen that came closest to this was Game Oriented Assembly LISP (GOAL), a framework used in Crash Bandicoot that used ASM-generating LISP macros to speed up the development iteration process and generate the production code.

Can we say that the Macros generating ASM in GOAL were quajects? (yes or no question - please explain why if yes, and reasons if no.)

Was it helpful?

Solution

As I see it, a Quaject is a kind of software component in the sense that it has a provided interface (the callentry functions), which contains the functions it offers, and a required interface (the callout functions), which contains the functions it needs to operate. The callback part of the interface is for call back functions, which are functions that are available to call the caller of a function. (In Java you cannot call the caller unless an explicit reference is passed.)

I don't think it is correct to say that "a Quaject is construct that generates Assembler customised for the function being used at the time." For example, in Section 4.1.4 of the thesis it states that

Higher-level kernel services are built by composing several basic quajects.

So the quajects are the ingredients that are used to build the custom services. They do not build them.

GOAL seems to be a variant of Scheme that allows inline assembly language, which I can image allows quite some flexibility in the programming. The language is compiled to assembly. The assembly language it includes is not in the shape of any sort of component, as far as I can tell.

Based on this, I would say that the answer to your question is no.

Licensed under: CC-BY-SA with attribution
Not affiliated with cs.stackexchange
scroll top