タグ

yaccとlanguageに関するmanabouのブックマーク (2)

  • プログラミング言語の作り方 - UUUMエンジニアブログ

    おはこんばんちは。 尾藤 a.k.a. BTOです。 普段我々開発者は、プログラミング言語を使ってシステムを開発しています。 しかし、プログラミング言語も人によって開発されたコンピュータプログラムです。 先日社内勉強会で、普段使っているプログラミング言語が、どういう仕組みで成り立っているのかを発表しました。 それで実際に簡単な四則演算を計算する簡単な電卓を実装してみました。 ソースコードを公開していますので、最初のとっかかりの参考程度にはなるかと思います。 github.com 正規文法・文脈自由文法 ノーム・チョムスキーという有名な言語学者が形式言語の生成文法を定式化しました(チョムスキー階層)。 彼は生成規則の制限の強さによって、階層を分けました。 制限は緩ければ緩いほど、言語としての表現力は上がりますが、解析は難しくなります。 このチョムスキー階層の中で、我々が慣れ親しんでいるのが、

    プログラミング言語の作り方 - UUUMエンジニアブログ
  • Yacc is dead: An update

    In examples, we'll still use juxtaposition to denote concatenation. The derivative for regular languages The useful property of the derivative from an implementation point of view is that it has a recursive definition over regular languages: Dc(∅) = ∅ Dc(ε) = ∅ Dc(c) = ε Dc(c') = ∅ if c is not c' Dc(A ○ B) = Dc(A) ○ B if A does not contain the empty string Dc(A ○ B) = Dc(A) ○ B ∪ Dc(B) if A contai

  • 1