アダルト・ヴァイオリン May the force be with you..

2009年6月25日

字句解析としてのLex

Filed under: Weblog — い~ぐる @ 7:37 AM

コンパイラの本に必ずといっていいほど取り上げられる、字句解析プログラムLex、sfl2vlもこれを使って字句解析をしているけれど、実はLexは、かなりレベルの低い字句解析しかできない。具体的には、これは、モードをもったパターンマッチングしかできないといっても過言ではない。
sfl2vlでは、状況に応じて、Lexのモードでは対応できない部分をCのコードで文法を解析しつつ、字句解析のモードを決定するという回りくどいやり方をしている。

もともと、C言語では、すべての識別子はコンパイル単位で一意でなくてはならないという縛りがあったので、Lexのやり方で十分だったが、もう少し複雑な構造を持つ言語では、Lexの仕組みだけでは無理がある。

今回、ちょっと困ったのが、名前付きの引数渡しをサポートするときに、サブモジュールの制御入力起動において、例えば、
alu.exec(fun=ADD, inA=PC, inB=0x01)
というような記述をしたいという場合、ここで、名前は、サブモジュール内の名前を用いる必要があり、シンボルテーブルはサブモジュールのものを参照するのが正当だが、Lexで状況に応じてシンボルテーブルを切り替えるには、文法を深く解析することになり、あまりストレートではない。

Lex側で、全部のシンボルを文脈を無視して、単にシンボルとして扱い、それをYaccに渡すと、こんどは、Yaccが一つ先のトークンまでしか見ないという制限があって、文法の曖昧さが解消できない。

やはり、Lexを捨てて、独自に字句解析した方が素直な気がするが。。毎回、この手の問題にぶつかるたびに思うが、なかなか踏み切れないものだ。

とりあえず、名前付き引数はサブモジュールの呼び出しでは使えないことにしておく。 ;-d

2009年6月24日

クワガタ

Filed under: フォトログ — タグ: — い~ぐる @ 1:18 AM

朝、目を覚ますと、妙な違和感を覚え、固くなった体をのそのそと引きずりながら、外に出る、、、
ふと、気がつくと、体がクワガタになっていた
2948468
てなわけはなく、これは、朝、階段の下にいたクワガタである。
Ricoh R8

2009年6月22日

タイからのプレゼント

Filed under: 日記 — タグ: — い~ぐる @ 10:00 PM

3週間ほど研修に来ていたタイ人から、お礼のつもりなのだろう、荷物が届いた。中身は、
1)ポークジャーキー
2)スナック?(中身不明 未開封)
3)キャンディ
その中の1つキャンディは、こんなやつ。
数字以外読める文字がまったくない(笑)
R0010641.JPG
ところで、袋に印刷してある数字、EXPと書かれているので、賞味期限らしい。
R0010642.JPG
これは、どう読んだらいいのだろう?
09年07月20日かな?(--;)

2009年6月21日

雨の日の読書

Filed under: 日記 — い~ぐる @ 7:50 PM

もちろん、他にもやることは山ほどあるのだけれど、図書館から借りている本の期限が近かったのだ(^^;)。
今日の読書は、柳田邦男の「石に言葉を教える」である。

いろいろなエッセーの寄せ集めなのだけれど、彼は【人】について、よく考えていると思う。話が堅いので、手に取るのに気が重いのが難点か・・(笑)
いくつになっても創める生き方を、い~ぐるも支持したい。

2009年6月20日

空襲警報発令中

Filed under: 日記 — い~ぐる @ 9:24 PM

ここ数日、我が家に空襲警報発令中である。
おとといは、5機飛来し、4機撃退、1機は取り逃がした。
昨日は、取り逃がした1機と思われるやつを含め、4機撃退。
今日は、すでに3機撃退したが、まだ取り逃がした奴が近くを旋回している。
やつら、夜襲が多く、いきおい、こちらは生活リズムが乱れる。
敵は、小型アカイエカであるが、あまり小型でもないような。。
こう、一網打尽にできないものかねぇ~

2009年6月19日

リニア新幹線

Filed under: 日記 — タグ: — い~ぐる @ 2:24 AM

品川ー名古屋が40分って。。。
品川ー二宮は60分かかるのですが。。二宮にもリニアの駅を♪(笑)

2009年6月17日

アザミ

Filed under: フォトログ — タグ: — い~ぐる @ 9:17 PM

梅雨時のアザミ
2929074
きれいな花には虫がつく
2929073
Pentax ist*DL/Sigma 30mm F1.4

イエスの王朝

Filed under: 日記 — タグ: — い~ぐる @ 4:28 AM

宗教というよりは、イエスという人が本当は何をして、何を言ったのかを明らかにしようとする試みをしている本だ。この手の本が好きでよく読むのだけれど、この本は、本当に面白かった。新約の世界では、パウロによって神格化されたイエスは、その実像はほぼ抹殺され、本人はユダヤの律法に従うことを説いたにもかかわらず、イエス自身が神に祭り上げられた。しかも、弟で、後継者だったヤコブは、新約の世界で完全抹殺と言ってもよいほどの軽い扱いを受けているが、正教の世界で福音書に入らなかった文献や、福音書の各文書間の違いから、本来の姿を抽出していく様は、パズルを解くようで、スリル感たっぷりであった。
疑問に残ったのは、イエス自身に、自らが伝説の預言者であることを確信させた、奇跡の出来事はどのような仕組みで行われたのかである。

イエスの王朝 一族の秘められた歴史 (2006/05/20)
ジェイムズ・D・テイバー

商品詳細を見る

2009年6月13日

【不定期連載】 UMLで16ビットCPUを作ろう:第6回 メモリリクエスト制御

Filed under: Weblog — い~ぐる @ 2:13 PM


EUからBIUへのメモリ要求は、メモリアラインに関係なく、命令の必要とする幅でバイト読み出しだったりワード読み出しだったりする。

これ自体は、アラインフリーであるx86では当然であるが、物理メモリにアクセスするときには、問題なのだ。たとえば奇数番地からワードで読むというのは一度にはできない。

そこで、EUからのリクエストを物理メモリ要求に変換するリクエスト制御をBIUのサブモジュールとして作る。ついでながら、ここでは、メモリ要求を発生させるので、BIU内のすべてのメモリバストランザクションをここに集中させて、アービトレーションの役割を負わせよう。

つまり、バストランザクションとして必要となる、メモリ(EUの命令アクセスと、BIUの命令プリフェッチ)ならびに、IO要求を、ここで取りまとめて、物理バスにコマンドを出す。

もちろん、サブモジュールから直接ピンが出るのではないので、上位のモジュールを仲介する必要がある。そのため、本来ならば、サブモジュールに引っ張ってこなくてもよい信号まで入っているけれど、モジュールの切り分けは仮想的なものであり、物理的なピン数の制約条件が生まれるわけではないので、読みやすさ優先としておく。


UML的には、もしかしたら、関連をうまく使うと、直接ピンを外部にインタフェースする表現方法を取れるかもしれないが、まだ整理し切れていないので、これは、後日の検討としておく。

【不定期連載】 UMLで16ビットCPUを作ろう:第5回 命令プリフェッチキュー

Filed under: Weblog — い~ぐる @ 7:35 AM


分岐命令でフラッシュする命令プリフェッチキューを、BIUのサブモジュールとして作成する。なるべく細かな機能単位でモジュール化しておいたほうが、設計の見通しは良くなる(はず)。

プリフェッチ用のIPは、通常のIPと別として、プリフェッチモジュールからメモリのリクエストを上げるようにする。

BIUが奇数番地のIPを持つときには、プリフェッチは初回はバイト読み出しで、2回目以降をワード読み出しとする。

プリフェッチモジュールはデータが用意できたら、QueueReadyとともに、先頭データを出力し、データを受け渡すごとに、1バイトずつ新しいデータに更新する。

Older Posts »

Powered by WordPress