Re: VM to support an OO language

"Eliot Miranda;W211" <eliot@dcs.qmw.ac.uk>
15 Oct 91 14:19:53 GMT

          From comp.compilers

Related articles
VM to support an OO language paulr@manasys.co.nz (1991-10-11)
Re: VM to support an OO language eliot@dcs.qmw.ac.uk (Eliot Miranda;W211) (1991-10-15)
| List of all articles for this month |

Newsgroups: comp.compilers
From: "Eliot Miranda;W211" <eliot@dcs.qmw.ac.uk>
Keywords: interpreter, smalltalk, bibliography
Organization: Computer Science Dept, QMW, University of London, UK.
References: 91-10-038
Date: 15 Oct 91 14:19:53 GMT

In article 91-10-038 paulr@manasys.co.nz writes:
> Our company is working on a project, part of which is a 4GL with
>object oriented extensions. For various reasons we have decided to
>translate the 4GL to a VM code and have a VM interpreter which executes
>this code.


Look at the definition of the Smalltalk-80 virtual machine in
%A Adele Goldberg
%A David Robson
%T Smalltalk-80: The Language and its Implementation
%I Addison-Wesley
%C Reading, MA
%D 1983
%K Goldberg83
%L Blue Book


To find out about efficient implementation read
%B Smalltalk-80: Bits of History, Words of Advice
%E Glenn Krasner
%I Addison-Wesley
%C Reading, MA
%D 1983
%L Green Book
and
%A L. Peter Deutsch
%A Allan M. Schiffmann
%T Efficient Implementation of the Smalltalk-80 System
%J 11th Annual Symposium on Principles of Programming Languages
%D January 1984
%P 297-302


you could also get hold of the papers on the Self implementation from the
Stanford self group, & read various other papers (Pat Caudill's, mine)
on Smalltalk implementation in OOPSLA '86 & '87.


> . . .
> - An internal representation of the inheritance hierarchy that
> naturally supports multiple inheritance.


The machine needs some way to traverse the inheritance hierarchy. The
simplest thing I can think of is to choose some traversal, e.g.
breadth-first left-to-right, and precompute this for each class. The
traversal order can be kept in e.g. an array, which is simple for a VM to
search.
>
> - The 4GL supports dynamic binding which means that we will
> need to pass the above representation to the VM and have a
> fast way of interrogating it at runtime.
>
> - We wish to support incremental compilation, which will
> complicate multiple inheritance.


Again the blue book will give you plenty of ideas for these last two points.
--
Eliot Miranda email: eliot@dcs.qmw.ac.uk
Department of Computer Science ARPA: eliot%dcs.qmw.ac.uk@nsf.ac.uk
Queen Mary Westfield College UUCP: eliot@qmw-dcs.uucp
Mile End Road, LONDON E1 4NS Tel: 071 975 5229 (+44 71 975 5229)
[Some of the Smalltalk books have been in and out of print, but there should
be lots of copies in libraries.
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.