タグ

プログラミングとyaccに関するkutakutatriangleのブックマーク (4)

  • 第9章 速習yacc

    概要 パーサとスキャナ プログラム言語のパーサの書きかたは昔からしつこく研究されてきており、 かなりしっかりした定石がある。よほど変な(または曖昧な)文法でない 限り、定石にのっていけば解決できるものだ。 まず最底辺には文字列を単語(トークンとも言う)の列に切り出す部 分がある。これをスキャナ(scanner)とかレクサ(lexer)と言 う。日語で言うと字句解析器だが、言いにくいのでスキャナと呼ぼう。 スキャナというものが出てくる根底にはそもそも「単語の区切りには空白ある でしょ」という常識がある。そして実際にたいていのプログラミング 言語はそういう仕様になっている。そのほうが楽だからだ。 例えば古いFortranでは空白が意味を持たなかった。つまり空白を入れても 単語区切りとは限らないし、変数の途中で何の前触れもなく空白を挿入したり することもできた。ところが解析が恐ろしく面倒なもの

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • PLY (Python Lex-Yacc)

    原文 Documentation version: $Header: /cvs/projects/PLY/doc/ply.html,v 1.3 2004/05/27 17:30:56 beazley Exp $ PLY Version: 1.5 目次 Introduction PLY概要 Lexの例 Lex実装ノート 基的なパージング yaccの例 文法規則関数の結合 空生成規則 曖昧文法を扱う parser.out ファイルについて 構文エラーの処理 行番号の追跡 ASTの構築 Yacc 実装ノート パーサとLexer State Management Pythonの最適化モードを使用する 次にすべきこと Introduction PLYはポピュラーなコンパイラ構築ツールであるlexとyaccのピュアPython実装である。この実装は、先人の

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

    このページの目的は、「独自のプログラミング言語を作る」ことです。 「プログラミング言語を作る」というのは、 やったことのない方からすれば、ずいぶん無謀な目標に見えるのかもしれません。 でも、いくつかの基礎知識さえ修得すれば、技術的には、 実はそんなに難しいものでもありません。 だったら、ひとつぐらい作ってみたいと思いませんか? なにしろプログラミング言語を作るなんて、 いかにもかっこ良さげじゃないですか。 私は作ってみたいと思いました。だから作ります。 プログラミング言語なんてもう山ほどあるのに、 今さら新しい言語なんて付け足して何をしたいんだよ! などというツッコミは入れてはいけません。 「なぜプログラミング言語なんか作るんですか?」 と聞かれたら、その答は そこにyaccがあるからだ。 で充分だろうと私は思います(yaccが何かは後述します)。 というわけで―― ただ私なんぞが新言語を

    kutakutatriangle
    kutakutatriangle 2009/12/24
    「プログラミング言語を作る」ことを目的としたページ。
  • 1