This note covers the following
topics: The Elements of Programming, Theoretical Introduction of Programming
Languages: Syntax, Semantics, Types, Abstraction on Data, Delayed Evaluation on
Data and on Control, Type Correctness, Evaluators for Functional Programming,
Logic Programming, Imperative Programming.
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.
Objective of
this note is to teach the fundamental principles of programming, making use of
the typical aspects of the object-oriented, functional, and imperative
programming paradigms. Such basic principles are presented by referring to the
Java programming language.