Generalized Algebraic Data Types and Object-Oriented Programming

Subscribers:
344,000
Published on ● Video Link: https://www.youtube.com/watch?v=j6l1s3lgNDA



Duration: 1:01:37
1,092 views
2


Generalized algebraic data types (GADTs) have received much attention recently in the functional programming community. They extend the datatypes of Haskell with constructors that produce specialized instantiations of their datatype. GADTs have a number of applications, including strongly-typed evaluators, custom runtime-type descriptors, polytypic programming, and strongly-typed LR parsing. I`ll show that C# and Java can already express GADT definitions, and a large class of GADT-manipulating programs, through the use of generics, subclassing, and virtual dispatch. However, some programs can be written only by resorting to run-time casts in C#. Worse still, these casts are unsafe in Java. Andrew Kennedy and I have proposed a generalization of the type constraint mechanism of C# (and Java) to avoid the need for such casts. Interestingly, our work both exposes and repairs a flaw in the design of C# and Java Generics. I`ll give an introduction to GADTs in Haskell and C#, reveal the flaw in Generics, outline our proposed extension to C#, and present expressivity results relating functional to object-oriented GADTs. I`ll sketch how a generalization of our solution complements our separate proposal for adding variant subtyping to C# Generics. The talk covers material from three papers (joint with Andrew) accepted at OOPSLA05, ECOOP06 and submitted to POPL07.




Other Videos By Microsoft Research


2016-09-07Exploiting Multiple Cores Today: Scalability and Reliability For Off-the-shelf Software
2016-09-07Proof Procedures for Separated Heap Abstractions
2016-09-07Client-Side Echo Cancellation for Multi-Party Audio Conferencing
2016-09-07Variance analyses from invariance analyses
2016-09-07Modelling the performance of wireless networks employing the IEEE 802.11 MAC
2016-09-07Geometric Optics, Duality and Congestion in Sensornets [1/2]
2016-09-07All Rise: Somebodies, Nobodies and the Politics of Dignity
2016-09-07Hierarchical Bayesian Models for Rating Individual Players from Group Competitions
2016-09-07Interoperability and natural language processing for business rules engines
2016-09-07Random Matrices and Spectral Clustering Abstract
2016-09-07Generalized Algebraic Data Types and Object-Oriented Programming
2016-09-07Memex Summit (Digital Memories Workshop) - Content-Based Similarity Search with MyLifeBits
2016-09-07Statistical Modelling of Biological Networks
2016-09-07Market Design and Analysis for Network Systems
2016-09-07Behind the Code with Anders Hejlsberg
2016-09-07ForNet: A Distributed Network Forensics System
2016-09-07Memex Summit (Digital Memories Workshop) - MyHealthBits: Advanced Personal Health Record
2016-09-07Memex Summit (Digital Memories Workshop) - Memex Metadata (M2) for Personal Educational Portfolio
2016-09-07Resource Allocation Algorithms for Energy Efficient Wireless Networks
2016-09-07Memex Summit (Digital Memories Workshop) - SenseCam and Memory Rehabilitation
2016-09-07Memex Summit (Digital Memories Workshop) - What Did We See? & WikiGIS



Tags:
microsoft research