トップ «前の日記(2015-01-20) 最新 次の日記(2015-01-25)» 編集

日々の破片

著作一覧

2015-01-23

_ CodeZineで記事公開

『Ruby開発者・まつもとゆきひろ氏の新言語「Streem」のソースコードを読んでみよう! ~ 文法と構造を規定する「lex.l」と「parse.y」』というタイトルで、CodeZineにlexとyaccのソースの読み方の導入記事を掲載していただきました。

・反省点:JavaでEclipseのような開発者を想定してMakefileの説明などもしているのに、Cは自明のネイティブ言語みたいな書き方になっていますね……

lexの部分が長くなってしまった(4ページのうち2ページ近く。これはいきなりlexに入らずに、まず自然言語で字句解析するところから始めようと考えたので設計通りではあるのだけど、その結果、FizzBazzではなくcatを例にしたのが運の尽き)ので、yaccの縮退していくおもしろいところがえらく短いのがちょっと残念。

とはいえ、せっかくstreemがあるのに、srcの下に.lと.yがぽつんと置かれているとっつきの悪さにそのまま引き返してしまうのはもったいない(この長さなら読めるでしょ)ので、こういうのもありかなぁとは思います。(日経リナックスのまつもとさんの記事を読むと、きっちり字句解析と構文解析の説明もしているのでそれは予想外だったけど)

それにしても、BNFを見ていると、バッカスはきっと、FORTRAN→BNF→ALGOL→これじゃない→FL(名前しか知らないけど)と考えを進めたのかなぁとか想像できていろいろ楽しいですね。プログラミング言語は関数型の夢を見るか?


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

ジェズイットを見習え