Introduction

These notes are compiled from my studies of the Programming Languages course offered by the University of Washington. The course primarily introduces programming language concepts by exploring three different languages, examining how various language characteristics influence program writing. For developers already familiar with common languages like Java/C/C++/Python/JavaScript, this course offers broader insights into language expressiveness and limitations.

The course is currently available on Coursera: https://www.coursera.org/learn/programming-languages

These notes won’t delve deeply into basic syntax, but will focus on significant features. For additional reference, you can check the course lectures and assignments: https://github.com/novakoki/Programming-Language

Categories of Programming Languages

The professor categorizes languages based on their primary characteristics:

FunctionalObject-Oriented
StaticMLJava
DynamicRacketRuby