About: Parametric polymorphism is a research topic. Over the lifetime, 534 publications have been published within this topic receiving 24537 citations. The topic is also known as: parametric typing & Parametric.
TL;DR: This book provides a formal definition of Standard ML for the benefit of all concerned with the language, including users and implementers, and the authors have defined their semantic objects in mathematical notation that is completely independent of StandardML.
Abstract: From the Publisher:
Standard ML is general-purpose programming language designed for large projects. This book provides a formal definition of Standard ML for the benefit of all concerned with the language, including users and implementers. Because computer programs are increasingly required to withstand rigorous analysis, it is all the more important that the language in which they are written be defined with full rigor. The authors have defined their semantic objects in mathematical notation that is completely independent of Standard ML.
TL;DR: This work presents a formal type discipline for polymorphic procedures in the context of a simple programming language, and a compile time type-checking algorithm w which enforces the discipline.
TL;DR: A λ-calculus-based model for type systems that allows us to explore the interaction among the concepts of type, data abstraction, and polymorphism in a simple setting, unencumbered by complexities of production programming languages is developed.
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 l-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 l-calculus augmented to include binding of types by quantification as well as binding of values by abstraction.The typed l-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 l-calculus are discussed.The augmented typed l-calculus is used as a programming language for a variety of illustrative examples. We christen this language Fun because fun instead of l 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 object-oriented languages.
TL;DR: The findings of a Web-based questionnaire aimed at discovering both patterns of use of videoconferencing systems within HP and the reasons people give for either not using, or for using such systems are discussed.
Abstract: In this report we discuss the findings of a Web-based questionnaire aimed at discovering both patterns of use of videoconferencing systems within HP and the reasons people give for either not using, or for using such systems. The primary motivation was to understand these issues for the purpose of designing new kinds of technology to support remote work rather than as an investigation into HP’s internal processes. The questionnaire, filled out via the Web by 4532 people across HP, showed that most participants (68%) had not taken part in a videoconference within the last 3 years, and only 3% of the sample were frequent users. Of those who had used videoconference systems, the main benefits were perceived to be the ability to: see people they had never met before, see facial expressions and gestures, and follow conversations with multiple participants more easily. The main problems that users of videoconference technology perceived were: the high overhead of setting up and planning videoconferencing meetings, a lack of a widespread base of users, the perception that videoconference technology did not add value over existing communication tools, and quality and reliability issues. Non-users indicated that the main barriers were lack of access to videoconference facilities and tools and a perception that they did not need to use this tool because other tools were satisfactory. The findings from this study in a real work setting are related to findings in the research literature, and implications for system design and research are identified.
TL;DR: From the type of a polymorphic function the authors can derive a theorem that it satisfies, courtesy of Reynolds’ abstraction theorem for the polymorphic lambda calculus, which provides a free source of useful theorems.
Abstract: From the type of a polymorphic function we can derive a theorem that it satisfies. Every function of the same type satisfies the same theorem. This provides a free source of useful theorems, courtesy of Reynolds’ abstraction theorem for the polymorphic lambda calculus.