OCaml (Objective Caml) is a programming language supporting the following paradigms:
imperative, functional, object oriented, and generic programming.
OCaml is used to develop considerable projects by several companies:
Dassault, France Telecom, Microsoft, IBM, and CEA.
It is also widely used for teaching of programming (e.g., Warsaw University) and
for in scientific projects using symbolic computation: provers (Coq), verification
of program corretnesss (Why).
More info on OCaml may be found at
Programme
- Main pradigms of programming - survey
- Base of OCaml lanaguage: simple data types, arrays, lists, records, variants, functions
- Imperative programming in O'Caml. Exceptions
- Functional programming, elements of lambda calculus with types
- Functional programming in O'Caml, type system
- Comparison of imperative and functional programming in sorting
- Object-oriented programming: classes, objects, methods, inheritance
- Other featuers of object-oriented programming in O'Caml: private methods, objects beyond classes,
self-referencing, initializers
- Generic programming - rules
- Parametrized classes
- Polimorphic methods
- Modules, signatures, functors and abstract types
- Multi-thread programming
- Overview of O'Caml's library
Exercises
- Lists (functional programming)
- Arrays (imperative programming)
Solutions
- Lists
- Arrays
- dijkstra.ml (example of a graph)
- union-find.ml
Grzegorz Bancerek