Multimethods and separate static typechecking in a language with C++-like object model

نویسندگان

  • Emanuele Panizzi
  • Bernardo Pastorelli
چکیده

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.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

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