[前][次][番号順一覧][スレッド一覧][生データ]

langsmith:186

From: Shiro Kawai <shiro lava.net>
Date: Tue, 12 Apr 2005 01:08:10 -1000 (HST)
Subject: [langsmith:186] Re: 自作言語とパーサー

From: "machida,tatsuhiko" <t.machida.unicom jcom.home.ne.jp>
Subject: [langsmith:182] Re: 自作言語とパーサー 
Date: Tue, 12 Apr 2005 18:07:06 +0900

> > ここで言っていたのは、基本的にはパーズ後の構文木ということで、
> > VMのアセンブラよりはずっと上流の表現です。
> > ここで処理を分けられるようにしておくことにはいくつもメリットがあります。
> 
>  構文木を出力するということですが、
>  これはテキスト形式で出力されているんですか?

はい。と言っても、実装言語にLispを使っている場合はただpprintで
書き出してreadで読み込むだけですが。
実際には、デフォルトの外部表現を持たないデータや外部に出す必要の無い
データなどが混じっているので、若干の変換メソッドの定義も必要です。
それを含めて「中間表現を外部に出力したり…する部分」と表現しました。
特にそのためだけにツールを作るという意識はなく、内部データ構造のデザイン
と表裏一体の開発なので、保守を気にすることはないですね。

Emacs使いなら、S式で出して置くと、手編集が簡単にできるというメリットも
あります。EmacsでS式を扱うのと同じ位簡単にXMLを扱えるエディタがあるなら、
XMLでもいいのかもしれません。

> > - 構文木を読み込んで直接解釈する試験用のバックエンドを作るのは、
> >   最適化VMを作るよりもはるかに楽なので、「とりあえず動く」状態まで
> >   素早く持ってゆくことが出来る。試験用のバックエンドは最終的な実装言語で
> >   書く必要さえない
> 
>  試験用のバックエンドなんて考え方があるんですね...
>  それを使って、文法の利便性・有効性を確認していくことができますね。

試験用のバックエンドは、まとまった要求仕様があって開発期間が
限られている場合なんかに特に有用です。自分言語を作る場合は
あまり必要ないかもしれません。

--shiro


--
ML: langsmith quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

       174 2005-04-11 15:58 [t.machida.unicom jco] langsmithへの参加願います。             
       175 2005-04-11 22:50 ┗[matz ruby-lang.org  ]                                       
       176 2005-04-12 10:28  ┗[t.machida.unicom jco] 自作言語とパーサー                  
       177 2005-04-12 11:08   ┣[shiro lava.net      ]                                   
       178 2005-04-12 11:54   ┃┗[t.machida.unicom jco]                                 
       180 2005-04-12 16:20   ┃ ┗[shiro lava.net      ]                               
       182 2005-04-12 18:07   ┃  ┗[t.machida.unicom jco]                             
->     186 2005-04-12 20:08   ┃   ┗[shiro lava.net      ]                           
       179 2005-04-12 14:03   ┗[matz ruby-lang.org  ]                                   
       181 2005-04-12 17:45    ┗[t.machida.unicom jco]                                 
       183 2005-04-12 18:12     ┣[matz ruby-lang.org  ]                               
       188 2005-04-12 23:55     ┃┗[maeda-langsmith atus]                             
       185 2005-04-12 18:34     ┗[kmori lsi-j.co.jp   ]                               
       187 2005-04-12 20:12      ┣[shiro lava.net      ]                             
       189 2005-04-13 10:02      ┗[t.machida.unicom jco]                             
       191 2005-04-13 13:45       ┗[kmori lsi-j.co.jp   ]                           
       192 2005-04-13 14:19        ┗[t.machida.unicom jco]