[Python-ml-jp 4087] Re: 「デコレーター構文」と「dis /inspect, ceval.c」について書いてみました。

kenji kenji @ nasuinfo.or.jp
2007年 7月 20日 (金) 08:56:55 JST


小林@那須です。

>僕は「バイトコード」という言葉でco_codeをさし、
>村岡さんは構文木の情報を保っている
>pycなんかの中にあるもののことを指していたので
>話がすれ違うという経験をしました。
>「バイトコード」という言葉は後者を指す方が一般的なような気もしますし、

私の言葉では「バイトコード」の厳密な意味は、下の例の  64 01 00 などの
バイトごとの数値コードを意味します。人間に分りやすい数値コードの呼び
名:mnemonic を「バイトコード」に含めることもあります。ですので 
co_code を「バイトコード」といっても違和感はありません。

64 01 00 LOAD_CONST  1
7d 00 00 STORE_FAST  0

64 02 00 LOAD_CONST  2

でも pyc には「バイトコード」だけでなく co_argcount, co_consts など、
命令の数値コード以外の構文解析結果を含みます。私は pyc の中にあるもの
をコード・オブジェクトと表現しています。これを「バイトコード」と呼ぶ
のには強い違和感を感じます。

C 言語のオブジェクト・ファイルにもバイト・コードだけでなくリンク情報
が入っています。ですのでオブジェクト・ファイル中身全体を「バイトコー
ド」ということはありません。

pyc の中にあるものを「バイトコード」と呼ぶことが一般的なのでしょうか。
私には強い違和感があります。

======= kVerifier Lab =============================
小林憲次
http://www.nasuinfo.or.jp/FreeSpace/kenji/index.htm
===================================================




Python-ml-jp メーリングリストの案内