Commits

camlspotter committed b8a40e1 Draft

slight change

Comments (0)

Files changed (1)

 バグフィックスパッチやリリースはより頻繁にある。
 
 ocaml toplevel
-    OCaml 対話環境。いわゆる REPL(Read-Eval-and-Print Loop)。
-    入力は型推論の後 bytecode へとコンパイルされ VM により評価される。
-    Bytecode とはいえコンパイルが入るため、インタープリタとは普通呼ばれない。
-    
-    Real World OCaml programmer は toplevel はまず使わない。
-    
-    ocaml toplevel の対話環境としての能力はあまり高くない。行の編集や履歴を呼び出したい場合は、
-    
-    * rlwrap : read line wrapper
-    * emacs の shell mode 内などでの実行
-    
-    で編集能力を強化するのが普通である。
-    
-    (Native code へとコンパイルする ocamlnat という対話環境も存在する。ただしまだ「非公式」)
+-------------------
+OCaml 対話環境。いわゆる REPL(Read-Eval-and-Print Loop)。
+入力は型推論の後 bytecode へとコンパイルされ VM により評価される。
+Bytecode とはいえコンパイルが入るため、インタープリタとは普通呼ばれない。
+
+Real World OCaml programmer は toplevel はまず使わない。
+
+ocaml toplevel の対話環境としての能力はあまり高くない。行の編集や履歴を呼び出したい場合は、
+
+* rlwrap : read line wrapper
+* emacs の shell mode 内などでの実行
+
+で編集能力を強化するのが普通である。
+
+(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
 =============================================