User loginNavigation |
OOPAbstract Interface Types in GNAT: Conversions, Discriminants, and C++Abstract Interface Types in GNAT: Conversions, Discriminants, and C++. Javier Miranda and Edmond Schonberg.
The addition of interface types, of the type found in Java, to Ada2005 presented compiler writers with an implementation challenge. This is a third paper in a series describing the implementation of interfaces in the GNAT Ada compiler (an earlier paper dealt with synchronized interfaces, an interesting special case). The present paper deals mainly with issues caused by interface type conversions, and the related data layout issues. Of special interest is section 6 which shows how to write a C++/Ada multi-language program, in which method calls can be dispatched across language boundaries. Handling the multiple inheritance in the C++ code in this example is possible because the base classes have only pure virtual functions. By Ehud Lamm at 2007-04-14 15:52 | Cross language runtimes | Implementation | OOP | login or register to post comments | other blogs | 7879 reads
Gradual Typing for ObjectsGradual Typing for Objects. Jeremy Siek and Walid Taha.
The authors' previous work on gradual typing was discussed here. This brings it to an object-oriented setting which is (as the abstract points out) very directly applicable to mainstream scripting languages, at least in principle. [Edit: This is from the types list, where the authors also added: "We will present the paper at ECOOP 2007 and would be especially interested in any feedback on the paper before the final submission is due on April 25."] By Matt Hellige at 2007-02-12 21:44 | OOP | Semantics | Type Theory | 1 comment | other blogs | 14346 reads
First Class Relationships in an Object-oriented LanguageFirst Class Relationships in an Object-oriented Language, by Gavin Bierman and Alisdair Wren, was a paper published at ECOOP 2005. They show how to add relationships as a first-class mechanism to a Java-like language, where by relationships in something like the UML sense. Cribbing from their examples, you might have a Student class and a Course class, and an Attends relationship, which is a binary relation between Students and Courses. Then, there are mechanisms to dynamically add and remove entries from a relationship, and to query a relationship about whether particular objects are in them or not. Now my personal random editorialisation: I think this is a really interesting idea, because these kinds of things pops up all the time in OO models, and having relations be first class means that you can move some state out of individual object instances, which is always a good thing, and the type system can guarantee something about what relationships will hold. The things that scare me about this idea are first, that you can potentially add a lot of heap pressure by keeping objects live longer, and second, that you now have much more pervasive aliasing of objects in your program. I don't know if these are real problems though, and anyway the feature is cool enough that I'd be interested in programming in a language with support for it, just to see what it's like. Directness and liveness in the morphic user interface construction environmentDirectness and liveness in the morphic user interface construction environment, John H. Maloney and Randall B. Smith, 1995.
Morphic was developed in Self and then adopted by Squeak. Reading this paper makes Squeak more interesting to click around in! Interesting project to modularize SqueakRalph Johnson mentions an interesting project from Pavel Krivanek to modularize Squeak. For example, there's a KernelImage that excludes the GUI (it's 2.8 MB compared to 15 MB for the full 3.9 release). The modularized images are created automatically from the complete image, by Squeak code. It's been awhile since we discussed Squeak, which remains as far as I can tell, an interesting project worth keeping an eye on. Is "post OO" just over?While studying the conference program of the upcoming OOPSLA 2006 I discovered under the category "essay" an author who has quite something critical to say about AOP:
This is not just another internet rant about the latest PL hype but the author, Friedrich Steimann, had done interesting work about AOP before. In particular his latest paper about typed AOP: AOP and the antinomy of the liar but also his award winning former critical AOP review: By Kay Schluehr at 2006-09-24 10:50 | Critiques | Meta-Programming | OOP | Paradigms | 22 comments | other blogs | 16439 reads
Revealing the X/O impedance mismatchRalf Lämmel and Erik Meijer. Revealing the X/O impedance mismatch.
This paper is over 100 pages, way longer than I have the time to read at the moment. Skimming, the paper looks interesting and useful. If you manage to read the whole thing, do share your observations with us in the discussion group. Securing the .NET Programming ModelSecuring the .NET Programming Model. Andrew J. Kennedy.
This is highly amusing stuff, of course. Some choice quotes:
To see the six problems identified by thinking about full abstraction you'll have to go read the paper... By Ehud Lamm at 2006-06-26 11:17 | Implementation | OOP | Semantics | Type Theory | 14 comments | other blogs | 15268 reads
Variance and Generalized Constraints for C# GenericsVariance and Generalized Constraints for C# Generics. Burak Emir, Andrew J. Kennedy, Claudio Russo, Dachuan Yu. July 2006
Discussion of previous C# GADT paper on LtU. I am unsure about use-site versus definition-site variance declerations. It would be interesting to hear what others think. Also check out the LtU discussion on wildcards in Java. By Ehud Lamm at 2006-06-18 11:33 | OOP | Software Engineering | Type Theory | 16 comments | other blogs | 21193 reads
Class decorators in Python
More + links: here. By Ehud Lamm at 2006-03-30 15:48 | Cross language runtimes | OOP | Python | login or register to post comments | other blogs | 11421 reads
|
Browse archives
Active forum topics |
Recent comments
23 weeks 2 days ago
23 weeks 2 days ago
23 weeks 2 days ago
45 weeks 4 days ago
49 weeks 6 days ago
51 weeks 3 days ago
51 weeks 3 days ago
1 year 2 weeks ago
1 year 6 weeks ago
1 year 6 weeks ago