Multimethods and separate static typechecking in a language with C++-like object model
نویسندگان
چکیده
The goal of this paper is the description and analysis of multimethod implementation in a new objectoriented, class-based programming language called OOLANG. The implementation of the multimethod typecheck and selection, deeply analyzed in the paper, is performed in two phases in order to allow static typechecking and separate compilation of modules. The first phase is performed at compile time, while the second is executed at link time and does not require the modules’ source code. OOLANG has syntax similar to C++; the main differences are the absence of pointers and the realization of polymorphism through subsumption. It adopts the C++ object model and supports multiple inheritance as well as virtual base classes. For this reason, it has been necessary to define techniques for realigning argument and return value addresses when performing multimethod invocations.
منابع مشابه
BeCecil, A Core Object-Oriented Language with Block Structure and Multimethods: Semantics and Typing
We present and analyze the semantics and static type system for BeCecil, a theoretical (core) language with multimethods. BeCecil is a simple and orthogonal version of object-oriented languages like Cecil, CLOS, and Dylan. BeCecil has a new, simple mechanism for information hiding, which allows subclassing and yet can preserve representation invariants. BeCecil is also block-structured; within ...
متن کاملGenus: Making Generics Object-Oriented, Expressive, and Lightweight Technical Report
The support for generic programming in modern object-oriented programming languages is awkward and lacks desirable expressive power. We introduce an expressive genericity mechanism that adds expressive power and strengthens static checking, while remaining lightweight and simple in common use cases. Like type classes and concepts, the mechanism allows existing types to model type constraints re...
متن کاملEGO: Controlling the Power of Simplicity
The SELF programming language provides powerful dynamic features, allowing programmers to add and remove methods from objects and to change the inheritance hierarchy at run time. These facilities are useful for modeling objects that behave in different ways at different points in the object’s lifecycle. Unstructured use of these techniques, however, can result in arbitrary changes to the interf...
متن کاملTypechecking UML Static Models
UML static models are expressed using a mixture of class diagrams and OCL expressions. In a well formed static model, the OCL expressions and class diagrams are type consistent. Checking for type consistency of static models involves both inclusion and parametric poly-morphism. This paper deenes a semantics of type consistency in terms of a type theory for UML static models. The type theory is ...
متن کاملIntegrating Statically Typechecked XML Data Technologies into Pure Java
XML is the de facto standard for exchanging data between aribtrary applications. There are many efforts to integrate XML into object-oriented programming languages reaching from the simple document object model (DOM) to XML class generators or even to the introduction of new programming languages. Another as desired feature as XML is persistency. The integration of persistency into object-orien...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- CoRR
دوره cs.PL/0005033 شماره
صفحات -
تاریخ انتشار 2000