🐍 Python が動くまでを見てみよう!

Python があなたのコードを実行するまでの4段階(字句解析・構文解析・コンパイル・実行)で、 同じコードが本物の CPython の中でどう姿を変えていくかを見ることができます。

🔍 トークン列— 実際の tokenize 出力(0 トークン)

(コードを入力してください)

👆 トークンをタップすると、種類・位置・意味がわかります。

①トークンの全種別リファレンス
注記:この解説文は正確性を期していますが、誤りが含まれる可能性があります。公式ドキュメント( docs.python.org/3.12/library/token.html)も参照してください。トークン列・AST・バイトコードの実行結果自体は常に正確です。
いろ と 種類の凡例
NAME
識別子・キーワード(全部 NAME)
NUMBER
数値リテラル
STRING
文字列リテラル
OP
演算子・区切り(exact型つき)
( ) [ ] { }
OP の中の括弧(LPAR等)
COMMENT
コメント
NEWLINE / NL
論理行末 / 意味なし改行
INDENT / DEDENT
字下げの増減(構造)
ENDMARKER
入力の終端

🌳 構文木(AST)

(コードを入力してください)

②構文木(AST)の全種別リファレンス
注記:この解説文は正確性を期していますが、誤りが含まれる可能性があります。公式ドキュメント( docs.python.org/3.12/library/ast.html)も参照してください。トークン列・AST・バイトコードの実行結果自体は常に正確です。
技術情報:Python の抽象文法(ASDL)には、実際にインスタンス化されない「グループ型」があります。 例えば、operator グループには AddSubMultなどの具象型が属しており、リファレンスでは具象型のみ個別に掲載しています。 また、NumStrNameConstant などの廃止予定レガシーエイリアスや、AugLoadParam などの未使用コンテキスト型は対象外です。 さらに、InteractiveExpressionFunctionType は、mode='single'mode='eval'mode='func_type'ast.parse() を呼んだ場合のみ生成されるため、Pyeek(デフォルトmode='exec'、常に Module をルートにする)のUI上では決して出現しません。

⚙️ バイトコード

(コードを入力してください)

③バイトコードの全種別リファレンス
注記:この解説文は正確性を期していますが、誤りが含まれる可能性があります。公式ドキュメント( docs.python.org/3.12/library/dis.html)も参照してください。また、Pyeek が出力するバイトコード逆アセンブルには、CPython の最適化機構に関連した以下のオペコード種別が決して出現しません: CACHE(PEP 659 の実行時キャッシュスロット)、INSTRUMENTED_*(PEP 669 の sys.monitoring 計装命令)、RESERVED(将来予約)、INTERPRETER_EXIT(内部トランポリン)、疑似命令(JUMP / LOAD_METHOD 等の中間表現専用)、特殊化命令(BINARY_OP_ADD_INT 等の適応的最適化変種、実行中の「温め」では反映されない)。バイトコード・AST・実行結果の実装の正確性は常に保証されます。

🧮 スタックマシン

(コードを入力してください)