• ベストアンサー

C言語のデバッガ及びプログラミングツールについてお聞きしたいのですが

私は只今,C言語の構文木を用いた教育支援システムの研究をしております.そこでお聞きしたいのですが,C言語のデバッガ,またはプログラミングツールで読み込んだソースコードの構文木を出力してくれるツールはありませんか?出力形式はどのようなものでもかまいません,そのソースコードの構文情報を抽出できるものであれば.心当たりのある方,どうぞご返信くださいますようお願い申し上げます.

質問者が選んだベストアンサー

  • ベストアンサー
  • alfeim
  • ベストアンサー率58% (114/195)
回答No.3

C/C++ではないのですがjjtreeという構文解析木操作ツールがJavaCC(御想像の通りJavaのツールです)に含まれているようです。yacc/lexとは違い、構文解析木を操作できるみたいなので、Javaで作ればOKなのではないかなぁと思います(^^; ただ、ツールの使い方等、いろいろ覚える事もあるでしょうから、素直に構文解析関連の書籍を読んで学習し、C/C++で作った方が楽だとは思いますが:-p

shizutaro
質問者

お礼

こんばんは,shizutaroです.何回も解答していただき,本当にありがとうございます,その上助言までしていただき,おかげで調査の時間をかなり短縮することが出来ました. 私が開発するシステムに関しては現在設計を行っており,具体的な内部設計は色々苦労しています.alfeimさんの助言は開発に向けて有効に使わせていただきます。 もし今後また何かありましたらよろしくお願いします.

その他の回答 (2)

  • alfeim
  • ベストアンサー率58% (114/195)
回答No.2

構文木を作成するツール自体はちょっと聞いた事が無いですね yaccの解析部分に手を入れる事で実現できると思いますが・・・ もしくは自分で構文解析プログラムを組むのは駄目なんでしょうか? ソースコードのサンプルであれば正規表現ライブラリで正規表現式の構文解析をして構文木を構築しているものがあるのでそれを参考にするとか出来ますが・・・

参考URL:
http://www.vector.co.jp/soft/dos/prog/se016610.html
shizutaro
質問者

お礼

二回にわたる回答のほうありがとうございます.どうやら私の調査でも見当たりませんでした.時間はどんどん流れていきますので,そろそろ,調査も終わりにして実際のシステム開発のほうにいこうとおもいます。わざわざありがとうございました.もし,今後再び掲示板のほうに書き込んだときは何かメッセージでも是非書き込んでください.それでは失礼します.

  • alfeim
  • ベストアンサー率58% (114/195)
回答No.1

これって構文木の解析ツールがほしいのでしょうか?それともデータ表示ツールですか? データに関しては知りません。普通はループでもぶん回してprintfあたりで出力というような方法を取ると思いますが・・・ 構文木解析についてはUNIXのツールでyacc/lex またはbison/flexというものがあります。どういうものかは検索エンジンか、本屋さんのUNIX系ツールあたりの棚を当たって見てください

shizutaro
質問者

補足

わざわざ,ご回答ありがとうございます.私の言葉が足りず,わかりづらい質問内容になってしまい申し訳ございませんでした.現在私が探しているツールは読み込んだソースコードの構文解析を行い,そのコード内容を構文木として再構築及び出力するものです.ない場合はgccないのyacc,lexファイルの解析アクション部に構文木を作成する仕掛けを組み込もうと考えています.もし,心当たりがございましたら,回答のほうよろしくお願いします.

関連するQ&A

  • プログラミングC言語 サイコロ問題

    プログラミングC言語の問題でC言語のrand関数を利用して33回のサイコロ型乱数を出力するプログラムを書きなさい。という問題が出ました。ソースコードを教えてください。

  • C言語コンパイラ・デバッガをご推薦ください

    いつも大変お世話になっています。 Windows 7を使って 計算シミュレーションを行っています。 コマンドプロンプト上で動く .exeプログラムでして テキストファイルを読み込み、テキストファイルで出力するだけのものです。 (他のプラットフォームで走らせるかもしれないので) 従来PERL言語で組んでいましたが、バグを作りこみやすいのと、デバッガがないので C言語に書き換えようと思っています。 1996年ごろ Visual C++という商品で、C言語のソースをコンパイルしデバッグしていました。 デバッガも申し分なかったですが、今は、どの製品がこれに相当しますか? 他社の製品でも、よいものあればご推薦ください。

  • プログラミング言語が何か教えてください><

    プログラミングのソースコード(?)を見つけ、いざ打ち込んでやってみよう!となったのですが、これが何言語(FORTRAN?PYTHON??C??)なのか分からなくてどうすればいいのか困っています>< プログラミングにお詳しい方、お助けください>< ちなみに、プログラミングに関してはほとんど何もわからない情弱男です。

  • C言語のプログラミング

    こちらのC言語の2つのプログラミングコードを教えていただきたいです。出来れば解説も教えて頂けると幸いです。

  • SQLの構文解析

    プログラミング初心者ですがよろしくお願いします。 SQL文の字句、構文解析を行いたいと思っていて、SQL文が書かれたテキストファイルを入力とし、構文木もしくはそれににた情報を出力できるようなものがほしいです。 どこかにSQL構文のパーサーのソースコードライブラリは無いでしょうか?できればフリーがいいです。 C言語やflex,bisonなどのソースコードがあればいいのですが探しても見つかりません。どなたかご存じありませんか?よろしくお願いします。

  • プログラミングで難しいと感じるところ

    今大学でプログラミング系の研究をしている者です。どこを支援すべきなのかを模索中です。 そこで、プログラミング教育の支援を行おうということで、一般的な本に書かれているここが難しいというのではなく、プログラミングを学ぶ学習者がプログラミングのどこが難しいと感じているのか知りたいのです。 言語はC言語なんでも構わないのですが、どういったところが難しいと感じているのかといったことを調査した論文等があれば教えてもらいたいです。いろいろ検索してみたのですがこれといったものがなくて・・・。また、論文等じゃなくてもホームページとか、個人の人がこう言ってるみたいなものでも多く集めて参考にしたいと思うのであればよろしくお願いします。

  • C言語のプログラミングについての質問です

    C言語の課題で数値を入力したらその数に40+して二乗するプログラミングを作りたいのですがソースがいまいちわかりません どなたかご教授お願いします

  • c言語プログラミングHELP!

    c言語でプログラムを組んでるんですが、どうしてもわからないものがありまして、 まず一つ目がキーボードから英小文字を一つ入力し、その文字を大文字に変換して出力するプログラミングです。結果がまずひとつの英小文字を入力して、入力した文字と、大文字に変換した文字を出力するプログラミングです。 ちなみにヒントは'a'=97,'A'=65です 二つ目が二桁の16進数('41'から'49','50'から'59')を入力すると対応する文字を表示するプログラミングです。また、%xは使用しないこと。なお、入力に間違いはないものとする。(ヒントは入力は一つの数値か、二つの文字か?だそうです。) 結果は二桁の16進数('41'から'49','50'から'59')を入力して、文字コードの二桁の数字と文字を出力するプログラミングです。 お願いします。

  • C言語を用いたプログラミングによる計測制御をしたいのですが…

    はじめまして。 僕は現在大学で電気電子系の研究をしているのですが、プログラミングについて教えていただきたいです。 僕の研究室では半導体デバイスの研究をしていまして、作製した試料の電流-電圧特性や、トランジスタ特性を測定しています。 今は、研究室の先生や過去の先輩たちが作成したプログラムを使っているのですが、今後は自分に必要な測定を自分でできるようになりたいと思っています。 やりたいことととしては、 (1)プログラミングによる測定器(KEITHLEYやADVANTESTのエレクトロメータを使用しています)の制御。 (2)測定中は測定データをリアルタイムでパソコン画面に出力して、特性の挙動を確認できるようにしたい。 (3)測定が終了したら、測定データをエクセルなどに取り込んで保存したい(データの解析等は別途グラフソフトがあるので必要ありません)。 計測器の制御はLabVIEWというグラフィックベースのプログラミングが有効というのを調べたことがあるのですが、これは導入するのにお金がかかってしまい現実的ではありません。 また、研究室のプログラミングはほとんどN88-BASICで書かれているのですが、研究室を卒業した後の応用も考えるとC言語を覚えるのが良いのかなと考えています。 しかしながら、プログラミングの経験は全くと言っていいほど無く、大学の授業で半期のプログラミングの基礎(C言語)の授業を受けたことがあるだけです。 そこで、質問は、 ・C言語で上記のような事をやるまでにはどれくらいの期間が必要か? ・また、プログラミングを始めるにあたり何かアドバイスなどありましたらお願い致します。 プログラミング自体は研究内容には直結してないため、そこまでプログラミングの勉強に時間を割ける訳ではないということも考慮に入れてご回答頂けると幸いです。 以上、長文で失礼しましたが、よろしくお願い致します。

  • C言語用ディファレンスツール?

    C/C++のソースの実ステップ部分のみのディファレンスを抽出してくれるツールはないでしょうか? コメントや空白行を除いた部分のみということです。 そんな都合のツールとかないような気もしますが、だめもとです。