「OCaml」の版間の差分

ライセンスの変更
(ライセンスの変更)
|影響を与えた言語 = {{lang|en|[[F Sharp|F#]]}}、{{lang|en|[[Scala]]}}、{{lang|en|[[HaXe]]}}
|operating_system = [[クロスプラットフォーム]]
|license = {{lang|en|[[QGNU Lesser General Public License|LGPL 2.1]]}}
|website = http{{URL|https://ocaml.org/}}
}}
 
{{プログラミング言語}}
'''OCaml'''({{IPAc-en|oʊ|ˈ|k|æ|m|əl}} {{respell|oh|KAM|əl}}、オーキャムル、オーキャメル)は、フランスの {{lang|fr|[[INRIA]]}} が開発した[[ML (プログラミング言語)|プログラミング言語ML]]の方言とその実装である。MLの各要素に加え、オブジェクト指向的要素の追加が特長である。かつては {{lang|en|Objective Caml}} という名前で、その略として {{lang|en|OCaml}} と広く呼ばれていたが、正式に {{lang|en|OCaml}} に改名された<ref>httphttps://caml.inria.fr/ocaml/name.en.html</ref>。
 
== 概要 ==
処理系としての特徴は、関数型言語としてはかなり高速に動作することが挙げられ、[[GNUコンパイラコレクション|gcc]]でコンパイルされた[[C言語]]と互角かやや遅い程度と言われる<ref>{{cite book | author=OCaml-Nagoya | year=2007 | title=『入門OCaml』 | publisher=毎日コミュニケーションズ | isbn=9784839923112 | pages=p.17}}</ref>。
 
関数型言語としては比較的アプリケーションの数が多く、例えば[[MediaWiki]]において[[TeX]]の記述から[[HyperText Markup Language|HTML]]、[[MathML]]および画像の数式を生成するプログラムもOCamlで記述されている<ref>[httphttps://www.mediawiki.org/wiki/Texvc Texvc - MediaWiki]</ref>。
 
=={{lang|en|Caml}}==
MinCamlは、[[ペンシルベニア大学]](当時)の[[住井英二郎]]がOCamlで実装した、Caml似のMLの小型版である。同作者により、[[コンパイラ]]が OCaml 自身で書かれている。MinCaml は、[[2004年]]度の[[情報処理推進機構|未踏ソフトウェア創造事業]]に採択された。
 
MinCaml コンパイラは教育目的での利用を主眼としている。わずか2000行前後のコードで書かれており、実装されている機能はMLのサブセットである。バックエンドは[[SPARC]]と[[x86]]に対応しており、ある程度の学習をすれば比較的容易に改造を行うことができる(実際、有志によって[[PowerPC]]用に出力できるバージョンも提供されている。バックエンドを[[Low Level Virtual Machine|LLVM]]に置き換えた例も報告されている<ref>httphttps://mzp.hatenablog.com/entry/2013/05/08/214712</ref>。)。実際に[[東京大学]]理学部情報科学科などで教育目的に利用され、国内における OCaml および関数型言語の普及と理解に一定の役割を果たしている{{要出典|date=2016年3月|}}。
 
*[http://min-caml.sourceforge.net/ 速攻MinCamlコンパイラ概説] - MinCamlの配布・解説(<code>SourceForge.net</code>)
 
== 外部リンク ==
*[httphttps://caml.inria.fr/ocaml/ {{lang|en|OCaml}}] ({{lang|fr|INRIA}})による旧サイト
*[httphttps://ocaml.org/ {{lang|en|OCaml}}] 新しい公式サイト
*[http://www.fos.kuis.kyoto-u.ac.jp/~t-sekiym/classes/isle4/mltext/ocaml.html {{lang|en|Objective Caml}} 入門]
*[http://www.i.kyushu-u.ac.jp/~bannai/ocaml-intro/intro.html {{lang|en|OCaml}} プログラミング入門]
781

回編集