This note explains the
following topics: Transition Systems, Defining a Language, A Functional
Language, Control and Data Flow, Imperative Functional Programming, Cost
Semantics and Parallelism, Data Structures and Abstraction, Lazy Evaluation,
Dynamic Typing, Subtyping and Inheritance, Storage Management.
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 explains the
following topics: Transition Systems, Defining a Language, A Functional
Language, Control and Data Flow, Imperative Functional Programming, Cost
Semantics and Parallelism, Data Structures and Abstraction, Lazy Evaluation,
Dynamic Typing, Subtyping and Inheritance, Storage Management.
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.