タグ

lexに関するmrk21のブックマーク (5)

  • Flex - Flexの起動

  • プログラミング言語を作る yaccとlex

    yacc/lexとは Cでプログラミング言語の処理系を実装するのであれば、 多くの場合、yaccとlexというツールを使います。 実のところ、Cとyacc/lexで簡単なプログラミング言語を作る、というのは、 以前、「C言語ヨタ話 」で書いた「 電卓を作ってみよう」 の焼き直しになります。yaccとlexの説明もそちらに簡単に書いたので、 そちらを見てください――と言いたいところですが、 まあここでも軽く説明します。 内容的には重複、というかコピペしている部分もありますが。 プログラミング言語の処理系は、通常、以下のような手順を取ります。 字句解析 ソースプログラムを、「字句(トークン)」の並びに分割する処理です。 構文解析 トークンの並びから、解析木を構築する処理です。 この後、Cなどの機械語を吐くコンパイラや Javaのようなバイトコードを吐くコンパイラなら、 「コード生成」という処理

  • Lex and YACC primer/HOWTO

    PowerDNS BV (bert hubert <bert@powerdns.com>) v0.8 $Date: 2002/07/22 14:02:09 $ 大西 大樹 (daiki onishi <onishi@mbc.nifty.com>) v0.8j 2003/02/08 ドキュメントは Lex と YACC の基的な使い方について記述します 1. イントロダクション 1.1 ドキュメントに含まれないもの 1.2 ダウンロード 1.3 ライセンスについて 2. Lex と YACC でできること 2.1 それぞれのプログラムのやっていること 3. Lex 3.1 正規表現でのマッチ 3.2 C のようなシンタックスをもつもう少し高度な例 3.3 おさらい 4. YACC 4.1 単純な温度調節器 4.2 引数を扱えるように拡張した、温度調節器 4.3 設定ファイルの構文解析

  • lex & yaccことはじめ - goinger的日記

    とある図書館でlex & yaccというが廃棄処理扱いされていたので、もらってきたのですが消化していなかったので、消化をかねてlex & yaccについての調査などしてみました。 ネットでの資料としては Lex and Yacc Primerの資料が秀逸で、とりあえずここに書いている事を理解すれば最低限lex & yaccを使えるようになるかと思います。 lex & yacc において、言語処理を作るにあたりどっちが重要かという事になるとやはりyaccの方が重要!! というのはlexってのは字句解析なので頑張れば自分でも構築可能だからです。yaccの構文解析も頑張れば無理じゃないかもしれませんがきついと思います。 とっつきやすいのはどちらかというとlexの方ですね。lexは単体でも字句解析ができたりするので、lex単体でもちょっとした事はできるのですが、yaccの場合は処理内容は構文解析

    lex & yaccことはじめ - goinger的日記
  • Lecture Notes

    1-1 字句解析1 言語処理系の基構成 プログラミング言語の処理系は大きく、コンパイラとインタプリタに分けられる。 インタプリタはプログラムを読みこんで即座に実行するが、コンパイラは読みこんだプログラムを機械語に翻訳する。しかし内部構造は、コンパイラもインタプリタも大きく異なるわけではない。特に前半部分はまったく同じである。 言語処理系の一般的な内部構成は次のように5段からなる。 字句解析 文字列を token 列に分解。 構文解析 token 列を抽象構文木 (abstract syntax tree) に変換。 意味解析 抽象構文木を元に、変数の型など意味情報を計算して、構文木を中間言語(中間表現とも言う。やはり木構造。)に変換する。 最適化 中間言語を変形して、効率のよいプログラムに変換する。 実行またはコード生成 中間言語を元に、インタプリタなら計算を実行、コンパイラなら機械語を

  • 1