2016-03-01から1ヶ月間の記事一覧

opcode.h

Perl › 言語実装 › here opcode.hには、それぞれのオペレーションに関する情報が記載されている。Perl言語研究では、「OP型」のデータのことを、オペレーションと呼ぶことにしています。Perlは、構文解析が終わると、構文木に変換されますが、このそれぞれの…

opnames.h

Perl › 言語実装 › here opnames.hには、オペレーションコードが記述されています。 /* opname.h */ typedef enum opcode { OP_NULL = 0, OP_STUB = 1, OP_SCALAR = 2, OP_PUSHMARK = 3, OP_WANTARRAY = 4, OP_CONST = 5, OP_GVSV = 6, ... }; Perlは、構文…

embedvar.h

Perl › 言語実装 › here embedvar.hは、インタープリタ変数、グローバル変数の抽象化のためのヘッダです。 インタープリタ変数の抽象化 インタープリタ変数の抽象化のロジックは以下のようになっています。 #if defined(MULTIPLICITY) /* cases 2 and 3 abov…

perlvars.h

Perl › 言語実装 › here perlvars.hには、Perlのグローバル変数が定義されています。 /* perlvars.h */ /* global state */ #if defined(USE_ITHREADS) PERLVAR(G, op_mutex, perl_mutex) /* Mutex for op refcounting */ #endif PERLVARI(G, curinterp, Per…

interpvar.h

Perl › 言語実装 › here interpvar.hには、インタープリタ変数の定義が記述されています。インタープリタ変数とは、Perlのインタープリタごとに、定義される変数のことです。 インタープリタとは Perlは、複数のインタープリタを持つことができます。Perlは…

fileno関数 - ファイルディスクリプタを取得する

Perl › 関数 › here ファイルディスクリプタを取得には、fileno関数を使用します。引数には、開かれているファイルハンドルを指定します。 $ret = fileno $fh; ファイルディスクリプタとは、ファイルや標準入出力などをOSが識別するために用いる識別子のこと…

close関数 - ファイルハンドルを閉じる

Perl › 関数 › here ファイルハンドルを閉じるにはclose関数を使用します。 close $fh; もう少し詳しく書くと、close関数が呼ばれると、現在のバッファがフラッシュされて、その後にファイルハンドルが閉じられます。 close関数でファイルハンドルを閉じる必…