[comp.arch] SUMMARY: Arch. Support for OOL's

schmidt@cs.iastate.edu (William J. Schmidt) (07/04/90)

I recently (well, fairly recently) posted the following query to the
net in newsgroups comp.arch and comp.object.  I received more requests
for copies of what I received than actual responses, so I am posting
what I have to these newsgroups rather than responding by email to
each requestor.  Thanks to all who responded!

Text of original query:
----------------------------------------------------------------------
I am looking for references on the subject of architectural support
for object-oriented languages.  I am particularly interested in
hardware support for manipulation of objects.

Please respond by email.  If there is sufficient interest and response, 
I will summarize to the network.  Thanks very much in advance.
----------------------------------------------------------------------

Following is a list of responses, in the order received.

----------------------------------------------------------------------

From: Graeme Williams <williams%scott.prime.com@RELAY.CS.NET>

I would guess that it would depend a lot where you cut the problem.  For
instance, if your goal was to make an O-O language (Smalltalk, say) run
as fast as C, perhaps you would worry about jump tables for method
invocation.  If, on the other hand, you want to make object-oriented
*applications* run faster, my recommendation would be to focus on rapid
context switching (i.e., "light weight tasks", "threads" - pick your
favorite term).

I realize that you asked for specific references, not suggestions and
comments.  My point is that perhaps you should look outside the O-O
literature for some ideas.  My specific recommendation would be to look
at the Mach kernel, since it embodies a neat set of primitives which
integrate memory management, message passing, and tasks.

Graeme Williams                                  williams@primerd.Prime.com
Constellation Software
Framingham, MA

----------------------------------------------------------------------

From: EAF%res-c4.prime.com@RELAY.CS.NET

Be certain to read the papers in Compcon on the BiiN machine.  If you
find other papers, I would be interested in receiving a list.
Thanks.
Edward Feustel
Prime Computer
500 Old Connecticut Path
Framingham, Ma. 01701-4548
(508)-879-2960 x3846
efeustel@primerd.prime.com

----------------------------------------------------------------------

From: opdyke@cs.uiuc.edu (William F. Opdyke)

I suggest you contact Brian Foote (foote@cs.uiuc.edu) on this.  He's
looked into providing increased flexibility in object-oriented systems
through low level/hardware support for intercepting and handling message
sends.

My current research is into algorithmic support for making structural
changes to object-oriented application frameworks.  Perhaps this might
interest you.

I hope this helps - I'd appreciate receiving a summary of the responses you receive.

Bill Opdyke
opdyke@cs.uiuc.edu

----------------------------------------------------------------------

From: rael!aleks@csusac (Brian J. Witt)

(NOTE:  There was apparently an earlier message from this gentleman which
 was swallowed by the net.  Attempts at reaching him by e-mail were rejected
 by some mailer-daemon somewhere.  If you're out there and it's not too 
 much trouble, could you reconstruct your first message and post it?
 Thanks in advance.)

OK, here is the capaility systems book reference:

	"Capability-based Computer Systems", Hnery M. Levy, Digitial Press,
	Bedford, Mass., 1984.  ISBN: 0-932376-22-3

Table of contents:
	1. Capability- and Object-based System Concepts
	2. Early Descriptor Architectures
	3. Early Capability Architectures
	4. The Plessey System 250
		(Automated phone controller, MTBF 50 years)
	5. The Cambridge CAP Computer
	6. The Hydra System
		(Running on C.mmp multiprocessor)
	7. The StarOS System
		(Running on CM* multiprocessor)
	8. The IBM System/38
	9. The Intel iAPX432
	10. Issues in Capability-Based Systems
		Includes Bibliogaphy and Index

Also check into "Proceedings of the 8th Symposium on Operating System
Prinicples", Dec 1981.  Nos 5 (Nov 1975) and 6th (Nov 1977) are also good
starts for articles and references (although dated).

--
   Brian Witt       "should we educate people about the education system?"
  ==  UUCP:   seer.UUCP!rael!aleks,  csusac.edu!rael!aleks  <--- Amiga UUCP
  ==  school:  wittbj@cube05.ccs.csus.edu

----------------------------------------------------------------------

From: lgm@iexist.att.com (Lawrence G Mayka)

I list here some references on Lisp machines' support for the
Common Lisp Object System and its predecessors (e.g., Old and New
Flavors).  Also keep in mind that even before the advent of Flavors
with multiple inheritance in 1979, Lisps were object-oriented
according to the criteria later set down by Krasner
("Smalltalk-80: Bits of History, Words of Advice," 1983, page 10):
garbage collection, run-time behavior selection, and type
classification.

"TICLOS: An Implementation of CLOS for the Explorer Family,"
OOPSLA '89 Proceedings.

"The Symbolics I-Machine Architecture: A Symbolic Processor
Architecture for VLSI Implementation" and
"The Symbolics Ivory Processor: A 40-Bit Tagged Architecture
Lisp Microprocessor,"
ICCD '87 Proceedings.

"A 553K-Transistor Lisp Processor Chip,"
1987 IEEE ISSCC Digest of Technical Papers.

"Architecture of the Symbolics 3600,"
12th Annual International Symposium on Computer Architecture.

"The ELIS Interpreter-Oriented Lisp-Based Workstation,"
IEEE, 1988.


	Lawrence G. Mayka
	AT&T Bell Laboratories
	lgm@iexist.att.com

Standard disclaimer.
--
William J. Schmidt
Iowa State University
schmidt@atanasoff.cs.iastate.edu