Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

Haskell Taketh Away - Limiting Side Effects for Parallel Programming

CppNow via YouTube

Overview

This course focuses on the importance of limiting side effects for parallel programming in languages like Haskell and C++. The learning outcomes include understanding how to design parallel programming abstractions by restricting user capabilities, exploring the role of purely functional programming in Haskell, and enforcing restrictions on side effects at compile time using the type system. The course teaches skills such as experimenting with combinations of effects for transactional memory and deterministic parallelism, as well as incorporating similar ideas in C++ through embedded domain specific languages (EDSLs). The teaching method involves a presentation that discusses the evolution of Haskell and C++, the notion of purity in programming languages, and the preservation of determinism in applications. The intended audience for this course includes programmers interested in functional programming, parallel programming, and the intersection of Haskell and C++ in the context of limiting side effects for improved parallel performance.

Syllabus

Intro
Outline
Syntax quibbles
Composing first-class actions
A research project that escaped the lab
Lessons transferred / cross fertilization
Today's main theme
Promises, promises, programmer promises
Custom computation types
Custom computation: Haxl Example
Haskell built-in computation types
The separate Kingdoms of the heap
Obsessive safety, trusted code boundaries
First, lock down main
Analyze Alias-freedom
PLDI' 14Preserve Alias-freedom
Noninterference
Haskell data pros & cons

Taught by

CppNow

Reviews

Start your review of Haskell Taketh Away - Limiting Side Effects for Parallel Programming

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.