Polymorphic Programming Language

Last updated

The Polymorphic Programming Language (PPL) was developed in 1969 at Harvard University by Thomas A. Standish. It is an interactive, extensible language with a base language similar to the language APL. [1]

The assignment operator <- (or ) has influenced the language S. [2]

Related Research Articles

ACL2

ACL2 is a software system consisting of a programming language, an extensible theory in a first-order logic, and an automated theorem prover. ACL2 is designed to support automated reasoning in inductive logical theories, mostly for the purpose of software and hardware verification. The input language and implementation of ACL2 are written in Common Lisp. ACL2 is free and open-source software.

Douglas McIlroy

Malcolm Douglas McIlroy is a mathematician, engineer, and programmer. As of 2019 he is an Adjunct Professor of Computer Science at Dartmouth College. McIlroy is best known for having originally proposed Unix pipelines and developed several Unix tools, such as spell, diff, sort, join, graph, speak, and tr. He was also one of the pioneering researchers of macro processors and programming language extensibility. He participated in the design of multiple influential programming languages, particularly PL/I, SNOBOL, ALTRAN, TMG and C++.

In programming languages and type theory, polymorphism is the provision of a single interface to entities of different types or the use of a single symbol to represent multiple different types.

Type inference refers to the automatic detection of the type of an expression in a formal language. Such include programming languages, mathematical type systems but also natural languages in some branches of computer science and linguistic.

IMP is an early systems programming language that was developed by Edgar T. Irons in the late 1960s through early 1970s, at the National Security Agency (NSA). Unlike most other systems languages, IMP supports syntax-extensible programming.

The history of programming languages spans from documentation of early mechanical computers to modern tools for software development. Early programming languages were highly specialized, relying on mathematical notation and similarly obscure syntax. Throughout the 20th century, research in compiler theory led to the creation of high-level programming languages, which use a more accessible syntax to communicate instructions.

APSE standing for Ada Programming Support Environment was a specification for a programming environment to support software development in the Ada programming language. This represented the second stage of the U.S. military Ada project; once the language was implemented, it was felt necessary to specify and implement a standard set of tools, hence the APSE. CAIS-A, Common APSE Interface Set A, was defined in MIL STD-1838A.

Extensible programming is a term used in computer science to describe a style of computer programming that focuses on mechanisms to extend the programming language, compiler and runtime environment. Extensible programming languages, supporting this style of programming, were an active area of work in the 1960s, but the movement was marginalized in the 1970s. Extensible programming has become a topic of renewed interest in the 21st century.

John C. Reynolds

John Charles Reynolds was an American computer scientist.

In programming languages and type theory, parametric polymorphism is a way to make a language more expressive, while still maintaining full static type-safety. Using parametric polymorphism, a function or a data type can be written generically so that it can handle values identically without depending on their type. Such functions and data types are called generic functions and generic datatypes respectively and form the basis of generic programming.

An adaptive grammar is a formal grammar that explicitly provides mechanisms within the formalism to allow its own production rules to be manipulated.

.QL is an object-oriented query language used to retrieve data from relational database management systems. It is reminiscent of the standard query language SQL and the object-oriented programming language Java. .QL is an object-oriented variant of a logical query language called Datalog. Hierarchical data can therefore be naturally queried in .QL in a recursive manner.

In computing, a compiler is a computer program that transforms source code written in a programming language or computer language, into another computer language. The most common reason for transforming source code is to create an executable program.

The expression problem is a term used in discussing strengths and weaknesses of various programming paradigms and programming languages.

In type theory, bounded quantification refers to universal or existential quantifiers which are restricted ("bounded") to range only over the subtypes of a particular type. Bounded quantification is an interaction of parametric polymorphism with subtyping. Bounded quantification has traditionally been studied in the functional setting of System F<:, but is available in modern object-oriented languages supporting parametric polymorphism (generics) such as Java, C# and Scala.

In computer science, polymorphic recursion refers to a recursive parametrically polymorphic function where the type parameter changes with each recursive invocation made, instead of staying constant. Type inference for polymorphic recursion is equivalent to semi-unification and therefore undecidable and requires the use of a semi-algorithm or programmer supplied type annotations.

PPL may refer to:

Probabilistic programming (PP) is a programming paradigm in which probabilistic models are specified and inference for these models is performed automatically. It represents an attempt to unify probabilistic modeling and traditional general purpose programming in order to make the former easier and more widely applicable. It can be used to create systems that help make decisions in the face of uncertainty.

Laxmikant (Sanjay) V. Kale is the director of the Parallel Programming Laboratory (PPL) and a professor of computer science at the University of Illinois at Urbana-Champaign. He also holds department affiliations with the Beckman Institute and the Department of Mechanical and Industrial Engineering at Illinois.

Robert Wilensky was an American computer scientist and emeritus professor at the UC Berkeley School of Information, with his main focus of research in artificial intelligence.

References

  1. Standish, Thomas A. (August 1969). Christensen; Shaw (eds.). "Some features of PPL – a Polymorphic Programming Language". ACM SIGPLAN Notices (Proceedings of Extensible Language Symposium ed.). ACM Digital Library: Association for Computing Machinery. 4 (8): 20–26. doi:10.1145/1115858.1115864 . Retrieved 2018-06-23.
  2. Chambers, John M. (November 1994). "Evolution of the S Language". Archived from the original (PostScript) on 2007-04-09. Retrieved 2009-05-06.