Mercurial > hg > CbC > old > device
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 ... |