翻訳と辞書
Words near each other
・ Ocala Street and Suburban Railroad
・ Ocala Symphony Orchestra
・ Ocala Union Station
・ Ocala Yearlings
・ Ocala, Florida
・ Ocala, Silver Springs and Park Street Railroad
・ Ocalaria
・ Ocale
・ Ocalea
・ Ocalea (genus)
・ Ocalea (mythology)
・ Ocalea (town)
・ Ocalenie
・ Ocalkens Lake
・ Ocalli District
OCaml
・ Ocamo River
・ Ocamonte
・ Ocampo
・ Ocampo (surname)
・ Ocampo Municipality
・ Ocampo Municipality, Chihuahua
・ Ocampo Municipality, Coahuila
・ Ocampo Municipality, Durango
・ Ocampo Municipality, Tamaulipas
・ Ocampo Pagoda Mansion
・ Ocampo, Camarines Sur
・ Ocampo, Chihuahua
・ Ocampo, Coahuila
・ Ocampo, Guanajuato


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

OCaml : ウィキペディア英語版
OCaml

OCaml ( ), 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, Ascánder Suárez and others in 1996. OCaml extends the core Caml language with object-oriented constructs.
OCaml's toolset includes an interactive top level interpreter, a bytecode compiler, a reversible debugger, a package manager (OPAM), 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.〔(【引用サイトリンク】title=A History of OCaml )
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.
==Philosophy==
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 the 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.
Xavier Leroy has stated that "OCaml delivers at least 50% of the performance of a decent C compiler",〔( Linux Weekly News ).〕 but a direct comparison is impossible. Some functions in the OCaml standard library are implemented with faster algorithms than equivalent functions in the standard libraries of other languages. For example, the implementation of set union in the OCaml standard library in theory is asymptotically faster than the equivalent function in the standard libraries of imperative languages (e.g. C++, Java) because the OCaml implementation exploits the immutability of sets in order to reuse parts of input sets in the output (persistence).

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「OCaml」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.