[BACK]Return to asir.texi CVS log [TXT][DIR] Up to [local] / OpenXM / src / asir-doc / parts

Diff for /OpenXM/src/asir-doc/parts/asir.texi between version 1.9 and 1.15

version 1.9, 2003/11/27 12:08:58 version 1.15, 2004/07/03 15:50:34
Line 1 
Line 1 
 @comment $OpenXM: OpenXM/src/asir-doc/parts/asir.texi,v 1.8 2003/10/21 09:17:57 takayama Exp $  @comment $OpenXM: OpenXM/src/asir-doc/parts/asir.texi,v 1.14 2003/12/21 17:36:29 ohara Exp $
 \BJP  \BJP
 @node $B%f!<%68@8l(B Asir,,, Top  @node $B%f!<%68@8l(B Asir,,, Top
 @chapter $B%f!<%68@8l(B Asir  @chapter $B%f!<%68@8l(B Asir
Line 227  Use of lists enables to write programs more easily, sh
Line 227  Use of lists enables to write programs more easily, sh
 comprehensible than use of structure like C programs.  comprehensible than use of structure like C programs.
 \E  \E
   
   \BJP
 @item  @item
   $B%f!<%6Dj5AH!?t$K$*$1$k0l9T%X%k%W(B.  Emacs-Lisp $B$KN`;w$7$?5!G=$G$"$k(B.
   $B>\$7$/$O(B, @xref{$B%f!<%6Dj5AH!?t(B} $B$r8+$h(B.
   \E
   
   @item
 \JP $B%f!<%6Dj5AH!?t$K$*$1$k%*%W%7%g%s;XDj(B.  \JP $B%f!<%6Dj5AH!?t$K$*$1$k%*%W%7%g%s;XDj(B.
 \EG Options can be specified in calling user defined functions.  \EG Options can be specified in calling user defined functions.
   
Line 236  comprehensible than use of structure like C programs.
Line 242  comprehensible than use of structure like C programs.
 @end itemize  @end itemize
   
 \BJP  \BJP
   @noindent
   Asir $B$G$O<!$N8l6g$,%-!<%o!<%I$H$7$FDj$a$i$l$F$$$k(B.
   @itemize
   @item C $B8@8l$KM3Mh(B:
   
   @code{break}, @code{continue}, @code{do}, @code{else}, @code{extern},
   @code{for}, @code{if}, @code{return}, @code{static}, @code{struct},
   @code{while}
   @item C $B8@8l$+$i$N3HD%(B:
   
   @code{def}, @code{endmodule}, @code{function}, @code{global},
   @code{local}, @code{localf}, @code{module}
   @item $BH!?t(B:
   
   @code{car}, @code{cdr}, @code{getopt}, @code{newstruct}, @code{map},
   @code{pari}, @code{quote}, @code{recmap}, @code{timer}
   @end itemize
   \E
   
   \BJP
 @node $B%f!<%6Dj5AH!?t$N=q$-J}(B,,, $B%f!<%68@8l(B Asir  @node $B%f!<%6Dj5AH!?t$N=q$-J}(B,,, $B%f!<%68@8l(B Asir
 @section $B%f!<%6Dj5AH!?t$N=q$-J}(B  @section $B%f!<%6Dj5AH!?t$N=q$-J}(B
 \E  \E
Line 371  In the second example, @code{c(N)} returns a vector, s
Line 397  In the second example, @code{c(N)} returns a vector, s
 @code{N+1}.  @code{A[I]} is a vector of length @code{I+1}, and  @code{N+1}.  @code{A[I]} is a vector of length @code{I+1}, and
 each element is again a vector which contains  each element is again a vector which contains
 \E  \E
   @iftex
   @tex
   ${_I}C_J$
   @end tex
   @end iftex
   @ifinfo
   ICJ
   @end ifinfo
   \JP $B$rMWAG$H$9$kG[Ns$G$"$k(B.
   \EG as its elements.
   
 @noindent  @noindent
 \BJP  \BJP
Line 378  each element is again a vector which contains
Line 414  each element is again a vector which contains
 Emacs-Lisp $B$N4X?tDj5A$KN`;w$N5!G=$G!"%X%k%WMQ$NJ8;zNs$G$"$k!#(B  Emacs-Lisp $B$N4X?tDj5A$KN`;w$N5!G=$G!"%X%k%WMQ$NJ8;zNs$G$"$k!#(B
 $B$3$NNc$N>l9g!"(B@code{help(add)} $B$K$h$C$F$3$NJ8;zNs$,=PNO$5$l$k!#(B  $B$3$NNc$N>l9g!"(B@code{help(add)} $B$K$h$C$F$3$NJ8;zNs$,=PNO$5$l$k!#(B
 \E  \E
   
 @table @t  @table @t
 \JP @item $B;2>H(B  \JP @item $B;2>H(B
 \EG @item References  \EG @item References
 @fref{help}.  @fref{help}.
 @end table  @end table
   
 @iftex  
 @tex  
 ${_I}C_J$  
 @end tex  
 @end iftex  
 @ifinfo  
 ICJ  
 @end ifinfo  
 \JP $B$rMWAG$H$9$kG[Ns$G$"$k(B.  
 \EG as its elements.  
   
 @noindent  @noindent
 \BJP  \BJP
 $B0J2<$G$O(B, C $B$K$h$k%W%m%0%i%_%s%0$N7P83$,$J$$?M$N$?$a$K(B, @b{Asir} $B8@8l(B  $B0J2<$G$O(B, C $B$K$h$k%W%m%0%i%_%s%0$N7P83$,$J$$?M$N$?$a$K(B, @b{Asir} $B8@8l(B
Line 462  All the program variables are initialized to the value
Line 486  All the program variables are initialized to the value
   
 \BJP  \BJP
 @item $BITDj85(B  @item $BITDj85(B
 $B>.J8;z$G;O$^$j(B, $B%"%k%U%!%Y%C%H(B, $B?t;z(B, @samp{_} $B$+$i$J$kJ8;zNs(B  $B>.J8;z$G;O$^$j(B, $B%"%k%U%!%Y%C%H(B, $B?t;z(B, @samp{_} $B$+$i$J$kJ8;zNs(B,
   $B$^$?$O%7%s%0%k%/%*!<%H$G0O$^$l$?J8;zNs(B, $B$b$7$/$OH!?t7A<0(B.
 $BITDj85$H$O(B, $BB?9`<04D$r9=@.$9$k:]$KE:2C$5$l$kJQ?t$r$$$&(B. @b{Asir} $B$K(B  $BITDj85$H$O(B, $BB?9`<04D$r9=@.$9$k:]$KE:2C$5$l$kJQ?t$r$$$&(B.  @b{Asir} $B$K(B
 $B$*$$$F$O(B, $BITDj85$OCM$r$b$?$J$$D61[E*$J85$G$"$j(B, $BITDj85$X$NCM$NBeF~$O(B  $B$*$$$F$O(B, $BITDj85$OCM$r$b$?$J$$D61[E*$J85$G$"$j(B, $BITDj85$X$NCM$NBeF~$O(B
 $B5v$5$l$J$$(B.  $B5v$5$l$J$$(B.
 \E  \E
Line 483  An indeterminate cannot have any value.  No assignment
Line 507  An indeterminate cannot have any value.  No assignment
 x  x
 [4] X^2+X+1;  [4] X^2+X+1;
 x^2+x+1  x^2+x+1
   [5] A='Dx'*(x-1)+x*y-y;
   (y+Dx)*x-y-Dx
   [6] function foo(x,y);
   [7] B=foo(x,y)*x^2-1;
   foo(x,y)*x^2-1
 @end example  @end example
 @end table  @end table
   
Line 862  if ( expression1 ) @{
Line 891  if ( expression1 ) @{
 @noindent  @noindent
 \JP $B$H$7$J$1$l$P$J$i$J$$(B.  \JP $B$H$7$J$1$l$P$J$i$J$$(B.
   
   \BJP
   @noindent
   $B4X?t$NCf$G$J$/(B, top level $B$G(B @code{if} $BJ8$rMQ$$$k$H$-$O(B @code{$} $B$^$?$O(B @code{;}
   $B$G=*N;$9$kI,MW$,$"$k(B.
   $B$3$l$i$,$J$$$H<!$NJ8$,$h$_$H$P$5$l$k(B.
   \E
   \BEG
   @noindent
   When @code{if} is used in the top level, the @code{if} expression should be
   terminated with @code{$} or @code{;}.
   If there is no terminator, the next expression will be skipped to be evaluated.
   \E
   
 \BJP  \BJP
 @node $B%k!<%W(B break return continue,,, $B%f!<%6Dj5AH!?t$N=q$-J}(B  @node $B%k!<%W(B break return continue,,, $B%f!<%6Dj5AH!?t$N=q$-J}(B
 @subsection $B%k!<%W(B, @code{break}, @code{return}, @code{continue}  @subsection $B%k!<%W(B, @code{break}, @code{return}, @code{continue}
Line 1029  statement, and the termination condition will be evalu
Line 1071  statement, and the termination condition will be evalu
 \BJP  \BJP
 $B9=B$BN$H$O(B, $B3F@.J,$NMWAG$,L>A0$G%"%/%;%9$G$-$k8GDjD9G[Ns$H;W$C$F$h$$(B.  $B9=B$BN$H$O(B, $B3F@.J,$NMWAG$,L>A0$G%"%/%;%9$G$-$k8GDjD9G[Ns$H;W$C$F$h$$(B.
 $B3F9=B$BN$OL>A0$G6hJL$5$l$k(B. $B9=B$BN$O(B, @code{struct} $BJ8$K$h$j@k8@$5$l$k(B.  $B3F9=B$BN$OL>A0$G6hJL$5$l$k(B. $B9=B$BN$O(B, @code{struct} $BJ8$K$h$j@k8@$5$l$k(B.
   $B9=B$BN$,@k8@$5$l$k$H$-(B, asir $B$OFbIt$G9=B$BN$N$=$l$>$l$N7?$K8GM-$N<1JL(B
   $BHV9f$r$D$1$k(B.  $B$3$NHV9f$O(B, $BAH$_9~$_4X?t(B @code{struct_type} $B$K$h$j<hF@(B
   $B$G$-$k(B.
 $B$"$k7?$N9=B$BN$O(B, $BAH$_9~$_4X?t(B @code{newstruct} $B$K$h$j@8@.$5$l$k(B.  $B$"$k7?$N9=B$BN$O(B, $BAH$_9~$_4X?t(B @code{newstruct} $B$K$h$j@8@.$5$l$k(B.
 $B9=B$BN$N3F%a%s%P$O(B, $B1i;;;R(B @code{->} $B$K$h$j%"%/%;%9$9$k(B.  $B9=B$BN$N3F%a%s%P$O(B, $B1i;;;R(B @code{->} $B$K$h$j%"%/%;%9$9$k(B.
 $B%a%s%P$,9=B$BN$N>l9g(B, @code{->} $B$K$h$k;XDj$OF~$l;R$K$G$-$k(B.  $B%a%s%P$,9=B$BN$N>l9g(B, @code{->} $B$K$h$k;XDj$OF~$l;R$K$G$-$k(B.
Line 1055  by @code{->} can be nested.
Line 1100  by @code{->} can be nested.
 2  2
 [5] A;  [5] A;
 @{1,2@}  @{1,2@}
   [6] struct_type(A);
   1
 @end example  @end example
   
   @table @t
   \JP @item $B;2>H(B
   \EG @item References
   @fref{newstruct}, @fref{struct_type}
   @end table
   
 \BJP  \BJP
 @node $B$5$^$6$^$J<0(B,,, $B%f!<%6Dj5AH!?t$N=q$-J}(B  @node $B$5$^$6$^$J<0(B,,, $B%f!<%6Dj5AH!?t$N=q$-J}(B
 @subsection $B$5$^$6$^$J<0(B  @subsection $B$5$^$6$^$J<0(B
Line 1226  through @code{cpp}.  This enables @b{Asir} user to use
Line 1279  through @code{cpp}.  This enables @b{Asir} user to use
 @code{#include}  @code{#include}
 @*  @*
 \BJP  \BJP
 @code{cpp} $B$KFC$K0z?t$rEO$5$J$$$?$a(B, $B%$%s%/%k!<%I%U%!%$%k$O(B,  UNIX $B$G$O(B $B%$%s%/%k!<%I%U%!%$%k$O(B, Asir $B$N%i%$%V%i%j%G%#%l%/%H%j(B
 @code{#include} $B$,=q$+$l$F$$$k%U%!%$%k$HF1$8%G%#%l%/%H%j$G%5!<%A$5$l$k(B.  ($B4D6-JQ?t(B @b{ASIR_LIBDIR} $B$G;XDj$5$l$?%G%#%l%/%H%j(B)
   $B$H(B @code{#include} $B$,=q$+$l$F$$$k%U%!%$%k$HF1$8%G%#%l%/%H%j$r%5!<%A$9$k(B.
   UNIX $B0J30$G$O(B @code{cpp} $B$KFC$K0z?t$rEO$5$J$$$?$a(B,
   @code{#include} $B$,=q$+$l$F$$$k%U%!%$%k$HF1$8%G%#%l%/%H%j$N$_$r%5!<%A$9$k(B.
 \E  \E
 \BEG  \BEG
 Include files are searched within the same directory as the file  Include files are searched within the same directory as the file
Line 1296  because such comments cannot be nested.
Line 1352  because such comments cannot be nested.
 #define MAX(a,b) ((a)>(b)?(a):(b))  #define MAX(a,b) ((a)>(b)?(a):(b))
 @end example  @end example
   
   \BJP
   @noindent
   C $B$N%W%j%W%m%;%C%5$rN.MQ$7$F$$$k$?$a(B, $B%W%j%W%m%;%C%5$O(B @code{$} $B$r@5$7$/=hM}$G$-$J$$(B.
   $B$?$H$($P(B @code{LIST} $B$,Dj5A$5$l$F$$$F$b(B
   @code{LIST$}$B$OCV49$5$l$J$$(B. @code{$} $B$NA0$K6uGr$r$*$$$F(B
   @code{LIST $} $B$H=q$+$J$$$H$$$1$J$$(B.
   \E
   \BEG
   @noindent
   Since we are utilizing the C preprocessor, it cannot properly preprocess expressions
   with @code{$}.
   For example, even if @code{LIST} is defined, @code{LIST} in the expression
   @code{LIST$} is not replaced.  Add a blank before @code{$}, i.e.,
   write as @code{LIST $} to make the proprocessor replace it properly.
   \E
   
 \BJP  \BJP
 @node $B%*%W%7%g%s;XDj(B,,, $B%f!<%6Dj5AH!?t$N=q$-J}(B  @node $B%*%W%7%g%s;XDj(B,,, $B%f!<%6Dj5AH!?t$N=q$-J}(B
Line 1380  After @samp{|} one can append any number of options se
Line 1451  After @samp{|} one can append any number of options se
 [100] xxx(1,2,x^2-1,[1,2,3]|proc=1,index=5);  [100] xxx(1,2,x^2-1,[1,2,3]|proc=1,index=5);
 @end example  @end example
   
   \BJP
   $B$5$i$K(B, $B%*%W%7%g%s$r(B @code{key1=value1,key2=value2,...} $B$N$h$&$K(B
   @samp{,} $B$G6h@Z$C$FEO$9Be$o$j$K(B, $BFCJL$J%-!<%o!<%I(B @code{option_list}
   $B$H%*%W%7%g%s%j%9%H(B @code{[["key1",value1],["key2",value2],...]}
   $B$rMQ$$$FEO$9$3$H$b2DG=$G$"$k(B.
   
   @example
   [101] dp_gr_main([x^2+y^2-1,x*y-1]|option_list=[["v",[x,y]],["order",[[x,5,y,1]]]]);
   @end example
   
   $BFC$K(B, $B0z?t$J$7$N(B @code{getopt()} $B$O%*%W%7%g%s%j%9%H$rJV$9$N$G(B,
   $B%*%W%7%g%s$r$H$k4X?t$+$i(B, $B%*%W%7%g%s$r$H$k4X?t$r8F$S=P$9$H$-$K$OM-MQ$G$"$k(B.
   
   @example
   % cat foo.rr
   def foo(F)
   @{
       OPTS=getopt();
       return factor(F|option_list=OPTS);
   @}
   @end example
   
   @example
   [3] load("foo.rr")$
   [4] foo(x^5-1|mod=11);
   [[1,1],[x+6,1],[x+2,1],[x+10,1],[x+7,1],[x+8,1]]
   @end example
   \E
   
 \BJP  \BJP
 @node $B%b%8%e!<%k(B,,, $B%f!<%6Dj5AH!?t$N=q$-J}(B  @node $B%b%8%e!<%k(B,,, $B%f!<%6Dj5AH!?t$N=q$-J}(B
 @subsection $B%b%8%e!<%k(B  @subsection $B%b%8%e!<%k(B
Line 1437  def demo() @{
Line 1536  def demo() @{
   
 \BJP  \BJP
 $B%b%8%e!<%k$O(B @code{module} $B%b%8%e!<%kL>(B  $B!A(B @code{endmodule}$B$G0O$`(B.  $B%b%8%e!<%k$O(B @code{module} $B%b%8%e!<%kL>(B  $B!A(B @code{endmodule}$B$G0O$`(B.
   $B%b%8%e!<%k$OF~$l;R$K$O$G$-$J$$(B.
 $B%b%8%e!<%k$NCf$@$1$G;H$&Bg0hJQ?t$O(B @code{static} $B$G@k8@$9$k(B.  $B%b%8%e!<%k$NCf$@$1$G;H$&Bg0hJQ?t$O(B @code{static} $B$G@k8@$9$k(B.
 $B$3$NJQ?t$O%b%8%e!<%k$N30$+$i$O;2>H$b$G$-$J$$$7JQ99$b$G$-$J$$(B.  $B$3$NJQ?t$O%b%8%e!<%k$N30$+$i$O;2>H$b$G$-$J$$$7JQ99$b$G$-$J$$(B.
 $B%b%8%e!<%k$N30$NBg0hJQ?t$O(B @code{extern} $B$G@k8@$9$k(B.  $B%b%8%e!<%k$N30$NBg0hJQ?t$O(B @code{extern} $B$G@k8@$9$k(B.
Line 1566  module stack;
Line 1666  module stack;
   /* The body of the module stack */    /* The body of the module stack */
 endmodule;  endmodule;
 @end example  @end example
   
   @table @t
   \JP @item $B;2>H(B
   \EG @item References
   @fref{module_list}, @fref{module_definedp}, @fref{remove_module}.
   @end table

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.15

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>