Welcome to MSDN Blogs Sign in | Join | Help
[DLR] DLR における抽象構文木の解析について

現在、IronPython 2.0アルファ2を使って抽象構文木(AST)がどのように作成されるかを調べています。具体的には、以下のようなサンプルコードを使って、VSを使ってデータを収集しています。

def yo(yourname):
    text = "Hello, "
    return text + yourname

print yo("TechEd Yokohama")

このスクリプトを名前を付けて保存して、IronPythonConsoleプロジェクトのコマンドライン引数に指定して、ASTのデータを集めているのが以下の図です。
Python AST

このastという変数にIronPythonの抽象構文木のデータが格納されています。これを更に調べていくとDLRの抽象構文木へマップしている状態も調べることができます。DLRのASTのデータを調べているのが以下の図です。
DLR AST 


CodeBlockというデータ型に抽象構文木のデータが格納されています。こうして調べたASTを図にする作業を行っています。このASTの詳細説明は、TechEd Yokohamaの終了後にでも解説したいと考えています。現時点では、ソースコードを使うことで上記のようにASTを調べる方法もあるということをお知らせしておきます。

PS:DLRをC#などから利用する方法も調べています。その過程で見つけたのは、IronPython 2.0A2で提供される実行モジュールは、キーペアによる署名を持っていたことです。なので、ソースコードからビルドしたモジュールを使って色々と調べています。

Posted: Friday, July 20, 2007 5:59 PM by shozoa
Filed under: , , ,

Comments

NyaRuRuの日記 said:

荒井さんの blog を読んでいると,行かないつもりだった TechEd 2007 に行きたくなってくる今日この頃. DLR における抽象構文木の解析について Orcas を入れなくても .NET AST で遊べるのはおもしろいですね.テスト用の AST の作成ですが,私は F# を利用したものをちょこ

# July 21, 2007 1:16 PM

Noticias externas said:

DLRにおける抽象構文木(AST)の解析について というエントリに対して、 興味深いトラックバック をNyaRuRuさんからいただきました。NyaRuRuさんのエントリでは、独自の言語プロバイダを実装してDLRのASTを調べるというものです

# July 21, 2007 10:26 PM
Leave a Comment

(required) 

(required) 

(optional)

(required) 

  
Enter Code Here: Required

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Page view tracker