=================================================================== RCS file: /home/cvs/OpenXM/src/asir-doc/exp/exp-ja.texi,v retrieving revision 1.18 retrieving revision 1.22 diff -u -p -r1.18 -r1.22 --- OpenXM/src/asir-doc/exp/exp-ja.texi 2004/11/24 23:00:23 1.18 +++ OpenXM/src/asir-doc/exp/exp-ja.texi 2005/07/26 05:31:52 1.22 @@ -1,4 +1,4 @@ -%% $OpenXM: OpenXM/src/asir-doc/exp/exp-ja.texi,v 1.17 2004/11/23 12:41:12 takayama Exp $ +%% $OpenXM: OpenXM/src/asir-doc/exp/exp-ja.texi,v 1.21 2005/07/25 12:23:05 takayama Exp $ \input texinfo @iftex @catcode`@#=6 @@ -38,7 +38,7 @@ @title 実験的仕様の関数 @subtitle Risa/Asir 実験的仕様関数説明書 @subtitle 1.0 版 -@subtitle 2004 年 7 月 +@subtitle 2005 年 5 月 @author by Risa/Asir committers @page @@ -124,9 +124,11 @@ ChangeLog の項目は www.openxm.org の cvswe * sprintf:: * quote_to_funargs:: * funargs_to_quote:: +* get_function_name:: * remove_paren:: * set_secure_mode:: * set_secure_flag:: +* initialize_static_variable:: @end menu @comment --- ◯◯◯◯ 関数 quotetotex, quotetotex_env の説明 ◯◯◯◯ @@ -1081,13 +1083,13 @@ ChangeLog @end itemize -@node quote_flatten,,, 実験的仕様の関数 -@subsection @code{quote_flatten} -@findex quote_flatten +@node flatten_quote,,, 実験的仕様の関数 +@subsection @code{flatten_quote} +@findex flatten_quote @comment --- 関数の簡単な説明 --- @table @t -@item quote_flatten(@var{q},@var{op}) +@item flatten_quote(@var{q},@var{op}) :: quote の括弧をとりさる. @end table @@ -1110,8 +1112,11 @@ Quote 型のデータは木構造をしている たとえば (1+2)+(3+4) という表現を 1+2+3+4 に変換する. @item 現在の実装では n-ary の演算子は定義されていないので, - 1+2+3 は実は (1+2)+3 と表現されている. - つまり + 演算子は左結合的である. + 1+2+3 は実は 1+(2+3) と表現されている. + つまり + 演算子は右結合的である. +@item R=0; for (I=0; I,<...quoted...>,<...quoted...>] +[1185] T=quote_to_funargs(quote(1+2)); +[0,<...quoted...>,<...quoted...>,<...quoted...>] +[1186] funargs_to_quote([0,R[1],R[2],T[2]]); +quote(a+1) +@end example + @table @t @item 参照 @ref{quotetolist} @@ -1333,8 +1370,6 @@ quote(f(1-x)) ChangeLog @itemize @bullet @item - このマニュアルは覚え書きである. 開発者が本格的なのを書くだろう. -@item これらの関数は 2004-7-8 から開発のはじまっている quote の simplification 関連 の実験的関数である. 変更をうけたソースコードは多岐にわたるのでまだ書かない. @@ -1343,6 +1378,8 @@ ChangeLog @item 2004-6-26 の計算代数セミナーにおいて, 中川さんが simplifier についていろいろ問題提起 をした (計算代数セミナービデオ参照). +@item parse/quote.c の {\tt strcut fid_spec fid_spec_tab[] } +の部分に書いてある形式に @code{funargs_to_quote} は変換する. @end itemize @node set_secure_flag,,, 実験的仕様の関数 @@ -1437,8 +1474,71 @@ cgi-asir.sh では 1.33 OpenXM_contrib2/asir2000/parse/parse.h @end itemize -@comment --- ◯◯◯◯ 以下他の関数について真似して記述する. ◯◯◯◯ +@node initialize_static_variable,,, 実験的仕様の関数 +@subsection @code{initialize_static_variable} +@findex initialize_static_variable + +@comment --- 説明 --- +@table @t +@item static 変数の初期化の問題点. 初期化の時に segmentation fault がおきる. +@end table + + +@itemize @bullet +@item static 変数の取扱. +下の例を参照のこと. +@end itemize + + +@example +if (1) @{ + module abc; + static A; + A=1; + endmodule; +@} else @{ @}; + +end$ +を t.rr とするとき, + +[6] load("./t.rr"); +1 +internal error (SEGV) +となる. + +t.rr を +if (1) @{ + module abc; + static A; + localf initA; + localf foo; + def initA() @{ + A=1; + @} + initA(); + def foo() @{ + return A; + @} + endmodule; +@} else @{ @}; + +end$ +とすると正しく初期化される. +@end example + +@comment --- ChangeLog +@noindent +ChangeLog +@itemize @bullet +@item oxasir-win.rr の取扱で問題点として浮上. 2005.07.25. +@item oxasir-win.rr の取扱で double quote の取り扱いに問題があったが, これは asir2000/io/ox_asir.c, 1.58, で問題点解決. +@item ox_asir に計算を依頼する時は if (1) @{ ... @}で囲む. +@end itemize + + +@comment **************************************************************** +@comment --- ◯◯◯◯ 以下他の関数について真似して記述する. ◯◯◯◯ @comment 新しい関数の説明を書くためのテンプレートである. 消すな. @comment --- ◯◯◯◯ 関数 syz_pqr, xyz_stu の説明 ◯◯◯◯ @comment --- 複数の関数をまとめて説明する例 --- @@ -1499,6 +1599,7 @@ ChangeLog 変更をうけたソースコードは xxxyy.rr, ppp.c である. @item この関数は 2000 頃にはじめてのバージョンが書かれた. ソースは ppp.c である. @end itemize +@comment **************************************************************** @comment --- おまじない --- @node Index,,, Top