A Type System for Access Control Views in Object-Oriented Languages

Author(s):  
Mário Pires ◽  
Luís Caires
2008 ◽  
Vol 18 (3) ◽  
pp. 285-331 ◽  
Author(s):  
CHIERI SAITO ◽  
ATSUSHI IGARASHI ◽  
MIRKO VIROLI

AbstractFamily polymorphism has been proposed for object-oriented languages as a solution to supporting reusable yet type-safe mutually recursive classes. A key idea of family polymorphism is the notion of families, which are used to group mutually recursive classes. In the original proposal, due to the design decision that families are represented by objects, dependent types had to be introduced, resulting in a rather complex type system. In this article, we propose a simpler solution oflightweightfamily polymorphism, based on the idea that families are represented by classes rather than by objects. This change makes the type system significantly simpler without losing much expressive power of the language. Moreover, “family-polymorphic” methods now take a form of parametric methods; thus, it is easy to apply method type argument inference as in Java 5.0. To rigorously show that our approach is safe, we formalize the set of language features on top of Featherweight Java and prove that the type system is sound. An algorithm for type inference for family-polymorphic method invocations is also formalized and proved to be correct. Finally, a formal translation by erasure to Featherweight Java is presented; it is proved to preserve typing and execution results, showing that our new language features can be implemented in Java by simply extending the compiler.


1991 ◽  
Vol 1 (1) ◽  
pp. 3-48 ◽  
Author(s):  
Luca Cardelli ◽  
John C. Mitchell

We define a simple collection of operations for creating and manipulating record structures, where records are intended as finite associations of values to labels. A second-order type system over these operations supports both subtyping and polymorphism. We provide typechecking algorithms and limited semantic models.Our approach unifies and extends previous notions of records, bounded quantification, record extension, and parametrization by row-variables. The general aim is to provide foundations for concepts found in object-oriented languages, within a framework based on typed lambda-calculus.


1990 ◽  
Vol 19 (305) ◽  
Author(s):  
Jens Palsberg ◽  
Michael I. Schwartzbach

We introduce substitution polymorphism as a new basis for typed object-oriented languages. While avoiding subtypes and polymorphic types, this mechanism enables optimal static type-checking of generic classes and polymorphic functions. The novel idea is to view a class as having a family of implicit subclasses, each of which is obtained through a substitution of types. This allows instantiation of a generic class to be merely subclassing and resolves the problems in the <em> Eiffel</em> type system reported by Cook. All subclasses, including the implicit ones, can reuse the code implementing their superclass.


1990 ◽  
Vol 19 (341) ◽  
Author(s):  
Jens Palsberg ◽  
Michael I. Schwartzbach

We present a new type system for object-oriented languages with assignments. Types are sets of classes, subtyping is set inclusion, and genericity is class substitution. The type system enables separate compilation, and unifies, generalizes, and simplifies the type systems underlying SIMULA/BETA, C++, EIFFEL, and Typed Smalltalk, and the type system with type substitutions proposed by Palsberg and Schwartzbach, Classes and types are both modeled as node-labeled, ordered regular trees; this allows an efficient type-checking algorithm.


1990 ◽  
Vol 19 (326) ◽  
Author(s):  
Ole Lehrmann Madsen ◽  
Boris Magnusson ◽  
Birger Møller-Pedersen

This paper is concerned with the relation between <em>subtyping</em> and <em>subclassing</em> and their influence on programming language design. Traditionally subclassing as introduced by Simula has also been used for defining a hierarchical type system. The type system of a language can be characterized as <em>strong</em> or <em> weak</em> and the type checking mechanism as <em>static</em> or <em>dynamic</em>. Parameterized classes in combination with a hierarchical type-system is an example of a language construct that is known to create complicated type checking situations. In this paper these situations are analyzed and several different solutions are found. It is argued that an approach with a combination of static and dynamic type checking gives a reasonable balance also here. It is also concluded that this approach makes it possible to base the type system on the class/subclass mechanism.


2009 ◽  
Vol 22 (5) ◽  
pp. 489-535 ◽  
Author(s):  
Adolfo Duran ◽  
Ana Cavalcanti ◽  
Augusto Sampaio

2010 ◽  
Vol 36 (2) ◽  
pp. 123-141 ◽  
Author(s):  
Daniel Fernández Lanvin ◽  
Raúl Izquierdo Castanedo ◽  
Aquilino Adolfo Juan Fuente ◽  
Alberto Manuel Fernández Álvarez

Author(s):  
Gary A. Gabriele ◽  
Agustî Maria I. Serrano

Abstract The need for superior design tools has lead to the development of better and more complex computer aided design programs. Two of the more important new developments in application tools being investigation are Object Oriented Languages, and HyperMedia. Object Oriented Languages allow the development of CAD tools where the parts being designed and the design procedures specified are conceptualized as objects. This allows for the development of design aids that are non-procedural and more readily manipulated by the user trying to accomplish a design task. HyperMedia allows for the easy inclusion of many different types of data, such as design charts and graphs, into the tool that are normally difficult to include in design tools programmed with more conventional programming languages. This paper explores the development of a computer aided design tool for the design of a single stage gear box using the development HyperCard® environment and the HyperTalk® programming language. The resulting program provides a user friendly interface, the ability to handle several kinds of design information including graphic and textual, and a non-procedural design tool to help the user design simple, one stage gear boxes. Help facilities in the program make it suitable for undergraduate instruction in a machine elements design course.


Sign in / Sign up

Export Citation Format

Share Document