Language Study: Erlang
Fall 2023
Documents

- Syllabus and Schedule - Revised August 24, 2023
- History and Advice
- About Laptops and Phones in Class
- Course Policies
- General Academic Calendar
- Academic Honesty
- School of Computer Science and Mathematics Department of Computing Technology Goals
- Writing Center
- Counseling Services
- Title IX at Marist
- Title IX Student Bill of Rights and IX Reporting Options
- Academic Learning Center for tutoring and more
Books
- Our Textbook
- Programming Erlang by the great Joe Armstrong. Here's the source code [zip] from the book.
- Other Books
- Erlang in Anger - a free book by Fred Hebert
- O'Reilly's Erlang Book - at Google Books
- Concurrent Programming in ERLANG - A free book by Joe Armstrong, et. al
- The BEAM Book - The Erlang Runtime System by Erik Stenman
Labs and Projects
- Lab Zero - Limericks in LaTeX
- Lab One - Erlang's history and interactive environment. This document is not the answer.
- Lab Two - Recursive functions
- Lab Three - Interactive Fiction. This program is a simple (and silly) start. Yours must be more robust and more elaborate.
- Lab Four - Client/Server Tic-Tac-Toe
- Final Project - Distributed Adventure Game on 167.99.53.103
Code from Class
- Hello World
- Store and Store Utils
- A few versions of Factorial
- Our own map, subst, and reverse
- Filters
- Exceptions (not exactly the Holy Grail)
- Guessing game version one and version two
- Grabit
- Adventure Game versions one, two, two-a, three, four, five, six, seven, eight, and nine.
- TTT Version zero
- Places and other places
-
TTT Version one: tttClient and tttServer
TTT Version two: tttClient and tttServer -
Distributed Adventure Game code:
Server,
Client,
Location 1, and
Location 2.
Distributed Adventure Game slides
Erlang Resources

- References
- Erlang.org - the primary Erlang portal
- Erlang documentation that's actually usable - Better than the official site.
- Erlang Shell Commands cheat sheet
- Another Erlang Cheat Sheet
- Erlang Standard Libraries Reference
- Erlang BIFs (Built-In Functions)
- A Concise Guide to Erlang from U. Penn
- All About BEAM, the Erlang Runtime System
- Erlang Tutorial
- Erlang Programming Advice and Guidelines
- A Big List of Erlang Resources
- Erlang Bookmarks
- Spawned Shelter - a collection of Erlang articles, videos and books
- Adopting Erlang from an impressive set of authors
- Secure Coding and Deployment Hardening for Erlang
- Sites
- Try Erlang in a browser
- Erlang Jobs
- Erlang-questions - the LISTSERV shadow at Google Groups
- The Erlang tag at Stack Overflow
- OS Threads used in BEAM - from Stack Overflow via the erlang-questions LISTSERV
- Courses
- A free Erlang course - from Erlang.org
- Learn You Some Erlang - an informative and amusing site
- By Joe Armstrong, Erlang's (principal) creator
- Joe's blog 2006-2012
- Joe's blog 2013 - 2019
- paper: The Development of Erlang
- paper: A History of Erlang
- book: Concurrent Programming in ERLANG
- Interview on Software Engineering Radio
- Joe Armstrong Interviews Alan Kay
- Joe's Favorite Erlang Program
- RIP Joe Armstrong
- {'EXIT', joe, goodbye}
- Goodbye Joe
Other Resources
- LaTeX
- Comprehensive TEX Archive Network
- Overleaf (formerly ShareLaTeX)
- LaTeX Tutorial from Overleaf
- TeX Stack Exchange
- TikZ package tutorial (for drawing DFAs and NFAs)
- Git
- GitHub Desktop
- A Gentle Introduction to Git and GitHub from Alan
- Git from the Bottom up by John Wiegley
- Git Basics
- Try Github
- GitHub Guides
- Advanced: Git From the Inside Out
- Visualizing Git Concepts
- How to Write a Git Commit Message - pretty good advice
- The Issues Feature on GitHub
- Dangers of GitHub and Amazon
More
- A brief introduction to BEAM from the the Erlang/OTP team at Ericsson
- A Hitchhiker's Tour of the BEAM by Robert Virding
- Lumen a new compiler and runtime for BEAM languages
- A Peek Inside the Erlang Compiler from 2012
- My Road to Erlang - from Programming in the 21st Century, by a video game programmer using Erlang
- Discord is Written in Elixir/Erlang
- A Parallel Programming Primer - by Alan G. Labouseur
- Why Erlang? - from smyck.net
- On Erlang's Syntax
- Purely Functional Game Programming
- video: Scala, Erlang, F# Creators Discuss Functional Languages at Erlang Factory 2010
- paper: Why Functional Programming Matters
- Functional Programming in the Real World
- Erlang Factory - a collection of Erlang conference presentations
- paper: Erlang - Programming the Parallel World
- Erlang Multicore Support
- Amazon uses Erlang in SimpleDB - part of Amazon Web Services in the cloud
- How to crash Erlang
- The Zen of Erlang
- How I Start -- Erlang
- A peak into the Erlang compiler and BEAM bytecode
- The Joy of Erlang by Evan Miller
- Why I Program in Erlang by Evan Miller
- AtomVM - Erlang for IoT
- If you discover an Erlang reference, site, course, article, or blog you like and is not listed here please e-mail me and I'll add it. Thanks!
Funny
- About NoSQL-type "products"
- Erlang: The Movie - It's kinda funny, but also serious.
I reserve the copyright for all parts of my courses.
Commercial reproduction of any course material, including lecture notes
taken by students, without my EXPRESS WRITTEN consent, is prohibited.
Seriously.