OCaml Programming Language with Reference
A classic OCaml programming language with reference for iPad and iPhone. Programming language is a perfect tool for complex math calculation, study, entertainment and many useful tasks.
The main features:
- compile and run your program;
- online language reference;
- use example programs;
- save/open source code;
- send source code by email;
- work with text input/output;
We will add soon:
- syntax highlighting;
- enhanced source code editor;
- additional symbols keyboard;
Internet connection is required. Look to the screenshots for more information. Thanks for using the application!
OCaml (play /oʊˈkæməl/ oh-kam-əl), originally known as Objective Caml, is the main implementation of the Caml programming language, created by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy and others in 1996. OCaml extends the core Caml language with object-oriented constructs.
OCaml's toolset includes an interactive toplevel interpreter, a bytecode compiler, and an optimizing native code compiler. It has a large standard library that makes it useful for many of the same applications as Python or Perl, as well as robust modular and object-oriented programming constructs that make it applicable for large-scale software engineering. OCaml is the successor to Caml Light. The acronym CAML originally stood for Categorical Abstract Machine Language, although OCaml abandons this abstract machine.
OCaml is a free open source project managed and principally maintained by INRIA. In recent years, many new languages have drawn elements from OCaml, most notably F# and Scala.
ML-derived languages are best known for their static type systems and type-inferring compilers. OCaml unifies functional, imperative, and object-oriented programming under an ML-like type system. This means the program author is not required to be overly familiar with pure functional language paradigm in order to use OCaml.
OCaml's static type system can help eliminate problems at runtime. However, it also forces the programmer to conform to the constraints of the type system, which can require careful thought and close attention. A type-inferring compiler greatly reduces the need for manual type annotations (for example, the data type of variables and the signature of functions usually do not need to be explicitly declared, as they do in Java). Nonetheless, effective use of OCaml's type system can require some sophistication on the part of the programmer.
OCaml is perhaps most distinguished from other languages with origins in academia by its emphasis on performance. Firstly, its static type system renders runtime type mismatches impossible, and thus obviates runtime type and safety checks that burden the performance of dynamically typed languages, while still guaranteeing runtime safety (except when array bounds checking is turned off, or when certain type-unsafe features like serialization are used; these are rare enough that avoiding them is quite possible in practice).
Aside from type-checking overhead, functional programming languages are, in general, challenging to compile to efficient machine language code, due to issues such as the funarg problem. In addition to standard loop, register, and instruction optimizations, OCaml's optimizing compiler employs static program analysis techniques to optimize value boxing and closure allocation, helping to maximize the performance of the resulting code even if it makes extensive use of functional programming constructs.
Share with Others
- Last changed:
- Apr 28, 2012
- Dmitry Kovba
- Average Rating:
- 1.00 (1)
- 0.8 MB
- Other Apps By This Developer
• Assembler Programming Language with Reference
• Bash Programming Language with Reference
• Basic Programming Language with Reference
• C Programming Language with Reference
• Cobol Programming Language with Reference
• D Programming Language with Reference
• Groovy Programming Language with Reference
• Java 7 Programming Language with Reference
• Maybe Baby for Women
• Python Programming Language with Reference
• R Programming Language with Reference
• Ruby Programming Language with Reference
• SQL Programming Language with Reference
• Scala Programming Language with Reference
• Scheme Programming Language with Reference