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 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.
This
course note is an introduction to high performance computing (HPC) on modern
desktop computer architectures. The targeted audience is undergraduate students
who are not engaged in a computer science program but who want to be exposed to
the principles HPC (relevant to desktop computers) and take advantage of them in
their field of study.