Commits

camlspotter  committed c268cea Draft

slight change

  • Participants
  • Parent commits 6450ebc

Comments (0)

Files changed (1)

     (Native code へとコンパイルする ocamlnat という対話環境も存在する。ただしまだ「非公式」)
 
 ocamlc bytecode compiler
-----------------------------
-OCaml ソースコードを bytecode へとコンパイルするコンパイラ。
-Bytecode プログラムは native code と比べると遅いが、 ocamldebug を使ったデバッグが可能。
+    OCaml ソースコードを bytecode へとコンパイルするコンパイラ。
+    Bytecode プログラムは native code と比べると遅いが、 ocamldebug を使ったデバッグが可能。
 
 ocamlopt native code compiler
----------------------------------
-OCaml ソースコードを native code (マシン語)へとコンパイルする。 
-Native code がサポートされているアーキテクチャで OCaml コンパイラソースコードディレクトリで make opt すると作成される。
-実はほとんど使わない。次の ocamlc.opt, ocamlopt.opt を参照のこと。
+    OCaml ソースコードを native code (マシン語)へとコンパイルする。 
+    Native code がサポートされているアーキテクチャで OCaml コンパイラソースコードディレクトリで make opt すると作成される。
+    実はほとんど使わない。次の ocamlc.opt, ocamlopt.opt を参照のこと。
 
 ocamlc.opt ocamlopt.opt
-----------------------------
-Native code にコンパイルされた bytecode および native code コンパイラ。
-Native code コンパイルが可能な環境では通常このコンパイラを使う。
-
-OCaml コンパイラソースコードで make opt の後に make opt.opt を行うと作成される。
-通常の ocamlc, ocamlopt は bytecode で実行される。 
-\*.opt コンパイラは native にコンパイルされているため bytecode へとコンパイルされたコンパイラより実行速度が早い。
-(Bytecode 版コンパイラがひどく遅いわけではない。)
-
-ocamlc, ocamlopt 以外のツールにも、 .opt の postfix がついた native code バージョンが存在する。
+    Native code にコンパイルされた bytecode および native code コンパイラ。
+    Native code コンパイルが可能な環境では通常このコンパイラを使う。
+    
+    OCaml コンパイラソースコードで make opt の後に make opt.opt を行うと作成される。
+    通常の ocamlc, ocamlopt は bytecode で実行される。 
+    \*.opt コンパイラは native にコンパイルされているため bytecode へとコンパイルされたコンパイラより実行速度が早い。
+    (Bytecode 版コンパイラがひどく遅いわけではない。)
+    
+    ocamlc, ocamlopt 以外のツールにも、 .opt の postfix がついた native code バージョンが存在する。
 
 ocamldep
-=================
-ocamldep は複数の OCaml プログラムファイル間の依存関係を抽出するツール。
-結果は Makefile の依存書式で出力される。通常は、
-ocamldep \*.ml \*.mli > .depend
-として依存情報をファイルに書きだし、それを Makefile 等で include する。
-
-使い方の例は、 Makefile を使った OCaml ソフトウェアを見れば、まず使用されているので、それらを参考に。
+    ocamldep は複数の OCaml プログラムファイル間の依存関係を抽出するツール。
+    結果は Makefile の依存書式で出力される。通常は、
+    ocamldep \*.ml \*.mli > .depend
+    として依存情報をファイルに書きだし、それを Makefile 等で include する。
+    
+    使い方の例は、 Makefile を使った OCaml ソフトウェアを見れば、まず使用されているので、それらを参考に。
 
 OCaml パーサーツール
 ================================
 このパーサによって OCaml の文法自体も定義されている。
 
 ocamllex
------------
-Multi-byte char を処理する場合は、 ulex を使うべきである。
-
-Lexical analyser。 Lex のスタイルを踏襲しつつ、アクション等のコードを OCaml プログラムで記述できる。
-そのため、基本的に lexer (字句解析)や正規表現の知識が有用かつ前提である。
-ocamllex は \*.mll というアクション等のコードを OCaml プログラムで記述できる。
-\*.mll の例は OCaml コンパイラソースの parsing/lexer.mll を参考にするといい。
+    Multi-byte char を処理する場合は、 ulex を使うべきである。
+    
+    Lexical analyser。 Lex のスタイルを踏襲しつつ、アクション等のコードを OCaml プログラムで記述できる。
+    そのため、基本的に lexer (字句解析)や正規表現の知識が有用かつ前提である。
+    ocamllex は \*.mll というアクション等のコードを OCaml プログラムで記述できる。
+    \*.mll の例は OCaml コンパイラソースの parsing/lexer.mll を参考にするといい。
 
 ocamlyacc
-------------
-ほとんど上位互換で、エラーメッセージの読みやすい Menhir を使うべきである。
-
-Parser generator。こちらは yacc のスタイルを踏襲し、アクション等のコードを OCaml プログラムで記述できる。
-そのため、 yacc の知識が必要。例えば shift-reduce, reduce-reduce の知識がなければ使いこなせない。
-ocamlyacc は \*.mly という拡張子のファイルを受け取り、 parsing rule を解釈し、 \*.ml へと変換する。
-注意すべき点として、 OCaml コード以外のパートでのコメントは (\* ... \*) ではなく、 /\* ... \*/ であることが挙げられる。
-\*.mly の例は OCaml コンパイラソースの parsing/parser.mly を参考に。
-
-ocamllex, ocamlyacc は色々と古臭い部分もあり、イライラすることもあるが、
-ほとんどアップデートもなく、非常に良く枯れているツールであるともいえる。
-
-ocamlyacc のほぼ上位互換 parser generator として Menhir という外部ツールがある。 Menhir は ocamlyacc と同じ \*.mly ファイルを受け取る上に、エラーメッセージが読みやすいなど良い点が多い。そのため、現在 OCaml で parser generator を使う場合は Menhir を使うことが推奨されている。
-# (ユーザに Menhir をインストールさせるのが面倒だと思われる場合は、 Menhir で新しい機能を使わず、デバッグ開発を行い、リリース時には ocamlyacc に戻す、ということも可能。)
+    ほとんど上位互換で、エラーメッセージの読みやすい Menhir を使うべきである。
+    
+    Parser generator。こちらは yacc のスタイルを踏襲し、アクション等のコードを OCaml プログラムで記述できる。
+    そのため、 yacc の知識が必要。例えば shift-reduce, reduce-reduce の知識がなければ使いこなせない。
+    ocamlyacc は \*.mly という拡張子のファイルを受け取り、 parsing rule を解釈し、 \*.ml へと変換する。
+    注意すべき点として、 OCaml コード以外のパートでのコメントは (\* ... \*) ではなく、 /\* ... \*/ であることが挙げられる。
+    \*.mly の例は OCaml コンパイラソースの parsing/parser.mly を参考に。
+    
+    ocamllex, ocamlyacc は色々と古臭い部分もあり、イライラすることもあるが、
+    ほとんどアップデートもなく、非常に良く枯れているツールであるともいえる。
+    
+    ocamlyacc のほぼ上位互換 parser generator として Menhir という外部ツールがある。 Menhir は ocamlyacc と同じ \*.mly ファイルを受け取る上に、エラーメッセージが読みやすいなど良い点が多い。そのため、現在 OCaml で parser generator を使う場合は Menhir を使うことが推奨されている。
+    # (ユーザに Menhir をインストールさせるのが面倒だと思われる場合は、 Menhir で新しい機能を使わず、デバッグ開発を行い、リリース時には ocamlyacc に戻す、ということも可能。)
 
 Camlp4 pre-processor and pretty printer
 =============================================