2016年06月01日

5月度概況

access1605.jpg5月度のアクセス状況は、図のように、多少多い日も目立ちますが、まずはこれまでの変動の範囲内です。

今月度も、コンサルティング業務が立て込み、CodeSqueezer2.0関連の業務はなかなか思うように進みません。とはいえ、いくつかの点で前進しておりますので、簡単に書いておきましょう。

今月度検討したのは、リンク関係のデータ構造で、当初はリンク定義部分の構文解析とコード化までを仕上げる予定だったのですが、この部分は来月度に持ち越しとなっております。

リンクは、いずれかのブロック内で定義され、そのブロック内部でのみ参照可能です。class Blockには、内部で定義されたリンクのリスト「links」を用意して、この下にブロック内で定義されたリンクのリストを置くこととします。

コンパイラはトークンを順に読み込んで処理するのですが、名前が現れた時点では、これがリンクであるかリンクリストであるかを区別することができません。そこで、処理を簡単にするため、リンクとリンクリストは同じデータ構造で表現することとします。

このようなことを可能とするためには、class Linkには、リンクを構成する数値情報を格納するためのいくつかのclass Wireへのポインタと、それがリンクリストである場合にその要素であるリンクへのポインタリストchildrenを準備しておきます。コンパイラは、名前が現れた場合、いずれかの親の下にclass Linkを作って名前をセットする、というわけです。

コンパイラの処理を簡単にするため、class Blockに置かれるlinksは、class Linkとしておき、そのchildren部分にブロック内で定義されたリンクのリストを保持するようにいたします。

代入式左辺でリンクが定義された場合は、これをブロック内で定義されたリンクのリストに追加するとともに、代入先のリンクのリストとして別途保持する必要があります。

代入先左辺には、かっこで指定される一時的なリンクリストも記述可能であり、この場合は全体のリンクリストは、代入先リンクリストにのみ保存され、かっこの内部で定義された個々のリンクがブロックのリンクリストに追加されます。

一時的なリンクリストは、class LinkTreeとして、class Linkとは異なるデータ構造とします。class LinkTreeは、リンクを構成するWireに関する情報は持たず、ブロック内で定義されたリンクリストの特定のリンクに対するポインタをもちます。

ここまで決めておけば、あとは文法に従って機械的にデータ構造を形成すればよいはずなのですが、これにはそれなりの時間がかかり、その時間がとれないというのが今月度の問題でした。

DAシンポジウムのアブストラクト締め切りが6月24日となっており、かなり厳しい状況です。6月は比較的時間に余裕がある見通しではあるのですが、あまりいい加減な発表もできませんので、一定の見通しが得られない場合は発表を延期することといたします。

来年度に発表を延期するメリットは、来年度のHPCSも狙えるという点で、これはこれで魅力的でもあります。ここは、あまり深刻に考えず、できる範囲でやることといたします。

その他、今月度は、東京ビッグサイトで開催されました「組込みシステム開発技術展」をみてまいりました。最近はやりのIoT関連ということでかなりの人出ではありましたが、注目すべき展示は特に見当たりませんでした。とはいえ、この業界が活況を呈しているということ自体は、ありがたい話ではあります。
posted by 管理人 at 09:51| Comment(0) | TrackBack(0) | 日記
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/175513132

この記事へのトラックバック
Powered by さくらのブログ