Perlゼミ

  1. Perl
  2. 言語実装
  3. here

opnames.h

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は、構文解析が行われた後に、コードが、構文木として表現されるのですが、構文木のひとつひとつのノードは、オペレーションと呼ばれます。これは「OP型」として表現されます。たとえば「pushする」とか「ハッシュのキーの存在を確かめる」とか「サブルーチンを実行する」とか「スカラを表現する」とか、そういうPerlのプログラミング上での操作が、オペレーションによって表現されます。

オペレーションの種類を表すのが、オペレーションコードです。これは、列挙型です。

「opnames.h」には、オペレーションコードが書かれていますが、それが、何を表すのかという解説がありません。解説を見たい場合は、「opcode.h」の「PL_op_desc」を参照するのがよいでしょう。

/* opcode.h */
EXTCONST char* const PL_op_desc[] = {
  "null operation",
  "stub",
  "scalar",
  "pushmark",
  "wantarray",
  "constant item",
  "glob value",
  ...
};

Perl言語研究

Perl元気ちゃんねるのご紹介

Perlテキスト処理と正規表現の入門書
講座作成
著者紹介
木本裕紀

「今日も元気だ! Perlで元気!」

Perlプログラミングちゃんねる

Youtubeチャンネル登録、いいね、コメント歓迎

Twitter
フォロー、いいね、リツート、コメント歓迎

kimoto.yuki@gmail.com
応援メッセージ、質問、間違い報告歓迎

Perl総合研究所
Perl書籍
  • Perlテキスト処理のエッセンス
    テキスト処理
    テキスト処理と正規表現の基本をマスター
  • 業務に役立つPerl

    ログ解析など日本語を含むテキスト処理の実践!
  • Perlの書籍 »