Bad engineering properties of object-orient languages

@article{Cardelli1996BadEP,
  title={Bad engineering properties of object-orient languages},
  author={Luca Cardelli},
  journal={ACM Comput. Surv.},
  year={1996},
  volume={28},
  pages={150}
}
  • L. Cardelli
  • Published 1 December 1996
  • Computer Science
  • ACM Comput. Surv.
The object-oriented paradigm emerged in the 60Os, roughly during the time that important notions such as data abstraction, polymorphism, and modularization were applied to the procedural paradigm. Eventually, object-oriented languages also acquired notions of data abstraction, polymorphism, and modularization, but not quite in the same way, and not quite as effectively. In the last decade, object-oriented languages have been widely adopted as engineering tools because of their superiority with… 

Should ML be Object-Oriented?

It is argued that while some of the simpler aspects of object-oriented languages are compatible with ML, adding a full- edged class-based object system to ML leads to an excessively complex type system and relatively little expressive gain, especially if the authors aim to preserve that mostly functional style of programming that is a major advantage of ML.

Formal Aspects of Computing Should ML be Object-Oriented ?

It is argued that while some of the simpler aspects of object-oriented languages are compatible with ML, adding a full-fledged class-based object system to ML leads to an excessively complex type system and relatively little expressive gain, especially if the authors aim to preserve that mostly functional style of programming that is a major advantage of ML.

Refining Objects

It is shown that welltyped FJ programs translate to well-typed and well-refined programs, from which they deduce the same safety guarantees as are provided by FJ, and the behavioral formulation may be scaled to verify the absence of other behaviors, such as down-cast errors, that are not easily handled using only structural types.

Mool: an object-oriented programming language with generics and modules

MOOL is a class-based object-oriented language that supports modular programming and genericity, and contains separated mechanisms for different concepts like classes and modules, which are unified in other languages.

Improving Object Oriented Software Contracts

A new software contract tool, PACT, is developed which will help increase the use of software contracts and is described in detail the formal semantics and typing of PACT and a first implementation of the tool is developed.

Specification-Based Unit Testing

This MSc Thesis explores different alternatives for creating test cases in a more intelligent manner, but still very efficiently, so that the probability of finding bugs becomes higher in practice.

Subclassing errors, OOP, and practically checkable rules to prevent them

A set of mechanically verifiable rules are introduced that prevent subtle errors leading to subtle errors that break separation of interface and implementations in Object-Oriented Programming.

REAL-TIME SYSTEMS DESIGN AND ANALYSIS THIRD EDITION

The UML has become a family of languages (diagram types), and users can choose which members of the family are suitable for their domain, and some notion of time has been included in the UML through the use of sequence diagrams.

Experiences from placing Stack Overflow at the core of an intermediate programming course

The redesign of an intermediate Computer Programming course taught at the University of Vigo is discussed, seeking to promote question‐and‐answer websites for programmers as the main source of reference for the students, and turning the teacher into a permanent observer who delivers pertinent advice.

Software Component Reusability Classification in Functional Paradigm

  • Devesh ManjhiAmrita Chaturvedi
  • Computer Science
    2019 IEEE International Conference on Electrical, Computer and Communication Technologies (ICECCT)
  • 2019
The Self-Organizing Map algorithm is used to cluster the functions from three Haskell packages into three different classes of reusability, based on metrics threshold and their average values.

References

SHOWING 1-10 OF 10 REFERENCES

C++ Programming Language

Bjarne Stroustrup makes C even more accessible to those new to the language, while adding advanced information and techniques that even expert C programmers will find invaluable.

The Java Language Specification

The Java Language Specification, Second Edition is the definitive technical reference for the Java programming language and provides complete, accurate, and detailed coverage of the syntax and semantics of the Java language.

Smalltalk-80: The Language and Its Implementation

This book is the first detailed account of the Smalltalk-80 system and is divided into four major parts: an overview of the concepts and syntax of the programming language, a specification of the system's functionality, and an example of the design and implementation of a moderate-size application.

Pizza into Java: translating theory into practice

Pizza is a strict superset of Java that incorporates three ideas from the academic community: parametric polymorphism, higher-order functions, and algebraic data types. Pizza is defined by

OO Type Theory web page

  • OO Type Theory web page
  • 1996

Object-oriented software construction

  • Object-oriented software construction
  • 1988

The language and its implementation

  • 1983