Constructors

14,000,000 Leading Edge Experts on the ideXlab platform

Scan Science and Technology

Contact Leading Edge Experts & Companies

Scan Science and Technology

Contact Leading Edge Experts & Companies

The Experts below are selected from a list of 324 Experts worldwide ranked by ideXlab platform

Keith Mannock - One of the best experts on this subject based on the ideXlab platform.

  • the role of Constructors in the context of refactoring object oriented systems
    European Software Engineering Conference, 2003
    Co-Authors: Rajaa Najjar, Steve Counsell, George Loizou, Keith Mannock
    Abstract:

    Constructors play an essential role in object-oriented (OO) languages as a means of object creation. Yet, very little empirical evidence exists on Constructors, trends in their composition and how they impact comprehension and encapsulation of OO classes. In this paper, we empirically investigate the opportunities, benefits and problems of refactoring class Constructors across a sample of classes from five Java systems. The refactoring used, namely, replacing multiple Constructors with creation methods, was applied to each of a set of classes containing three or more Constructors. Empirical results showed benefits in terms of removed (duplicated) lines of code across the majority of systems. They also showed the potential for improved class comprehension by the creation of non-constructor methods (as a replacement for Constructors) and improved encapsulation of class elements through use of a private catch-all constructor. We also provide evidence from five C++ systems which suggests similar trends in Constructors to those found for Java. In terms of problems encountered, frequent and inconsistent use of the super construct made refactoring prohibitively difficult in some cases; the existence of Java interfaces also means a lack of scope for constructor refactoring. The results indicate clear and tangible benefits to be gained from investigation and implementation of refactoring techniques in Java, but with caution being exercised in certain cases; refactoring in practice is not as straightforward as the theory suggests.

  • CSMR - The role of Constructors in the context of refactoring object-oriented systems
    Seventh European Conference onSoftware Maintenance and Reengineering 2003. Proceedings., 1
    Co-Authors: Rajaa Najjar, Steve Counsell, George Loizou, Keith Mannock
    Abstract:

    Constructors play an essential role in object-oriented (OO) languages as a means of object creation. Yet, very little empirical evidence exists on Constructors, trends in their composition and how they impact comprehension and encapsulation of OO classes. In this paper, we empirically investigate the opportunities, benefits and problems of refactoring class Constructors across a sample of classes from five Java systems. The refactoring used, namely, replacing multiple Constructors with creation methods, was applied to each of a set of classes containing three or more Constructors. Empirical results showed benefits in terms of removed (duplicated) lines of code across the majority of systems. They also showed the potential for improved class comprehension by the creation of non-constructor methods (as a replacement for Constructors) and improved encapsulation of class elements through use of a private catch-all constructor. We also provide evidence from five C++ systems which suggests similar trends in Constructors to those found for Java. In terms of problems encountered, frequent and inconsistent use of the super construct made refactoring prohibitively difficult in some cases; the existence of Java interfaces also means a lack of scope for constructor refactoring. The results indicate clear and tangible benefits to be gained from investigation and implementation of refactoring techniques in Java, but with caution being exercised in certain cases; refactoring in practice is not as straightforward as the theory suggests.

Rajaa Najjar - One of the best experts on this subject based on the ideXlab platform.

  • the role of Constructors in the context of refactoring object oriented systems
    European Software Engineering Conference, 2003
    Co-Authors: Rajaa Najjar, Steve Counsell, George Loizou, Keith Mannock
    Abstract:

    Constructors play an essential role in object-oriented (OO) languages as a means of object creation. Yet, very little empirical evidence exists on Constructors, trends in their composition and how they impact comprehension and encapsulation of OO classes. In this paper, we empirically investigate the opportunities, benefits and problems of refactoring class Constructors across a sample of classes from five Java systems. The refactoring used, namely, replacing multiple Constructors with creation methods, was applied to each of a set of classes containing three or more Constructors. Empirical results showed benefits in terms of removed (duplicated) lines of code across the majority of systems. They also showed the potential for improved class comprehension by the creation of non-constructor methods (as a replacement for Constructors) and improved encapsulation of class elements through use of a private catch-all constructor. We also provide evidence from five C++ systems which suggests similar trends in Constructors to those found for Java. In terms of problems encountered, frequent and inconsistent use of the super construct made refactoring prohibitively difficult in some cases; the existence of Java interfaces also means a lack of scope for constructor refactoring. The results indicate clear and tangible benefits to be gained from investigation and implementation of refactoring techniques in Java, but with caution being exercised in certain cases; refactoring in practice is not as straightforward as the theory suggests.

  • CSMR - The role of Constructors in the context of refactoring object-oriented systems
    Seventh European Conference onSoftware Maintenance and Reengineering 2003. Proceedings., 1
    Co-Authors: Rajaa Najjar, Steve Counsell, George Loizou, Keith Mannock
    Abstract:

    Constructors play an essential role in object-oriented (OO) languages as a means of object creation. Yet, very little empirical evidence exists on Constructors, trends in their composition and how they impact comprehension and encapsulation of OO classes. In this paper, we empirically investigate the opportunities, benefits and problems of refactoring class Constructors across a sample of classes from five Java systems. The refactoring used, namely, replacing multiple Constructors with creation methods, was applied to each of a set of classes containing three or more Constructors. Empirical results showed benefits in terms of removed (duplicated) lines of code across the majority of systems. They also showed the potential for improved class comprehension by the creation of non-constructor methods (as a replacement for Constructors) and improved encapsulation of class elements through use of a private catch-all constructor. We also provide evidence from five C++ systems which suggests similar trends in Constructors to those found for Java. In terms of problems encountered, frequent and inconsistent use of the super construct made refactoring prohibitively difficult in some cases; the existence of Java interfaces also means a lack of scope for constructor refactoring. The results indicate clear and tangible benefits to be gained from investigation and implementation of refactoring techniques in Java, but with caution being exercised in certain cases; refactoring in practice is not as straightforward as the theory suggests.

Janis Voigtländer - One of the best experts on this subject based on the ideXlab platform.

  • Free theorems involving type constructor classes
    ACM SIGPLAN Notices, 2009
    Co-Authors: Janis Voigtländer
    Abstract:

    Free theorems are a charm, allowing the derivation of useful statements about programs from their (polymorphic) types alone. We show how to reap such theorems not only from polymorphism over ordinary types, but also from polymorphism over type Constructors restricted by class constraints. Our prime application area is that of monads, which form the probably most popular type constructor class of Haskell. To demonstrate the broader scope, we also deal with a transparent way of introducing difference lists into a program, endowed with a neat and general correctness proof.

  • free theorems involving type constructor classes functional pearl
    International Conference on Functional Programming, 2009
    Co-Authors: Janis Voigtländer
    Abstract:

    Free theorems are a charm, allowing the derivation of useful statements about programs from their (polymorphic) types alone. We show how to reap such theorems not only from polymorphism over ordinary types, but also from polymorphism over type Constructors restricted by class constraints. Our prime application area is that of monads, which form the probably most popular type constructor class of Haskell. To demonstrate the broader scope, we also deal with a transparent way of introducing difference lists into a program, endowed with a neat and general correctness proof.

  • ICFP - Free theorems involving type constructor classes: functional pearl
    Proceedings of the 14th ACM SIGPLAN international conference on Functional programming - ICFP '09, 2009
    Co-Authors: Janis Voigtländer
    Abstract:

    Free theorems are a charm, allowing the derivation of useful statements about programs from their (polymorphic) types alone. We show how to reap such theorems not only from polymorphism over ordinary types, but also from polymorphism over type Constructors restricted by class constraints. Our prime application area is that of monads, which form the probably most popular type constructor class of Haskell. To demonstrate the broader scope, we also deal with a transparent way of introducing difference lists into a program, endowed with a neat and general correctness proof.

George Loizou - One of the best experts on this subject based on the ideXlab platform.

  • the role of Constructors in the context of refactoring object oriented systems
    European Software Engineering Conference, 2003
    Co-Authors: Rajaa Najjar, Steve Counsell, George Loizou, Keith Mannock
    Abstract:

    Constructors play an essential role in object-oriented (OO) languages as a means of object creation. Yet, very little empirical evidence exists on Constructors, trends in their composition and how they impact comprehension and encapsulation of OO classes. In this paper, we empirically investigate the opportunities, benefits and problems of refactoring class Constructors across a sample of classes from five Java systems. The refactoring used, namely, replacing multiple Constructors with creation methods, was applied to each of a set of classes containing three or more Constructors. Empirical results showed benefits in terms of removed (duplicated) lines of code across the majority of systems. They also showed the potential for improved class comprehension by the creation of non-constructor methods (as a replacement for Constructors) and improved encapsulation of class elements through use of a private catch-all constructor. We also provide evidence from five C++ systems which suggests similar trends in Constructors to those found for Java. In terms of problems encountered, frequent and inconsistent use of the super construct made refactoring prohibitively difficult in some cases; the existence of Java interfaces also means a lack of scope for constructor refactoring. The results indicate clear and tangible benefits to be gained from investigation and implementation of refactoring techniques in Java, but with caution being exercised in certain cases; refactoring in practice is not as straightforward as the theory suggests.

  • CSMR - The role of Constructors in the context of refactoring object-oriented systems
    Seventh European Conference onSoftware Maintenance and Reengineering 2003. Proceedings., 1
    Co-Authors: Rajaa Najjar, Steve Counsell, George Loizou, Keith Mannock
    Abstract:

    Constructors play an essential role in object-oriented (OO) languages as a means of object creation. Yet, very little empirical evidence exists on Constructors, trends in their composition and how they impact comprehension and encapsulation of OO classes. In this paper, we empirically investigate the opportunities, benefits and problems of refactoring class Constructors across a sample of classes from five Java systems. The refactoring used, namely, replacing multiple Constructors with creation methods, was applied to each of a set of classes containing three or more Constructors. Empirical results showed benefits in terms of removed (duplicated) lines of code across the majority of systems. They also showed the potential for improved class comprehension by the creation of non-constructor methods (as a replacement for Constructors) and improved encapsulation of class elements through use of a private catch-all constructor. We also provide evidence from five C++ systems which suggests similar trends in Constructors to those found for Java. In terms of problems encountered, frequent and inconsistent use of the super construct made refactoring prohibitively difficult in some cases; the existence of Java interfaces also means a lack of scope for constructor refactoring. The results indicate clear and tangible benefits to be gained from investigation and implementation of refactoring techniques in Java, but with caution being exercised in certain cases; refactoring in practice is not as straightforward as the theory suggests.

Steve Counsell - One of the best experts on this subject based on the ideXlab platform.

  • the role of Constructors in the context of refactoring object oriented systems
    European Software Engineering Conference, 2003
    Co-Authors: Rajaa Najjar, Steve Counsell, George Loizou, Keith Mannock
    Abstract:

    Constructors play an essential role in object-oriented (OO) languages as a means of object creation. Yet, very little empirical evidence exists on Constructors, trends in their composition and how they impact comprehension and encapsulation of OO classes. In this paper, we empirically investigate the opportunities, benefits and problems of refactoring class Constructors across a sample of classes from five Java systems. The refactoring used, namely, replacing multiple Constructors with creation methods, was applied to each of a set of classes containing three or more Constructors. Empirical results showed benefits in terms of removed (duplicated) lines of code across the majority of systems. They also showed the potential for improved class comprehension by the creation of non-constructor methods (as a replacement for Constructors) and improved encapsulation of class elements through use of a private catch-all constructor. We also provide evidence from five C++ systems which suggests similar trends in Constructors to those found for Java. In terms of problems encountered, frequent and inconsistent use of the super construct made refactoring prohibitively difficult in some cases; the existence of Java interfaces also means a lack of scope for constructor refactoring. The results indicate clear and tangible benefits to be gained from investigation and implementation of refactoring techniques in Java, but with caution being exercised in certain cases; refactoring in practice is not as straightforward as the theory suggests.

  • CSMR - The role of Constructors in the context of refactoring object-oriented systems
    Seventh European Conference onSoftware Maintenance and Reengineering 2003. Proceedings., 1
    Co-Authors: Rajaa Najjar, Steve Counsell, George Loizou, Keith Mannock
    Abstract:

    Constructors play an essential role in object-oriented (OO) languages as a means of object creation. Yet, very little empirical evidence exists on Constructors, trends in their composition and how they impact comprehension and encapsulation of OO classes. In this paper, we empirically investigate the opportunities, benefits and problems of refactoring class Constructors across a sample of classes from five Java systems. The refactoring used, namely, replacing multiple Constructors with creation methods, was applied to each of a set of classes containing three or more Constructors. Empirical results showed benefits in terms of removed (duplicated) lines of code across the majority of systems. They also showed the potential for improved class comprehension by the creation of non-constructor methods (as a replacement for Constructors) and improved encapsulation of class elements through use of a private catch-all constructor. We also provide evidence from five C++ systems which suggests similar trends in Constructors to those found for Java. In terms of problems encountered, frequent and inconsistent use of the super construct made refactoring prohibitively difficult in some cases; the existence of Java interfaces also means a lack of scope for constructor refactoring. The results indicate clear and tangible benefits to be gained from investigation and implementation of refactoring techniques in Java, but with caution being exercised in certain cases; refactoring in practice is not as straightforward as the theory suggests.