Caml is a general-purpose programming language, designed with program safety and reliability in mind.
Caml is very expressive, yet easy to learn and use, and it also supports imperative, functional, and object-oriented programming styles.
OCaml (short for Objective Caml) is the most popular variant of the Caml language. From a language standpoint, it extends the core Caml language with a fully-fledged object-oriented layer, as well as a powerful module system, all connected by a sound, polymorphic type system featuring type inference.
The OCaml system is an industrial-strength implementation of this language, featuring a high-performance native-code compiler (ocamlopt) for 9 processor architectures (IA32, PowerPC, AMD64, Alpha, Sparc, Mips, IA64, HPPA, StrongArm), as well as a bytecode compiler (ocamlc) and an interactive read-eval-print loop (ocaml) for quick development and portability.
Here are some key features of "OCaml":
· A powerful type system
· User-definable algebraic data types and pattern matching.
· Automatic memory management
· Separate compilation of stand-alone applications
· A sophisticated module system
· An expressive object-oriented layer
· Efficient native code compilers
· Apple Xcode 4.3.3 or later
What's New in This Release: [ read full changelog ]
· PR#4019: better documentation of Str.matched_string
· PR#5111: ocamldoc, heading tags inside spans tags is illegal in html
· PR#5278: better error message when typing "make"
· PR#5468: ocamlbuild should preserve order of parametric tags
· PR#5563: harden Unix.select against file descriptors above FD_SETSIZE
· PR#5690: "ocamldoc ... -text README" raises exception
· PR#5700: crash with native-code stack backtraces under MacOS 10.8 x86-64
· PR#5707: AMD64 code generator: do not use r10 and r11 for parameter passing, as these registers can be destroyed by the dynamic loader
· PR#5712: some documentation problems
· PR#5715: configuring with -no-shared-libs breaks under cygwin
· PR#5718: false positive on 'unused constructor' warning
· PR#5719: ocamlyacc generates code that is not warning 33-compliant
· PR#5725: ocamldoc output of preformatted code
· PR#5727: emacs caml-mode indents shebang line in toplevel scripts
· PR#5729: tools/untypeast.ml creates unary Pexp_tuple
· PR#5731: instruction scheduling forgo...