This book is a much more appropriate book for a modern
programming languages course than a traditional one based on paradigms.
Topics covered includes: Parsing, Interpretation, Desugaring, Adding
Functions to the Language, From Substitution to Environments, Functions
Anywhere, Mutation: Structures and Variables, Recursion and Cycles:
Procedures and Data, Objects, Memory Management, Representation Decisions,
Desugaring as a Language Feature, Control Operations, Checking Program
Invariants Statically: Types, Checking Program Invariants Dynamically:
Contracts and Alternate Application Semantics.
This
note covers the following topics: Parsing, Interpretation, Adding Functions to
the Language, From Substitution to Environments, Functions, Mutation: Structures
and Variables, Recursion and Cycles: Procedures and Data, Objects, Memory
Management, Representation Decisions, Desugaring as a Language Feature, Control
Operations, Checking Program Invariants Statically: Types, Checking Program
Invariants Dynamically: Contracts, Alternate Application Semantics.
This note covers programming languages and programming
paradigms, OCaml operational Semantics: an overview, Names, Bindings and
environment, A static analysis primer, Stack machines, Functions everywhere,
Static scope and dynamic scope.
This note presents
major features of programming languages, with primary emphasis on the role of
particular language features in writing good software; programming language
design alternatives; various programming paradigms embodied in languages, such
as procedural, data-flow, functional and object-oriented languages.