Related articles |
---|
[Question] Code Generation of OOP languages baby@adam.kaist.ac.kr (S.R.SEO) (1999-12-01) |
Re: [Question] Code Generation of OOP languages hoeppner@ipd.uni-karlsruhe.de (hoeppner) (1999-12-03) |
Re: [Question] Code Generation of OOP languages anton@mips.complang.tuwien.ac.at (1999-12-07) |
Re: [Question] Code Generation of OOP languages ghoul@ibm.net (Mark van Gulik) (1999-12-20) |
From: | anton@mips.complang.tuwien.ac.at (Anton Ertl) |
Newsgroups: | comp.compilers |
Date: | 7 Dec 1999 00:35:12 -0500 |
Organization: | Institut fuer Computersprachen, Technische Universitaet Wien |
References: | 99-12-007 |
Keywords: | OOP, code, bibliography |
"S.R.SEO" <baby@adam.kaist.ac.kr> writes:
>How do OOP languages ,such as C++ & JAVA, translate
>source code - with OO concept - into
>binary or intermediate(like assembly) code - without OO concept ?
>
>Any useful references(book or website) about this topic?
Here's the reading list for a seminar we had on this topic last year:
Object layout and method dispatch:
Section 2.9 and 3.5 of
@Book{stroustroup94,
author = {Bjarne Stroustroup},
title = {The Design and Evolution of {C++}},
publisher = {Addison-Wesley},
year = {1994},
annote = {An extended version of \cite{stroustroup93}.
Discusses the design philosophy of C++ and the
specific design issues in detail.}
}
Dispatch for Java interfaces:
@INPROCEEDINGS{krall&grafl97,
AUTHOR = {Andreas Krall and Reinhard Grafl},
TITLE = {{CACAO} -- A 64 bit {JavaVM} Just-in-Time Compiler},
BOOKTITLE = {PPoPP'97 Workshop on Java for Science and Engineering Computation},
EDITOR = {Geoffrey C.~Fox and Wei Li},
ORGANIZATION= {ACM},
MONTH = {June},
ADDRESS = {Las Vegas},
note = {http://www.complang.tuwien.ac.at/\linebreak[0]andi/javaws.ps.gz},
YEAR = 1997
}
Multiple Inheritance:
Chapter 10 of
@Book{ellis&stroustrup92,
author = "Margaret A. Ellis and Bjarne Stroustrup",
title = "The Annotated {C}++ Reference Manual",
publisher = "Addison-Wesley",
address = "Reading",
year = "1992",
descriptor = "C++, Reference Manual",
}
Dispatch and computer architecture:
@InProceedings{driesen&hoelzle96,
author = "Karel Driesen and Urs H{\"o}lzle",
title = "The Direct Cost of Virtual Function Calls in {C++}",
crossref = "oopsla96",
pages = "306--323"
}
Dispatch for PLs with dynamic class hierarchies:
@InProceedings{vitek&horspool96,
author = {Jan Vitek and R. Nigel Horspool},
title = {Compact Dispatch Tables for Dynamically Typed Object
Oriented Languages},
crossref = {cc96},
pages = {309--325}
}
Multi-methods:
@Article{amiel+94,
author = "E. Amiel and O. Gruber and E. Simon",
title = "Optimizing Multi-Method Dispatch Using Compressed
Dispatch Tables",
journal = "ACM SIG{\-}PLAN Notices",
volume = "29",
number = "10",
pages = "244--244",
month = oct,
year = "1994",
coden = "SINODQ",
ISSN = "0362-1340",
bibdate = "Fri Apr 24 18:36:02 MDT 1998",
acknowledgement = ack-nhfb,
classification = "C4240 (Programming and algorithm theory); C6110J
(Object-oriented programming); C6140D (High level
languages)",
conflocation = "Portland, OR, USA; 23-27 Oct. 1994",
conftitle = "Ninth Annual Conference on Object-Oriented Programming
Systems, Languages, and Applications. OOPSLA '94",
corpsource = "INRIA, Le Chesnay, France",
keywords = "C++; coloring; compressed dispatch tables; constant
time performance; mono-methods; multi-method dispatch;
object oriented programming object oriented
programming; object-oriented language; object-oriented
languages; object-oriented programming; optimisation;
optimization; programming theory; signature analysis",
sponsororg = "ACM",
treatment = "P Practical; T Theoretical or Mathematical",
}
Determination of the called class by static analysis:
@InProceedings{diwan+96,
author = "Amer Diwan and J. Eliot B. Moss and Kathryn S. McKinley",
title = "Simple and Effective Analysis of Statically-Typed
Object-Oriented Programs",
crossref = "oopsla96",
pages = "292--305"
}
Static analysis vs. dynamic optimization:
@Inproceedings{agesen&hoelzle95,
author = "Ole Agesen and Urs Hoelzle",
title = "Type Feedback vs. Concrete Type Analysis: {A}
Comparison of Optimization Techniques for
Object-Oriented Languages",
booktitle = "OOPSLA '95",
year = "1995",
abstract-url = "http://http.cs.ucsb.edu/~urs/tf-vs-ti.html",
url = "http://http.cs.ucsb.edu/~urs/tf-vs-ti.ps.Z"
}
Optimizing dispatch by specialization:
@Article{chambers&ungar90,
author = "Craig Chambers and David Ungar",
journal = "SIGPLAN Notices",
title = "Iterative Type Analysis and Extended Message
Splitting: Optimizing Dynamically-Typed Object-Oriented
Programs",
year = "1990",
abstract-url = "http://self.stanford.edu/papers/iterative-type-analysis.html",
url = "ftp://self.stanford.edu/pub/papers/sigplan90.ps.Z",
month = jun,
number = "6",
volume = "25",
}
Dispatch by binary search:
@InProceedings{zendra+97,
author = "Olivier Zendra and Dominique Colnet and Suzanne Collin",
title = "Efficient Dynamic Dispatch without Virtual Function
Tables. The SmallEiffel Compiler.",
crossref = "oopsla97",
pages = "125--141"
}
Adaptive Optimization:
@InProceedings{hoelzle&ungar94,
author = "Urs Hoelzle and David Ungar",
booktitle = "ACM SIGPLAN `94 Conference on Programming Language
Design and Implementation",
title = "Optimizing Dynamically-Dispatched Calls with Run-Time
Type Feedback",
year = "1994",
abstract-url = "http://http.cs.ucsb.edu/~urs/type-feedback.html",
address = "Orlando, FL",
url = "ftp://self.stanford.edu/pub/papers/pldi94.ps.Z",
keywords = "Object-oriented, SELF",
month = jun,
scope = "opt",
}
Exception handling:
@TechReport{hof+97,
type = "Technical Report",
number = "CS-SSW-P97-07",
institution = "Johannes Kepler University Linz, Austria",
title = "Zero-Overhead Exception Handling Using
Metaprogramming",
month = jul # " 1,",
year = "1997",
bibdate = "September 1, 1997",
url = "ftp://ftp.ssw.uni-linz.ac.at/pub/Reports/CS-SSW-P97-07.ps.Z",
note = "ftp://ftp.ssw.uni-linz.ac.at/pub/Reports/CS-SSW-P97-07.ps.Z",
author = "M. Hof and H. {M\"ossenb\"ock} and P. Pirkelbauer"
}
Type inclusion tests (RTTI):
@InProceedings{vitek+97,
author = "Jan Vitek and R. Nigel Horspool and Andreas Krall",
title = "Efficient Type Inclusion Tests",
crossref = "oopsla97",
pages = "142--157",
annote = ""
}
Parametric Polymorphism:
@InProceedings{roe&szyperski97,
author = "Paul Roe and Clemens Szyperski",
title = "Lightweight Parametric Polymorphism for Oberon",
booktitle = "Proc. of Joint Modular Languages Conference (JMLC)",
year = "1997",
month = mar,
address = "Linz, Austria",
url = "http://www.fit.qut.edu.au/~szypersk/pub/JMLC97.ps.gz"
}
Organization of the compiler:
@InProceedings{dean+96,
author = "Jeffrey Dean and Greg DeFouw and David Grove and
Vassily Litvinov and Craig Chambers",
title = "Vortex: An Optimizing Compiler for Object-Oriented
Languages",
crossref = "oopsla96",
pages = "83--100"
}
Referenced Proceedings:
@Proceedings{oopsla96,
title = "Conference on Object-Oriented Programming Systems,
Languages \& Applications (OOPSLA '96)",
booktitle = "Conference on Object-Oriented Programming Systems,
Languages \& Applications (OOPSLA '96)",
year = "1996",
key = "OOPSLA '96",
}
@Proceedings{cc96,
title = "Compiler Construction (CC'96)",
booktitle = "Compiler Construction (CC'96)",
year = "1996",
key = "CC'96",
editor = "Tibor Gyim\'{o}thy",
OPTvolume = "1060",
OPTseries = "LNCS",
publisher = "Springer LNCS~1060",
address = "Link{\"o}ping"
}
@Proceedings{oopsla97,
title = "Conference on Object-Oriented Programming Systems,
Languages \& Applications (OOPSLA '97)",
booktitle = "Conference on Object-Oriented Programming Systems,
Languages \& Applications (OOPSLA '97)",
year = "1997",
key = "OOPSLA '97",
}
- anton
--
M. Anton Ertl Some things have to be seen to be believed
anton@mips.complang.tuwien.ac.at Most things have to be believed to be seen
http://www.complang.tuwien.ac.at/anton/home.html
Return to the
comp.compilers page.
Search the
comp.compilers archives again.