What are types for?
Listen now
Description
Types in programming languages are commonly thought of as a way of preventing certain bad things from happening, such as multiplying a number by a string. But this is only half of the benefit of types: it is what types are against. Types in programming languages are also what enable some good things to happen, such as selecting the right implementation of a heterogeneous operation like comparison or printing based on type information; this is what are types for. This ability is surprisingly powerful, and gives rise to a variety of highly expressive generic programming techniques. Jeremy illustrates with some examples based on the rank-polymorphic array operations introduced in Iverson’s APL: not only does the type information prevent array shape errors, it is what directs the lifting of operations across array dimensions.
More Episodes
In this presentation, Uday brings together two strands of Christopher Strachey’s thought: parametric polymorphism and abstract models of storage. The term parametric polymorphism was introduced in by Strachey who distinguished it from “ad hoc” polymorphism. In the words of John Reynolds, “a...
Published 06/26/17
Hongseok begins by talking about a program of Strachey’s that wrote “love letters” using the Manchester University computer. He then uses this as a lead in for discussing probabilistic methods of generating algorithms and programs.
Published 06/26/17
Philip reviews Christopher Strachey’s influence on modern-day functional programming languages.
Published 06/26/17