
No.3ベストアンサー
- 回答日時:
★アドバイス
・過去に似たような質問が別カテゴリでありました。参考に。
http://oshiete1.goo.ne.jp/qa3495084.html→『数式から不要なカッコを取り除く方法』
LL法について
http://ja.wikipedia.org/wiki/LL%E6%B3%95→『LL法』
構文解析について
(a)http://ja.wikipedia.org/wiki/%E6%A7%8B%E6%96%87% …→『構文解析』
(b)http://ja.wikipedia.org/wiki/%E5%86%8D%E5%B8%B0% …→『再帰下降構文解析』
(b)にはソースが載っています。
・最初は『再帰的な式評価』が簡単だと思います。
下に紹介する『C言語による実用アルゴリズム入門』もお勧めです。
基本的にアルゴリズムの本ですが、ここに式評価や簡単な多倍長演算のソースなどが
載っています。電卓プログラムで参考になる1冊です。ぜひ。どうぞ。
本の紹介:
(1)http://www.amazon.co.jp/dp/4797328290/→『C言語による実用アルゴリズム入門』
この本の『Chapter7 式の処理』で
7.1 トークン解析
7.2 逆ポーランド記法を使う式の解析
7.3 逆ポーランド記法の式評価
7.4 再帰的な方法による式の解析
7.5 電卓のプログラム
となっています。
(2)http://www.amazon.co.jp/dp/4839919232/→『いまどきのプログラム言語の作り方』
こちらは本格的な書籍です。
・以上。参考に。
参考URL:http://www.amazon.co.jp/dp/4797328290/
No.4
- 回答日時:
下記の本をお勧めします。
ソースコードがついています。
Modula2ですが
C++へのが変更可能です。
マイクロコンピュータのための
「コンパイラ・コンパイラ」
~ コンパイラ自動生成にむけて ~
P.レッヒェンベルク
H.メッセンベック 著
玉井 浩(大妻女子大学教授) 訳
定価:3,990円(本体3,800円+税)
発行:サイエンス社
発行日:1991-02-01
ISBN 978-4-7819-0607-2 / A5判/432頁
No.2
- 回答日時:
本格的なパーサは、コンパイラやインタプリタなどの言語を作る時に使うのが普通ですね。
関数も無いような簡単な計算式でしたら自力で構文解析プログラムを作ったほうが早いですよ。こんなのとか↓
http://ruffnex.oc.to/kenji/src/dentaku2.c
たしかにパーサで電卓を作っている例も結構ありますので、挑戦してみるのも良いかもしれません。
yacc/lexというプログラムを使います。
http://kmaebashi.com/programmer/devlang/yacclex. …
こちらの方が覚えることは多いです。
どちらが良いかは、どこまでの機能を作るかで決まります。
この回答へのお礼
お礼日時:2007/12/05 08:01
回答ありがとうございます。
パーサのことを知らなかったので自分で作ろうとしたのですが、
途中で挫折し、色々調べているうちに、パーサにたどり着きました。
if, exp, log, max, min やいくつかのオリジナルの関数などを入れたいと考えています。
No.1
- 回答日時:
パーサとは構文解析器のことをいい、
CやC++、Java、XMLなどさまざまな種類あります。
言語仕様にも絡んでくると思います。
計算式というのはどのような仕様なのでしょうか?
とりあえず、どういうものか。
http://ysserve.int-univ.com/sugsi/Lecture/syntco …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DLLファイルの逆コンパイラにつ...
-
unsigned long long 型のフォー...
-
組み込みソフト。ROM領域にデータ
-
H8/3664でのEEPROMの使用について
-
COBOLの論理演算子について質問...
-
cc と gcc の違い
-
turbo-Cとturbo-C++
-
エディタとコンパイラ 基礎
-
COBOL計算式の中間ワーク桁数に...
-
C++を始めるにあたって
-
N88 BASICのコンパイラ
-
python エラー
-
ASP.NETのDLL入れ替えについて
-
バッチからsqlplusの接続エラー...
-
multiple definitionというエラー
-
DXライブラリ3D導入方法
-
MO, PO, POT, ファイルの開き方...
-
WindowsからLinuxへの移植
-
SQLServerについて
-
適切な変換関数が存在しない???
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DLLファイルの逆コンパイラにつ...
-
unsigned long long 型のフォー...
-
ソフトの開発言語を調べる方法
-
組み込みソフト。ROM領域にデータ
-
C++でデスクトップGUIアプリ開...
-
パーサとコンパイラの違いって?
-
【C言語】 型のサイズについて
-
COBOLのALPHABET...
-
<conio.h>?
-
printfなど、標準関数のソース...
-
COBOLの論理演算子について質問...
-
cc と gcc の違い
-
DLLの呼び出され方が分かりません
-
AIXとCOBOLについて
-
PICマイコンのプログラムカウン...
-
リリースモードとデバッグモー...
-
C++Builder → Visual C++ 移植...
-
C++DLLの明示的リンクに関して
-
cobolで実行環境って何ですか?
-
C言語の規格
おすすめ情報