前のページ 次のページ
Q&Aコーナーに回答しました 投稿者:徳丸  投稿日: 9月 4日(月)23時35分05秒

相模さん、こんにちは。
回答はQ&Aのコーナーに書きましたが、ご指摘通り「ポーランド記法」というのが正解です。
書きのURLにてご覧下さい。

http://www.tokumaru.org/QA/lsic86-tcode.htm


式表記 投稿者:相模隆明  投稿日: 9月 4日(月)08時31分06秒

LSI−Cの中間コードを見ていて思ったのですが、式の表記がはじめてみる形です。
逆ポーランド記法に似ていますが、演算子が先にかかれています。
もしかしてこれは「ポーランド記法」なんだろうか?
「逆ポーランド記法」の「逆」ってなんだろうと思っていましたがこういう事なのでしょうか?
知ってる方がいたら教えてください。


掲示板 投稿者:徳丸  投稿日: 8月11日(金)16時36分03秒

席亭の徳丸です。

安いレンタルサーバー(CGI可)のお試し版というのを使い始めたので、掲示板を自作のもの
に移行しようと思っているのですが、Perlはあんまし詳しくない(でもプログラミングは好き
だから自分で作りたい)ので、掲示板のファイル構造をどうしようかと迷っています。今考え
ているのは、いわゆる2ch方式の簡易版で、スレッドごとにコメントをつけられる(但しコメ
ントのコメントはできない)ようなものです。

 SQLは使えないサーバーなので、ファイルでやるしかありませんが、ふつー、こういうのは
どういうファイル構造を取るものですかね。スレッド毎にディレクトリを作ろうかとね思うの
ですが、ちょっと重いような気もします。
 掲示板CGIのソースはそこらじゅうで手に入りますが、設計情報はあまり見かけないのです。
ご存知の方は教えていただけませんか?URLとかでも結構です。

http://www.tokumaru.org/


そういうことでしたか 投稿者:徳丸  投稿日: 8月 1日(火)12時33分45秒

〉 int rinf = TRACE(引数) ;
〉という形式で挿入すれば、宣言文の間に入れてもコンパイルエラーも出ず、問題なく動きます。

そういうことですか。ようやく分かりました。要は、各関数の先頭でTRACE関数(マクロか?)
が実行できれば良いのですね。
であれば、関数定義の位置さえわかればよいので、これはRatforプリプロセッサと似た実装は
できそうな気がします。

http://www.tokumaru.org/


レスありがとうございます 投稿者:ももくり3年  投稿日: 8月 1日(火)11時08分45秒


>>あることというのは、既存のソースファイルにトレース文を自動挿入するツールを
>>作成することです。入れる場所は各モジュールの宣言文と実行文の間。
>
>これって、プロファイラのようなものでしょうか?しかし、ターゲット言語が、
>Cは良いとして、C++になると「宣言文と実行文の間」っていうのが、そもそもあり?
>と思ってしまいました。
>

C++は問題ありません。困難だったのはCなんですが、NET上である情報を
頂き、解決できそうです。
方法は、
 int rinf = TRACE(引数) ;
という形式で挿入すれば、宣言文の間に入れてもコンパイルエラーも出ず、問題なく動きます。

>1ファイル複数モジュールの場合もあるので、それにも対応する。
>
>これ自体は難しくなさそうですね。モジュール=関数と考えて良いのでしょうか?
>
そうです。
上記手法で問題を1つ解決できたので、あとはモジュール名とモジュールの位置さえ
検索できれば障害をクリアできます。
何か具体的にいい手法をお知りでしたら是非教えて下さい。

>ひょっとしてもうお読みになっているかもしれませんが、カーニハン達が書いた「ソフト
>ウェア作法」という本の中に、Ratforプリプロセッサの作り方が載っています。これは、
>Ratforという構造化FortranをFortran IV(77以前の)に変換するものです。作り方として
>は、構文全てを解析しないで、必要最小限だけやっています。
> これなんか、参考になるかもしれません。
>
本屋で探してみます。


「ソフトウェア作法」なんかが参考になるかもしれません 投稿者:徳丸  投稿日: 7月29日(土)19時22分08秒

ももくり3年さん、はじめまして。席亭の徳丸です。

〉あることをやりたくて、いろいろ探しているうちにここへたどり着きました。

ようこそいらっしゃいました(^_^)

〉あることというのは、既存のソースファイルにトレース文を自動挿入するツールを
〉作成することです。入れる場所は各モジュールの宣言文と実行文の間。

これって、プロファイラのようなものでしょうか?しかし、ターゲット言語が、
Cは良いとして、C++になると「宣言文と実行文の間」っていうのが、そもそもあり?
と思ってしまいました。

〉1ファイル複数モジュールの場合もあるので、それにも対応する。

これ自体は難しくなさそうですね。モジュール=関数と考えて良いのでしょうか?

〉また、モジュール名の検索も行う。
〉ってまあざっとこんな感じなのですが、これってほとんんどコンパイラに
〉近いものを作らないと無理なのかなって思いはじめました。

確かにそうですねぇ。

〉現在は四苦八苦してファイルを行単位で読み込んで、コメントスキップや宣言文判断等の
〉処理を作って試してはいますが、なかなかうまくいきません。

ターゲット言語がCやC++だと、typedefがあるのでやっかいですね。正攻法でやるなら、
ちゃんと構文解析をするはめになると思います。C/C++のパーサーを探してきて、改造する
くらいしか思いつきませんね。

〉どなたか、いい方法を知っていたら教えて下さい。

ひょっとしてもうお読みになっているかもしれませんが、カーニハン達が書いた「ソフト
ウェア作法」という本の中に、Ratforプリプロセッサの作り方が載っています。これは、
Ratforという構造化FortranをFortran IV(77以前の)に変換するものです。作り方として
は、構文全てを解析しないで、必要最小限だけやっています。
 これなんか、参考になるかもしれません。

 あとは、ターゲットのファイルに制約をつけるかですねぇ。C/C++の文法全てを許すとな
ると、yaccで作っても結構厄介です。typedefの扱いが面倒なんです。まさか、typedefを
許さないというわけにもいかないでしょうしねぇ(C++の場合はclassも使えなくなる・・・
非現実的です)。

http://www.tokumaru.org/


はじめまして 投稿者:ももくり3年  投稿日: 7月28日(金)17時43分11秒

あることをやりたくて、いろいろ探しているうちにここへたどり着きました。

あることというのは、既存のソースファイルにトレース文を自動挿入するツールを
作成することです。入れる場所は各モジュールの宣言文と実行文の間。
1ファイル複数モジュールの場合もあるので、それにも対応する。また、モジュール
名の検索も行う。ってまあざっとこんな感じなのですが、これってほとんんどコンパイラに
近いものを作らないと無理なのかなって思いはじめました。
現在は四苦八苦してファイルを行単位で読み込んで、コメントスキップや宣言文判断等の
処理を作って試してはいますが、なかなかうまくいきません。

どなたか、いい方法を知っていたら教えて下さい。
対象ファイルはC及びC++です。
よろしくお願いします。


URLどーも 投稿者:徳丸  投稿日: 7月23日(日)22時16分06秒

Issonさん、URLを調べてくれて、ありがとうございます。
さっそくこれから・・・と言いたいところですが、急遽海外出張が入ったものですから、
ちょっとすぐには手がつきそうにありません。PCは持っていく予定なので、見れないことは
ないですが・・・どうなりますやら(^^;

まずはお礼まで

http://www.tokumaru.org/


URLわかりました 投稿者:Isson  投稿日: 7月22日(土)23時25分02秒

徳丸さん、こんにちは。
うちのHDDをいろいろ漁っていたらreadme.txtがでてきました。
そのなかにURLが書かれていたのでお知らせしますね。

http://www.it.uq.edu.au/groups/csm/dcc.html


re: 逆コンパイラ 投稿者:徳丸  投稿日: 7月22日(土)06時59分26秒

Issonさん、お久しぶりです。

〉逆コンパイラらしきもの?ならソースがありますよ。どこで見つけたか忘れましたけど。
〉(Generates C code for each procedure.の記述がある)
〉ソースをDLしてコンパイルしてみたのですが使い方が分かりませんでした。
〉ちょっと僕では手に負えないんですが、誰か見てもらえませんか

これは見てみたいですねぇ。URLはわからなくなったんですよね。
もしサイズが大きいものでなかったら、メールかなにかで送ってもらえませんか?
もちろん、再配布条件にもよるでしょうが・・・

http://www.tokumaru.org/


前のページ 次のページ