|[16 earlier articles]|
|Re: Polymorphism vs. Overloading firstname.lastname@example.org (1994-10-31)|
|Re: Polymorphism vs. Overloading email@example.com (1994-10-31)|
|Re: Polymorphism vs. Overloading firstname.lastname@example.org (1994-10-26)|
|Re: Polymorphism vs. Overloading email@example.com (1994-10-31)|
|Re: Polymorphism vs. Overloading firstname.lastname@example.org (1994-10-31)|
|Re: Polymorphism vs. Overloading email@example.com (Martin Odersky) (1994-10-31)|
|Re: Polymorphism vs. Overloading firstname.lastname@example.org (1994-10-27)|
|Re: Polymorphism vs. Overloading email@example.com (1994-10-28)|
|Re: Polymorphism vs. Overloading firstname.lastname@example.org (1994-10-28)|
|Re: Polymorphism vs. Overloading email@example.com (1994-10-29)|
|Re: Polymorphism vs. Overloading firstname.lastname@example.org (1994-10-29)|
|Re: Polymorphism vs. Overloading email@example.com (1994-11-01)|
|Re: Polymorphism vs. Overloading firstname.lastname@example.org (kanze) (1994-11-01)|
|[8 later articles]|
|From:||email@example.com (Stephen J Bevan)|
|Organization:||Department of Computer Science; University of Manchester|
|Date:||Thu, 27 Oct 1994 17:28:23 GMT|
firstname.lastname@example.org (Gabriela O. de Vivo) writes:
... At some point a question raised about the exact difference between
Polymorphism and Overloading. ...
... Now, I wonder if some of you could help me by stating more
precisely (and rigourosly) the exact nature of the difference. ...
Cardelli and Wegner's paper [Cardelli:Wegner:acm:cs:1985] discusses
polymorphism and overloading and uses Strachey's definitions in which
the latter is viewed as particular type of the former. See the paper
for more details.
, author= "L. Cardelli and P. Wegner"
, title= "On Understanding Types, Data Abstraction and Polymorphism"
, journal= "ACM Computing Surveys"
, volume= 17
, number= 4
, pages= "480--521"
, month= dec
, year= 1985
, url= "ftp://www.research.digital.com/SRC/personal/Luca_Cardelli/Papers/OnUnderstanding.ps.Z"
, cr= "8703-0173"
, source= "copy / URL"
, checked= 19940821
, abstract= "Our objective is to understand the notion of type in
programming languages, present a model of typed, polymorphic
programming languages that reflects recent research in type theory,
and examine the relevance of recent research to the design of
practical programming languages. Object-oriented languages provide
both a framework and a motivation for exploring the interaction among
the concepts of type, data abstraction, and polymorphism, since they
extend the notion of type to data abstraction and since type
inheritance is an important form of polymorphism. We develop a
lambda-calculus-based model for type systems that allows us to explore
these interactions in a simple setting, unencumbered by complexities
of production programming languages. The evolution of languages from
untyped universes to monomorphic and then polymorphic type systems is
reviewed. Mechanisms for polymorphism such as overloading, coercion,
subtyping, and parameterization are examined. A unifying framework
for polymorphic type systems is developed in terms of the typed
lambda-calculus augmented to include binding of types by
quantification as well as binding of values by abstraction. The typed
lambda-calculus is augmented by universal quantification to model
generic functions with type parameters, existential quantification and
packaging (information hiding) to model abstract data types, and
bounded quantification to model subtypes and type inheritance. In this
way we obtain a simple and precise characterization of a powerful type
system that includes abstract data types, parametric polymorphism, and
multiple inheritance in a single consistent framework. The mechanisms
for type checking for the augmented lambda-calculus are discussed.
The augmented typed lambda-calculus is used as a programming language
for a variety of illustrative examples. We christen this language Fun
because fun instead of lambda is the functional abstraction keyword
and because it is pleasant to deal with. Fun is mathematically simple
and can serve as a basis for the design and implementation of real
programming languages with type facilities that are more powerful and
expressive than those of existing programming languages. In
particular, it provides a basis for the design of strongly typed
, reffrom= Martini:acm:lfp:1988
, reffrom= Ohori:Buneman:acm:lfp:1988
, reffrom= Jategaonkar:Mitchell:acm:lfp:1988
, reffrom= Reddy:acm:lfp:1988
, reffrom= Queinnec:Cointe:acm:lfp:1988
, reffrom= Cardelli:Longo:acm:lfp:1990
, reffrom= Breazu-Tannen:Gunter:Scedrov:acm:lfp:1990
Return to the
Search the comp.compilers archives again.