mirror of
https://github.com/dhil/phd-dissertation
synced 2026-03-13 02:58:26 +00:00
Update slides
This commit is contained in:
@@ -59,7 +59,7 @@ fun has(k, kvs) {
|
|||||||
# An Introduction to Effect Handler Oriented Programming
|
# An Introduction to Effect Handler Oriented Programming
|
||||||
# Daniel Hillerström
|
# Daniel Hillerström
|
||||||
# Laboratory for Foundations of Computer Science
|
# Laboratory for Foundations of Computer Science
|
||||||
# The University of Edinburgh
|
# The University of Edinburgh, Scotland, UK
|
||||||
#
|
#
|
||||||
# Microsoft Research, Redmond, WA, USA
|
# Microsoft Research, Redmond, WA, USA
|
||||||
# RISE Seminar
|
# RISE Seminar
|
||||||
@@ -70,6 +70,7 @@ fun has(k, kvs) {
|
|||||||
#?
|
#?
|
||||||
|
|
||||||
#!
|
#!
|
||||||
|
#
|
||||||
# What is an effect handler?
|
# What is an effect handler?
|
||||||
#
|
#
|
||||||
# Operational interpretation
|
# Operational interpretation
|
||||||
@@ -85,9 +86,11 @@ fun has(k, kvs) {
|
|||||||
#
|
#
|
||||||
# Mathematical interpretation
|
# Mathematical interpretation
|
||||||
# Homomorphisms between free algebraic models
|
# Homomorphisms between free algebraic models
|
||||||
|
#
|
||||||
#?
|
#?
|
||||||
|
|
||||||
#!
|
#!
|
||||||
|
#
|
||||||
# What is an effect handler?
|
# What is an effect handler?
|
||||||
#
|
#
|
||||||
# Operational interpretation
|
# Operational interpretation
|
||||||
@@ -103,6 +106,7 @@ fun has(k, kvs) {
|
|||||||
#
|
#
|
||||||
# Mathematical interpretation
|
# Mathematical interpretation
|
||||||
# Homomorphisms between free algebraic models
|
# Homomorphisms between free algebraic models
|
||||||
|
#
|
||||||
#?
|
#?
|
||||||
|
|
||||||
#!
|
#!
|
||||||
@@ -125,6 +129,20 @@ fun has(k, kvs) {
|
|||||||
#
|
#
|
||||||
#?
|
#?
|
||||||
|
|
||||||
|
#!
|
||||||
|
#
|
||||||
|
# Effect handler oriented programming (EHOP)
|
||||||
|
#
|
||||||
|
# Key characteristics
|
||||||
|
# - Extensive use of effect handlers
|
||||||
|
# - High-degree of modularity
|
||||||
|
# - Extremely compositional
|
||||||
|
#
|
||||||
|
# Some languages that support EHOP:
|
||||||
|
# C/C++, Eff, Haskell, Koka, Links, Pyro, OCaml, Unison
|
||||||
|
#
|
||||||
|
#?
|
||||||
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# What is an operating system? (very abstractly)
|
# What is an operating system? (very abstractly)
|
||||||
@@ -175,7 +193,7 @@ fun has(k, kvs) {
|
|||||||
#
|
#
|
||||||
# Objectives of this talk
|
# Objectives of this talk
|
||||||
#
|
#
|
||||||
# - Demonstrate the versatility of effect handler-oriented programming
|
# - Demonstrate the versatility of effect handler oriented programming
|
||||||
# - Explain Ritchie & Thompson's (1974) UNIX as the combination of
|
# - Explain Ritchie & Thompson's (1974) UNIX as the combination of
|
||||||
# textbook effects
|
# textbook effects
|
||||||
# + Exceptions: Process termination
|
# + Exceptions: Process termination
|
||||||
@@ -723,7 +741,7 @@ sig interrupt : () {Interrupt:()}-> ()
|
|||||||
fun interrupt() { do Interrupt }
|
fun interrupt() { do Interrupt }
|
||||||
|
|
||||||
# Process reification
|
# Process reification
|
||||||
typename Pstate(a::Type,e::Eff)
|
typename Pstate(a::Type, e::Eff)
|
||||||
= [|Done:a
|
= [|Done:a
|
||||||
|Paused:() -e-> Pstate(a, e)|];
|
|Paused:() -e-> Pstate(a, e)|];
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user