• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Typing in object-oriented languages: Achieving expressiveness and safety (1996)

by Kim Bruce
Add To MetaCart

Tools

Sorted by:
Results 1 - 10 of 27
Next 10 →

A Comparative Study of Language Support for Generic Programming

by Ronald Garcia, Jaakko Järvi, Andrew Lumsdaine, Jeremy Siek, Jeremiah Willcock , 2003
"... Many modern programming languages support basic generic programming, sufficient to implement type-safe polymorphic containers. Some languages have moved beyond this basic support to a broader, more powerful interpretation of generic programming, and their extensions have proven valuable in practice. ..."
Abstract - Cited by 69 (12 self) - Add to MetaCart
Many modern programming languages support basic generic programming, sufficient to implement type-safe polymorphic containers. Some languages have moved beyond this basic support to a broader, more powerful interpretation of generic programming, and their extensions have proven valuable in practice. This paper reports on a comprehensive comparison of generics in six programming languages: C , Standard ML, Haskell, Eiffel, Java (with its proposed generics extension), and Generic C#. By implementing a substantial example in each of these languages, we identify eight language features that support this broader view of generic programming. We find these features are necessary to avoid awkward designs, poor maintainability, unnecessary run-time checks, and painfully verbose code. As languages increasingly support generics, it is important that language designers understand the features necessary to provide powerful generics and that their absence causes serious difficulties for programmers.

Objective ML: An effective object-oriented extension to ML

by Didier Rémy, Jérôme Vouillon - THEORY AND PRACTICE OF OBJECT SYSTEMS , 1998
"... Objective ML is a small practical extension to ML with objects and top level classes. It is fully compatible with ML; its type system is based on ML polymorphism, record types with polymorphic access, and a better treatment of type abbreviations. Objective ML allows for most features of object-orien ..."
Abstract - Cited by 46 (3 self) - Add to MetaCart
Objective ML is a small practical extension to ML with objects and top level classes. It is fully compatible with ML; its type system is based on ML polymorphism, record types with polymorphic access, and a better treatment of type abbreviations. Objective ML allows for most features of object-oriented languages including multiple inheritance, methods returning self and binary methods as well as parametric classes. This demonstrates that objects can be added to strongly typed languages based on ML polymorphism.

Implementing Signatures for C++

by Gerald Baumgartner, Vincent F. Russo - ACM Transactions on Programming Languages and Systems , 1994
"... In this paper we overview the design and implementation of a language extension to C++ for abstracting types and for decoupling subtyping and inheritance. This extension gives the user more of the flexibility of dynamic typing while retaining the efficiency and security of static typing. We discuss ..."
Abstract - Cited by 20 (9 self) - Add to MetaCart
In this paper we overview the design and implementation of a language extension to C++ for abstracting types and for decoupling subtyping and inheritance. This extension gives the user more of the flexibility of dynamic typing while retaining the efficiency and security of static typing. We discuss the syntax and semantics of this language extension, show examples of its use, and present and analyze the cost of three different implementation techniques: a preprocessor to a C++ compiler, an implementation in the front end of a C++ compiler, and a low-level back-end based implementation.

From Classes to Objects via Subtyping

by Didier Rémy , 1998
"... We extend the Abadi-Cardelli calculus of primitive objects with object extension. We enrich object types with a more precise, uniform, and flexible type structure. This enables to type object extension under both width and depth subtyping. Objects may also have extendonly or virtual contra-variant ..."
Abstract - Cited by 19 (0 self) - Add to MetaCart
We extend the Abadi-Cardelli calculus of primitive objects with object extension. We enrich object types with a more precise, uniform, and flexible type structure. This enables to type object extension under both width and depth subtyping. Objects may also have extendonly or virtual contra-variant methods and read-only co-variant methods. The resulting subtyping relation is richer, and types of objects can be weaken progressively from a class level to a more traditional object level along the subtype relationship.

Increasing Java's expressiveness with ThisType and match-bounded polymorphism

by Kim B. Bruce , 1997
"... this document we would like to propose some relatively minor additions to Java's syntax and semantics [GJS96] in order to increase the expressiveness of the language with little cost in semantic complexity. We avoided making suggestions that would invalidate or change the semantics of programs writt ..."
Abstract - Cited by 18 (2 self) - Add to MetaCart
this document we would like to propose some relatively minor additions to Java's syntax and semantics [GJS96] in order to increase the expressiveness of the language with little cost in semantic complexity. We avoided making suggestions that would invalidate or change the semantics of programs written in the current version of Java. While the main point of the language extensions are to support parametric polymorphism, we also added features which provide better support for binary methods, a kind of method that is often difficult to support in a statically typed language. (See [BCC

A Natural Semantics for Eiffel Dynamic Binding

by Isabelle Attali, Denis Caromel, Sidi Ould Ehmety , 1996
"... This article formally defines Eiffel dynamic binding in presence of... ..."
Abstract - Cited by 17 (1 self) - Add to MetaCart
This article formally defines Eiffel dynamic binding in presence of...

A Controlled Experiment to Assess the Benefits of Procedure Argument Type Checking

by Lutz Prechelt, Walter F. Tichy - IEEE Transactions on Software Engineering , 1998
"... Type checking is considered an important mechanism for detecting programming errors, especially interface errors. This report describes an experiment to assess the defect-detection capabilities of static, inter-module type checking. The experiment uses Ansi C and Kernighan&Ritchie (K&R) C. The relev ..."
Abstract - Cited by 15 (2 self) - Add to MetaCart
Type checking is considered an important mechanism for detecting programming errors, especially interface errors. This report describes an experiment to assess the defect-detection capabilities of static, inter-module type checking. The experiment uses Ansi C and Kernighan&Ritchie (K&R) C. The relevant difference is that the Ansi C compiler checks module interfaces (i.e., the parameter lists of calls to external functions), whereas K&R C does not. The experiment employs a counterbalanced design in which each of the 40 subjects, most of them CS Ph.D. students, writes two non-trivial programs that interface with a complex library (Motif). Each subject writes one program in Ansi C and one in K&R C. The input to each compiler run is saved and manually analyzed for defects. Results indicate that delivered Ansi C programs contain significantly fewer interface defects than delivered K&R C programs. Furthermore, after subjects have gained some familiarity with the interface they are using, An...

A Language for Generic Programming

by Jeremy G. Siek , 2005
"... First and foremost I thank my parents for all their love and for teaching me to enjoy learning. I especially thank my wife Katie for her support and understanding through this long and sometimes stressful process. I also thank Katie for insisting on good error messages for G! My advisor, Andrew Lums ..."
Abstract - Cited by 13 (3 self) - Add to MetaCart
First and foremost I thank my parents for all their love and for teaching me to enjoy learning. I especially thank my wife Katie for her support and understanding through this long and sometimes stressful process. I also thank Katie for insisting on good error messages for G! My advisor, Andrew Lumsdaine, deserves many thanks for his support and guidance and for keeping the faith as I undertook this long journey away from scientific computing and into the field of programming languages. I thank my thesis committee: R. Kent Dybvig, Daniel P. Friedman, Steven D. Johnson, and Amr Sabry for their advice and encouragement. A special thanks goes to Ronald Garcia, Christopher Mueller, and Douglas Gregor for carefully editing and catching the many many times when I accidentally skipped over the important stuff. Thanks to Jaakko and Jeremiah for hours of stimulating discussions and arguments concerning separate compilation and concept-based overloading. Thanks to David Abrahams for countless hours spent debating the merits of one design over another while jogging through the hinterlands of Norway. Thanks to Alexander Stepanov and David Musser for getting all this started, and thank you for the encouragement over the years. Thanks to Matthew Austern, his book Generic Programming in the STL was both an inspiration

Typed operational semantics for higher order subtyping

by Adriana Compagnoni, Healfdene Goguen , 1997
"... Bounded operator abstraction is a language construct relevant to object oriented programming languages and to ML2000, the successor to Standard ML. In this paper, we introduce F!^, a variant of F!!: with this feature and with Cardelli and Wegner's kernel Fun rule for quantifiers. We define a typed ..."
Abstract - Cited by 12 (4 self) - Add to MetaCart
Bounded operator abstraction is a language construct relevant to object oriented programming languages and to ML2000, the successor to Standard ML. In this paper, we introduce F!^, a variant of F!!: with this feature and with Cardelli and Wegner's kernel Fun rule for quantifiers. We define a typed operational semantics with subtyping and prove that it is equivalent with F!^, using a Kripke model to prove soundness. The typed operational semantics provides a powerful tool to establish the metatheoretic properties of F!^, such as Church-Rosser, subject reduction, the admissibility of structural rules, and the equivalence with the algorithmic presentation of the system.

A Formal Approach to Relationships in the Unified Modeling Language

by Gunnar Overgaard , 1998
"... We present parts of a formal specification of the Unified Modeling Language. The paper focuses on the relationship constructs in UML, such as Association, Import and different kinds of Generalization. ..."
Abstract - Cited by 11 (3 self) - Add to MetaCart
We present parts of a formal specification of the Unified Modeling Language. The paper focuses on the relationship constructs in UML, such as Association, Import and different kinds of Generalization.
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University