comparison Changes @ 66:0b068058dd67

*** empty log message ***
author kono
date Sat, 22 Feb 2003 01:32:47 +0900
parents 262c8059e5df
children 254a0c576114
comparison
equal deleted inserted replaced
65:8ad746efa4f8 66:0b068058dd67
1635 1635
1636 むぅ。code-ia32 で結構はまった。あと、stack のアライメントが 1636 むぅ。code-ia32 で結構はまった。あと、stack のアライメントが
1637 ずれるみたい。6809では問題にならなかったんだけどね。 1637 ずれるみたい。6809では問題にならなかったんだけどね。
1638 leave で調整するべき。 1638 leave で調整するべき。
1639 1639
1640
1641 Thu Feb 20 14:42:46 JST 2003
1642
1643 c2cbc,cbc2c なんだけど、いったん、構文木にしてから変換すると、
1644 結構失われる情報があるけど、いいの? 特に局所変数の名前とか型
1645 の情報とか。macro もそうだけど。 indent ぐらい保存できないか
1646 なぁ。式の途中でfunction callする場合も取り扱う必要があるの
1647 で、構文木にしてから計算するしかないかな。gexpr の代わりに生
1648 成するようにするか。そうすると、修正するのは、statement と、
1649 gexpr になる。でも、結局、構文木で型を持ち歩くしかないんじゃ
1650 ないの? やっぱり変だよ。型の情報がないのは。
1651
1652 そうではなくて、exprN() で変換していく方法もある。この方が
1653 情報が欠落しないので楽だろう。そうすると、修正するのは、
1654 exprN(),doXXXX()
1655 となる。これは、量は多い。けど、まぁ、それだけ。この方が
1656 オリジナルを保存しやすい。
1657
1658 中間変数を途中で追加すると、宣言部を前もって出力できなく
1659 なる。{int a;...} を認めれば良いわけだど。実装は難しくない。
1660 じゃ、やれば? でも、汚くなるなあ。出力をいったんバッファ
1661 に貯めれば? どこに? cheapp ですか? 中間変数はいらないん
1662 じゃないの?
1663 a = g(i)+a;
1664 でしょ。
1665 goto g_1(i,f_1,save_a); }
1666 code g_1(i,f_1,save_a) { .... goto f_1(ret_value,save_a); }
1667 code f_1(ret_value,save_a) { a = ret_value+a; ...}
1668 じゃん。いらないじゃん。。
1669
1670
1671 型を表示するルーチンが必要だね。
1672
1673 めんどくさいなぁ。CbCのProlog version とかほしいなぁ。そうすれば、
1674 変換は簡単。でも、やろうとしてできなかったことでもあるな。
1675
1676
1677 Thu Feb 20 21:13:23 JST 2003
1678
1679 MC6809 の mc-codegen.c version は? (ちょっと虚しすぎる?)
1680 X と D で、use_data_register, use_pointer してやる。
1681 tosop で、X と D の間の足し算を特別扱いする。
1682 (なるほど...) MAX_MAX=0でうまく動くのか? やっぱり、1は
1683 いるよね。できれば、2だよね。
1684
1685 結構、浮動小数点も簡単かも。
1686
1687 汎用の書き換えツールも便利そう。
1688
1689 でも、Prolog version ってのも面白そう。
1690 code(name,interface(....)) :-
1691 p()....,goto(name,interface(....)).
1692 みたいな感じ? 結構、簡単にinterpreterを書けるかも知れない。
1693 これは、あれだね。thread diagram interpreter と似ている。
1694
1695 Fri Feb 21 13:34:17 JST 2003
1696
1697 構文要素での書き換えだけど、どれくらいの能力があるの?
1698 その場での書き換えだけだと、ちょっと低すぎない? それで、
1699 cbc2c,c2cbc はできるとは思う。
1700
1701 まぁいいけど.. chk を無視しているところが結構あるんですけど。
1702 jmp,enter,leave ...