Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Independent

The OCaml system

via Independent

Overview

This course covers an introduction to OCaml, the OCaml language, tools, and library. By the end of the course, learners will be able to understand the core language, module system, objects, labeled arguments, polymorphism, parallel programming, memory model, language extensions, and various tools like batch compilation, debugging, profiling, and interfacing C with OCaml. The teaching method includes theoretical explanations, practical examples, and advanced demonstrations. This course is intended for individuals interested in learning OCaml programming language and its associated tools and libraries.

Syllabus

I. An introduction to OCaml

 

  • 1. The core language
  • 2. The module system
  • 3. Objects in OCaml
  • 4. Labeled arguments
  • 5. Polymorphic variants
  • 6. Polymorphism and its limitations
  • 7. Generalized algebraic datatypes
  • 8. Advanced examples with classes and modules
  • 9. Parallel programming
  • 10. Memory model: The hard bits
II. The OCaml language

 

  • 11. The OCaml language
  • 12. Language extensions
III. The OCaml tools

 

  • 13. Batch compilation (ocamlc)
  • 14. The toplevel system or REPL (ocaml)
  • 15. The runtime system (ocamlrun)
  • 16. Native-code compilation (ocamlopt)
  • 17. Lexer and parser generators (ocamllex, ocamlyacc)
  • 18. Dependency generator (ocamldep)
  • 19. The documentation generator (ocamldoc)
  • 20. The debugger (ocamldebug)
  • 21. Profiling (ocamlprof)
  • 22. Interfacing C with OCaml
  • 23. Optimisation with Flambda
  • 24. Fuzzing with afl-fuzz
  • 25. Runtime tracing with runtime events
  • 26. The “Tail Modulo Constructor” program transformation
IV. The OCaml library

 

  • 27. The core library
  • 28. The standard library
  • 29. The compiler front-end
  • 30. The unix library: Unix system calls
  • 31. The str library: regular expressions and string processing
  • 32. The runtime_events library
  • 33. The threads library
  • 34. The dynlink library: dynamic loading and linking of object files
  • 35. Recently removed or moved libraries (Graphics, Bigarray, Num, LablTk)
V. Indexes

 

 

  • Index of keywords

Taught by

Xavier Leroy, Damien Doligez, Alain Frisch, Jacques Garrigue, Didier Rémy and Jérôme Vouillon

Reviews

Start your review of The OCaml system

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.