Overview
Explore the principles and practice of Denotational Design in functional programming through this comprehensive YOW! 2015 conference talk by Conal Elliott. Delve into a methodology for designing high-level libraries that focuses on creating precise, algebraic-like specifications using mathematical models. Learn how to define operations based on meanings rather than representations, and understand the benefits of this approach in capturing a library's intent without operational details. Discover real-world applications of Denotational Design, including Functional Reactive Programming (FRP) and the Pan system for image manipulation. Gain insights into using Haskell's purity and type classes to guide the design process, and understand how these techniques can be applied to other functional languages. Follow along as Elliott demonstrates examples, discusses the state of the art in software design, and explores the importance of clear, unambiguous specifications in library development.
Syllabus
Introduction
What do we build
The purpose of abstraction
Three main goals
State of the art
Its not even wrong
Everything is vague
Functional programming
Denotational design
Example Image Synthesis Manipulation
Functionality
Functional APIs
How to Implement
What is an Image
Collaboration Question
Setting
Setting Properties
Taught by
GOTO Conferences