is a recent language which takes its place in the history of programming languages as a distant descendant of Lisp
, having been able to draw on the lessons developed at INRIA1 and is supported by long experience with the conception of the languages in the ML
family. Objective Caml
is a general-purpose language for the expression of symbolic and numeric algorithms. It is object-oriented and has a parameterized module system. It supports the development of concurrent and distributed applications. It has excellent execution safety thanks to its static typing, its exception mechanism and its garbage collector. It is high-performance while still being portable. Finally, a rich development environment is available.
Objective Caml has never been the subject of a presentation to the "general public". This is the task to which the authors have set themselves, giving this exposition three objectives:
1. To describe in depth the Objective Caml language, its libraries and its development environment.
2. To show and explain what are the concepts hidden behind the programming styles which can be used with Objective Caml.
3. To illustrate through numerous examples how Objective Caml can serve as the development language for various classes of applications.
The authors' goal is to provide insight into how to choose a programming style and structure a program, consistent with a given problem, so that it is maintainable and its components are reusable.
Outline of the Book:
The book is broken into four main sections that build upon each other. These four sections are as follows:
: Core of the language. The first part is a complete presentation of the basic elements of the Objective Caml language.
: Development tools. The second part of the book describes the various tools for application development.
: Organization of applications. The third part describes the two ways of organizing a program: with modules, and with objects.
: Concurrence and distribution. The fourth part introduces concurrent and distributed programs while detailing communication between processes, lightweight or not, and on the Internet.
Each chapter consists of a general presentation of the subject being introduced, a chapter outline, the various sections thereof, statements of exercises to carry out, a summary, and a final section entitled "To learn more" which indicates bibliographic references for the subject which has been introduced.
:) "For the most part, Developing Applications With Objective Caml does a very good job at presenting the OCaml language in more of a "practical" light than other books on languages in the ML family (and functional languages in general)."