YoVDO

Staging with Class - A Specification for Typed Template Haskell

Offered By: GOTO Conferences via YouTube

Tags

GOTO Conferences Courses Haskell Courses Code Generation Courses

Course Description

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
Explore multi-stage programming and typed code quotation in Haskell through this conference talk from YOW! 2022. Delve into the challenges of integrating type classes with quotation in Haskell and discover a proposed solution: staged type class constraints. Learn about the formalization of this approach in a source calculus that elaborates into an explicit core calculus. Examine type soundness in both calculi and understand how well-typed, well-staged source programs are guaranteed to elaborate into well-typed, well-staged core programs. Investigate beta and eta rules for code quotations and gain insights into incorporating type classes into multi-stage programs confidently. While focused on Haskell, explore how this foundation can be applied to other languages supporting both overloading and quotation. Follow the presentation's progression from introductory concepts to advanced topics, including level-indexed constraint resolution, evaluation of staged programs, and type-directed elaboration.

Syllabus

Intro
Quotations and splices
Multi-stage programming: example
Code generation
Multi-stage programming and type classes
Multi-stage programming: well-typedness
Well-stagedness: the level of an expression
Well-stagedness: the level restriction
Is the problem with qpower well-stageness?
Well-staged type classes
Key idea: staged type class constraints
Level-indexed constraint resolution
How to evaluate staged programs?
Level-indexed Evaluation
Key idea: splice environments
Type-directed elaboration
Integration into GHC


Taught by

GOTO Conferences

Related Courses

Compilers
Stanford University via Coursera
Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course)
Hebrew University of Jerusalem via Coursera
Разработка веб-сервисов на Go - основы языка
Moscow Institute of Physics and Technology via Coursera
Complete Guide to Protocol Buffers 3 [Java, Golang, Python]
Udemy
Angular tooling: Generating code with schematics
Coursera Project Network via Coursera