14 February 2019
Browser Advisory: The HTML version of this document may require use of a browser that supports the display of MathML. A good choice as of January 2019 is a recent version of Firefox from Mozilla.
Slides:
Slides: [(HTML) Object-Based Paradigms]
Slides: [(HTML) First Haskell Functions]
Slides:
Slides:
Slides: [(HTML) Using Data Abstraction]
Slides: [(HTML) Evaluation of Functional Programs]
Slides: [(HTML) Recursion Styles]
Slides: (HTML) List Programming
Slides: (HTML) Haskell Function Concepts
Wally World POP Project: [HTML] [PDF]
[WWMPOP_skeleton.hs]
Slides: (HTML) More List Processing
Slides: (HTML) Algebraic Data Types
Carrie’s Candy Bowl Project: [HTML] [PDF]
[CandyBowl_skeleton.hs]
[[Candy Bowl ADT Semantics (Spring 2017) }(<../notes/CandyBowl/Lua/candybowl_semantics.html>)]
Exam DSL Project: [HTML] [PDF]
[ExamDSL_base.hs]
[SimpleHTML.hs]
SandwichDSL Project: [HTML] [PDF]
[SandwichDSL_base.hs]
Movable Objects case study:
[MovableObjects module]
[NamedObjects module ]
[NamedMovableObjects module]
[NamedMovableTest module skeleton]
Slides: NONE YET
Likely drawn from: Chapter 13, Models of Reduction Notes on Functional Programming with Haskell
Slides: NONE YET
Slides: (HTML) Calculator: Parsing
UNDER DEVELOPMENT
Chapter: Imperative Core Language Case Study (does not exist yet as of 14 Juy 2018)
Interpreter modules (prefix syntax) code mostly works but needs a bit of update to match recent changes to Expression Language
Most of the content of this old chapter went into new chapters 13 and 14, but some was moved to earlier chapters.
Sandwich DSL Case Study
I began this effort in Summer 2016 by adapting previous materials from my courses on Functional Programming (primarily), Multiparadigm Programming, Object-Oriented Programming, Software Architecture, Software Families, and Software Language Engineering.
I added new materials in Spring and Summer 2017 to draft the 2017 version of the textbook titled Introduction to Functional Programming Using Haskell.
In Spring and Summer 2018, I began work on an updated 2018 version of the textbook, now titled Exploring Languages with Interpreters and Functional Programming. I broke several of the longer chapters into 2-4 new chapters or appendices. I incorporated new material from my Spring 2018 Software Language Engineering class (e.g. Type Concepts). I also wrote new chapters including the two new chapters on Software Testing.
I maintain this textbook as text files in Pandoc’s dialect of Markdown using embedded LaTeX markup for the mathematical formulas and then translate the documents to HTML, PDF, and other formats as needed.