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