% This file generates the user manual; TeX it, don't read it! \def\tangref{3} % where the main explanation of CTANGLing is given \input cwebmac \def\page{\box255 } \normalbottom \parskip 0pt plus 1pt \def\RA{\char'31 } % right arrow \def\hang{\hangindent 4em\ignorespaces} \font\eightrm=cmr8 \font\ninerm=cmr9 \font\ninett=cmtt9 \font\eighttt=cmtt8 \font\twelvett=cmtt12 \font\quoterm=cmssq8 \font\quoteit=cmssqi8 \font\authorfont=cmr12 \font\sectionfont=cmbx12 \def\pb{\.{|...|}} \def\v{\.{\char'174}} % vertical (|) in typewriter font \def\lpile{\def\cr{\hfill\endline}\matrix} % I only use \lpile by itself \abovedisplayskip=.5\abovedisplayskip \belowdisplayskip=.5\belowdisplayskip \abovedisplayshortskip=.5\abovedisplayshortskip \belowdisplayshortskip=.5\belowdisplayshortskip \advance\baselineskip by -.5pt \advance\pageheight by \baselineskip % the manual just got a bit longer \advance\fullpageheight by \baselineskip \setpage \outer\def\section #1.{\penalty-500\bigskip \centerline{\sectionfont\def\.##1{{\twelvett##1}} #1}\nobreak\vskip 6pt \everypar{\hskip-\parindent\everypar{}}} \def\lheader{\mainfont\the\pageno\hfill\sc\runninghead\hfill} \def\rheader{\hfill\sc\runninghead\hfill\mainfont\the\pageno} \def\runninghead{àãÚÞÒÞÔáâÒÞ ßÞÛì×ÞÒÐâÕÛï {\tentt CWEB} (ÒÕàáØï 3.0)} % This verbatim mode assumes that ! marks are !! in the text being copied. \def\verbatim{\begingroup \def\do##1{\catcode`##1=12 } \dospecials \parskip 0pt \parindent 0pt \let\!=! \catcode`\ =13 \catcode`\^^M=13 \tt \catcode`\!=0 \verbatimdefs \verbatimgobble} {\catcode`\^^M=13{\catcode`\ =13\gdef\verbatimdefs{\def^^M{\ \par}\let =\ }} % \gdef\verbatimgobble#1^^M{}} \null\vfill \centerline{\titlefont The {\ttitlefont CWEB} System of Structured Documentation} \vskip 18pt\centerline{(Version 3.0)} \vskip 24pt \centerline{\authorfont Donald E. Knuth and Silvio Levy} \vfill \noindent \TeX\ is a trademark of the American Mathematical Society. \bigskip\noindent The printed form of this manual is copyright \copyright\ 1994 by Addison-Wesley Publishing Company, Inc. All rights reserved. \smallskip\noindent The electronic form is copyright \copyright\ 1987, 1990, 1993 by Silvio Levy and Donald E. Knuth. \smallskip\noindent The russian translation is copyright \copyright\ 1999 by Sergey V. Korop \.{} \bigskip\noindent Permission is granted to make and distribute verbatim copies of the electronic form of this document provided that the electronic copyright notice and this permission notice are preserved on all copies. \smallskip\noindent Permission is granted to copy and distribute modified versions of the electronic form of this document under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. \smallskip\noindent Individuals may make copies of the documentation from the electronic files for their own personal use. \pageno=0 \titletrue\eject \null\vfill \centerline{\titlefont á¸Áµ¼° ÁÂÀúÂÃÀ½¾³¾ ´¾ºÃ¼µ½Â¸À¾²°½¸Ï {\ttitlefont CWEB}} \vskip 18pt\centerline{(ÒµÀÁ¸Ï 3.0)} \vskip 24pt \centerline{\authorfont Ô¾½°»Ì´ í. ڽภḻ̲¸¾ Ûµ²¸} \vfill \noindent \TeX\ ϲ»ÏµÂÁÏ Â¾À³¾²¾¹ ¼°Àº¾¹ American Mathematical Society. \bigskip\noindent \copyright\ 1994. ßÀ°²°¼¸ ½° ¸·´°½¸µ ;³¾ Àú¾²¾´Á²° ¾±»°´°µÂ Addison-Wesley Publishing Company, Inc. ÒÁµ ¿À°²° Á¾ÅÀ°½µ½Ë. \smallskip\noindent \copyright\ 1987, 1990, 1993. ßÀ°²° ½° Í»µºÂÀ¾½½ÃΠľÀ¼Ã ;³¾ Àú¾²¾´Á²° ¿À¸½°´»µ¶°Â ḻ̲¸¾ Ûµ²¸ ¸ Ô¾½°»Ì´Ã í. Ú½ÃÂÃ. \smallskip\noindent \copyright\ 1999. ßµÀµ²¾´ ½° ÀÃÁÁº¸¹ Ϸ˺: áµÀ³µ¹ Ú¾À¾¿ \.{} \bigskip\noindent Ò Á»ÃÇ°µ º¾½Ä»¸ºÂ° ÀÃÁÁº¾³¾ ¿µÀµ²¾´° ÃÁ»¾²¸¹ À°Á¿À¾ÁÂÀ°½µ½¸Ï Á ¸Å °½³»¸¹Áº¸¼ ²°À¸°½Â¾¼, ¿À¸¾À¸ÂµÂ¾¼ ¿¾»Ì·ÃµÂÁÏ ¾À¸³¸½°». \bigskip\noindent Permission is granted to make and distribute verbatim copies of the electronic form of this document provided that the electronic copyright notice and this permission notice are preserved on all copies. \smallskip\noindent Permission is granted to copy and distribute modified versions of the electronic form of this document under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. \smallskip\noindent Individuals may make copies of the documentation from the electronic files for their own personal use. \smallskip\noindent à°·ÀµÈ°µÂÁÏ À°Á¿À¾ÁÂÀ°½µ½¸µ ¾ǽËÅ º¾¿¸¹ Í»µºÂÀ¾½½¾¹ ²µÀÁ¸¸ ;³¾ ´¾ºÃ¼µ½Â° ¿À¸ ÃÁ»¾²¸¸, Ǿ Á¾¾±Éµ½¸µ ¾± °²Â¾ÀÁº¸Å ¿À°²°Å ½° Í»µºÂÀ¾½½ÃÎ ²µÀÁ¸Î ¸ ; À°·ÀµÈµ½¸µ ¿À¸ÁÃÂÁ²õ ²¾ ²ÁµÅ º¾¿¸ÏÅ. \smallskip\noindent à°·ÀµÈ°µÂÁÏ À°Á¿À¾ÁÂÀ°½µ½¸µ ¸·¼µ½µ½½ËÅ º¾¿¸¹ Í»µºÂÀ¾½½¾¹ ²µÀÁ¸¸ ;³¾ ´¾ºÃ¼µ½Â° ½° ÃÁ»¾²¸ÏŠ¾ǽ¾³¾ º¾¿¸À¾²°½¸Ï, ¸ ¿À¸ ÃÁ»¾²¸¸, Ǿ ¿À¾¸·²¾´½°Ï À°±¾Â° À°Á¿À¾ÁÂÀ°½ÏµÂÁÏ ½° ÃÁ»¾²¸ÏÅ, ¸´µ½Â¸Ç½ËŠ͸¼. \smallskip\noindent ç°Á½˵ »¸Æ° ¼¾³Ã ´µ»°ÂÌ º¾¿¸¸ ´¾ºÃ¼µ½Â°Æ¸¸ ¸· Í»µºÂÀ¾½½ËÅ Ä°¹»¾² ´»Ï »¸Ç½¾³¾ ¸Á¿¾»Ì·¾²°½¸Ï. \pageno=0 \titletrue\eject \titletrue \centerline{\titlefont á¸Áµ¼° ÁÂÀúÂÃÀ½¾³¾ ´¾ºÃ¼µ½Â¸À¾²°½¸Ï {\ttitlefont CWEB}} \vskip 15pt plus 3pt minus 3pt \centerline{\authorfont Ô¾½°»Ì´ í. ڽภḻ̲¸¾ Ûµ²¸} \vskip 24pt plus 3pt minus 3pt \noindent í¾ ´¾ºÃ¼µ½Â ϲ»ÏµÂÁÏ ¾¿¸Á°½¸µ¼ ²µÀÁ¸¸ Á¸Áµ¼Ë \.{WEB} Ô.~ڽð, °´°¿Â¸À¾²°½½¾¹ º Ϸ˺à \CEE/ ḻ̲¸¾ Ûµ²¸. á ¼¾¼µ½Â° Á²¾µ³¾ Á¾·´°½¸Ï ² 1987~³., \.{CWEB} Á¾²¼µÁ½˼¸ ÃÁ¸»¸Ï¼¸ ڽð ¸ Ûµ²¸ ²¾ ¼½¾³¾¼ ±Ë» ¼¾´¸Ä¸Æ¸À¾²°½ ¸ ûÃÇȵ½. Ò ½°Á¾Ïɸ¹ ¼¾¼µ½Â ¼Ë ¿¾»°³°µ¼ µ³¾ Ͳ¾»ÎƸΠ±»¸·º¾¹ º ·°²µÀȵ½¸Î, ½¾ µ¼ ½µ ¼µ½µµ, Á¾¾±Éµ½¸Ï ¾± ¾È¸±º°Å, ¿Àµ´»¾¶µ½¸Ï ¸ º¾¼¼µ½Â°À¸¸ ²µÁ̼° ¶µ»°Âµ»Ì½Ë ¸ ¼¾³Ã ½°¿À°²»ÏÂÌÁÏ Ûµ²¸ (\.{levy@math.berkeley.edu}). ç¸Â°Âµ»¸, ·½°º¾¼Ëµ Á ¼µ¼¾À°½´Ã¼¾¼ ``The \.{WEB} System of Structured Documentation'' ڽð, ¼¾³Ã »¸ÈÌ ±µ³»¾ ¾·½°º¾¼¸ÂÌÁÏ Á ͸¼ ´¾ºÃ¼µ½Â¾¼, ¿¾Áº¾»ÌºÃ \.{CWEB} ¸ \.{WEB} ¸¼µÎ ¾±ÉÃΠĸ»¾Á¾Ä¸Î ¸ (² ¾Á½¾²½¾¼) Á¸½Â°ºÁ¸Á. Ò ½µº¾Â¾ÀËÅ ²¾¿À¾Á°Å \.{CWEB} ϲ»ÏµÂÁÏ Ã¿À¾Éµ½¸µ¼ \.{WEB}: ½°¿À¸¼µÀ, \.{CWEB} ½µ ½Ã¶´°µÂÁÏ ² ¼µÅ°½¸·¼°Å ¾¿Àµ´µ»µ½¸Ï ¼°ºÀ¾Á¾² ¸ ¾±À°±¾Âº¸ ÁÂÀ¾º \.{WEB}, ¿¾Áº¾»ÌºÃ Ϸ˺ \CEE/ ¸ µ³¾ ¿Àµ¿À¾ÆµÁÁ¾À ±µÀàÍÂà À°±¾Âà ½° Áµ±Ï. н°»¾³¸Ç½¾, Á¾³»°Èµ½¸Ï \.{WEB} ¾Â½¾Á¸Âµ»Ì½¾ ľÀ¼°Â° ²¾Á̼¸À¸Ç½ËÅ ¸ ȵÁ½°´Æ°Â¸À¸Ç½ËŠǸÁµ» \.{@'77} ¸ \.{@"3f} ·°¼µ½µ½Ë ¿À¸½ÏÂ˼¸ ² Ϸ˺µ \CEE/ \.{077} ¸ \.{0x3f}. ÒÁµ ¿À¾Ç¸µ ²¾·¼¾¶½¾Á¸ \.{WEB} Á¾ÅÀ°½µ½Ë ¸ À°ÁȸÀµ½Ë. ÜË ²ËÀ°¶°µ¼ Á²¾Î ±»°³¾´°À½¾ÁÂÌ ²Áµ¼, ºÂ¾ Á²¾¸¼¸ ¿¾¶µ»°½¸Ï¼¸ ¸ ·°¼µÇ°½¸Ï¼¸ ÃÇ°Á²¾²°» ² À°·À°±¾Âºµ \.{CWEB}. ÞÁ¾±ÃÎ ¿À¸·½°Âµ»Ì½¾ÁÂÌ ¼Ë ¿À¸½¾Á¸¼ Steve Avery, Nelson Beebe, Hans-Hermann Bode, Klaus Guntermann, Norman Ramsey ¸ Joachim Schnitter, º¾Â¾À˵ ¿Àµ´¾Á°²¸»¸ ¿À¾³À°¼¼½Ë¹ º¾´, ° °º¶µ Cameron Smith, ·° ¼½¾¶µÁ²¾ ¿Àµ´»¾¶µ½¸¹ ¿¾ ´¾ºÃ¼µ½Â°Æ¸¸. Ramsey Á´µ»°» "³À°¼¾Â½¾µ ¿À¾³À°¼¼¸À¾²°½¸µ" ("literate programming",---°º Ô. ڽ཰·Ë²°µÂ ¼µÂ¾´¸ºÃ ¿À¾³À°¼¼¸À¾²°½¸Ï Á ¸Á¿¾»Ì·¾²°½¸µ¼ \.{CWEB}---{\sl ¿À¸¼. ¿µÀµ².\/}) ´¾ÁÂÿ½Ë¼ ´»Ï ´Àó¸Å Ϸ˺¾² Á²¾µ¹ Á¸Áµ¼¾¹ \.{SPIDER} [Á¼. {\sl Communications of the ACM\/ \bf32} (1989), 1051--1055]. Bode °´°¿Â¸À¾²°» \.{CWEB} º Ϸ˺à \CPLUSPLUS/, °º Ǿ ´°»µµ ¿¾ µºÁÂà ²Áµ ÁÁË»º¸ ½° \CEE/ ¿¾´À°·Ã¼µ²°Î ¸ \CPLUSPLUS/. \section Ò²µ´µ½¸µ. áÃÂÌ Ä¸»¾Á¾Ä¸¸ \.{CWEB} ² ¾¼, Ǿ ¿À¾³À°¼¼¸ÁÂË, ¶µ»°Îɸµ Á½°±´¸ÂÌ Á²¾Î ¿À¾³À°¼¼Ã ½°¸»ÃÇȵ¹ ´¾ºÃ¼µ½Â°Æ¸µ¹, ´¾»¶½Ë ¾´½¾²Àµ¼µ½½¾ ¿¾»Ì·¾²°ÂÌÁÏ Ï·Ëº¾¼, ¿¾´¾±½Ë¼ \TeX{}, ´»Ï ¿¾´³¾Â¾²º¸ ´¾ºÃ¼µ½Â°Æ¸¸ ¸ Ϸ˺¾¼, ¿¾´¾±½Ë¼ \CEE/, ´»Ï ¿À¾³À°¼¼¸À¾²°½¸Ï. ݸ ¾Â, ½¸ ´Àó¾¹ Á°¼ ¿¾ Áµ±µ ½µ ¿Àµ´¾Á°²»ÏµÂ ²Áµ³¾ ½µ¾±Å¾´¸¼¾³¾, ½¾ ±Ã´ÃǸ ´¾»¶½Ë¼ ¾±À°·¾¼ ¾±®µ´¸½µ½Ë, ¾º°·Ë²°ÎÂÁÏ ºÃ´° ±¾»µµ ¿¾»µ·½Ë¼¸, ǵ¼ ¿¾À¾·½Ì. áÂÀúÂÃÀ° º¾¼¿ÌεÀ½¾¹ ¿À¾³À°¼¼Ë ¼¾¶µÂ ±ËÂÌ ¿Àµ´Á°²»µ½°, º°º ``ÁµÂÌ'' (``web'' --- ``¿°Ã¸½°''), Á¾Á¾ÏÉ°Ï ¸· ¼½¾¶µÁ²° ²·°¸¼½¾ ·°²¸Á¸¼ËÅ Ç°Áµ¹. ç¾±Ë ´¾ºÃ¼µ½Â¸À¾²°ÂÌ Â°ºÃÎ ¿À¾³À°¼¼Ã, ½µ¾±Å¾´¸¼¾ ¾¿¸Á°ÂÌ º°¶´ÃΠ°ºÃÎ Ç°ÁÂÌ ¸ µµ ²·°¸¼¾¾Â½¾Èµ½¸Ï Á ´À󸼸. áÀµ´Á²° ¾±À°±¾Âº¸ µºÁ¾², ¿Àµ´¾Á°²»Ïµ¼Ëµ \TeX{}, ¿¾·²¾»ÏΠ½°¼ ¾¿¸Á°ÂÌ »¾º°»Ì½ÃÎ ÁÂÀúÂÃÀà º°¶´¾¹ Ç°Á¸ ¿À¾³À°¼¼Ë, ° ÁÀµ´Á²° ¿À¾³À°¼¼¸À¾²°½¸Ï Ϸ˺° \CEE/ --- ľÀ¼°»Ì½¾ ¸ ¾´½¾·½°Ç½¾ Á¿µÆ¸Ä¸Æ¸À¾²°ÂÌ °»³¾À¸Â¼Ë. Þ±®µ´¸½¸² ¸Å, ¼Ë ¿¾»ÃÇ°µ¼ Á¸»Ì ¿À¾³À°¼¼¸À¾²°½¸Ï, ¼°ºÁ¸¼°»Ì½¾ Á¿¾Á¾±Á²ÃÎɸ¹ ¿¾½¸¼°½¸Î ÁÂÀúÂÃÀË Á»¾¶½ËÅ ¿À¾³À°¼¼, ¸ ¾´½¾²Àµ¼µ½½¾ --- žÀ¾È¾ ´¾ºÃ¼µ½Â¸À¾²°½½Ëµ ¿À¾³À°¼¼Ë, ´»Ï º¾Â¾ÀËÅ °²Â¾¼°Â¸ÇµÁº¸ ¾±µÁ¿µÇ¸²°µÂÁÏ ²·°¸¼½¾µ Á¾¾Â²µÂÁ²¸µ ¿À¾³À°¼¼Ë ¸ ´¾ºÃ¼µ½Â°Æ¸¸. á¸Áµ¼° \.{CWEB} Á¾Á¾¸Â ¸· ´²ÃÅ ¿À¾³À°¼¼, ½°·²°½½ËÅ \.{CWEAVE} ¸ \.{CTANGLE}. ßÀ¸ ¿À¾³À°¼¼¸À¾²°½¸¸ ² Á¸Áµ¼µ \.{CWEB} ¿À¾³À°¼¼° ½° Ϸ˺µ \CEE/ ¸ ´¾ºÃ¼µ½Â°Æ¸Ï º ½µ¹ ¾±®µ´¸½µ½Ë ² ¾´½¾¼ Ä°¹»µ, ½°·Ë²°µ¼¾¼ \.{CWEB}-Ä°¹», Á ¸¼µ½µ¼ ²À¾´µ \.{something.w}. Ú¾¼°½´° `\.{cweave} \.{something}' Á¾·´°µÂ Ä°¹» \.{something.tex}, º¾Â¾À˹ Á ¿¾¼¾ÉÌÎ \TeX{} ¿Àµ²À°É°µÂÁÏ ² ºÀ°Á¸²¾ ¾Ä¾À¼»µ½½ÃÎ (``pretty printed'') ²µÀÁ¸Î \.{something.w}, º¾Â¾À°Ï Á¾±»Î´°µÂ ²Áµ ¸¿¾³À°ÄÁº¸µ Á¾³»°Èµ½¸Ï, °º¸µ º°º ´¸·°¹½ ÁÂÀ°½¸ÆË, ¸Á¿¾»Ì·¾²°½¸µ ¾ÂÁÂÿ¾², ºÃÀÁ¸²½ËÅ ¸ ¶¸À½ËÅ ÈÀ¸Ä¾², ¼°Âµ¼°Â¸ÇµÁº¸Å Á¸¼²¾»¾². Ô¾¿¾»½¸Âµ»Ì½¾ °²Â¾¼°Â¸ÇµÁº¸ ÁÂÀ¾¸ÂÁÏ Á¸Áµ¼° ¿µÀµºÀµÁ½ËÅ ÁÁË»¾º. н°»¾³¸Ç½¾, º¾¼°½´° `\.{ctangle} \.{something}' ¿¾À¾¶´°µÂ ¿À¾³À°¼¼Ã ½° Ϸ˺µ \CEE/ \.{something.c}, º¾Â¾À°Ï ¼¾¶µÂ ±ËÂÌ ¾Âº¾¼¿¸»¸À¾²°½° ² ¸Á¿¾»½¸¼Ë¹ º¾´. ß¾¼¸¼¾ ¿Àµ´¾Á°²»µ½¸Ï ô¾±½¾³¾ ÁÀµ´Á²° ´¾ºÃ¼µ½Â¸À¾²°½¸Ï, \.{CWEB} À°ÁȸÀϵ Ϸ˺ \CEE/ ²¾·¼¾¶½¾ÁÂÌÎ ¼µ½ÏÂÌ ¼µÁ°¼¸ Ç°Á¸ µºÁ° ¿À¾³À°¼¼Ë, °º Ǿ ±¾»Ìȸµ ¿À¾³À°¼¼½Ëµ Á¸Áµ¼Ë ¼¾³Ã ±ËÂÌ ²¾Á¿À¸½ÏÂË Æµ»¸º¾¼ ² µÀ¼¸½°Å ½µ±¾»ÌȸŠÁµºÆ¸¹ ¸ ¸Å »¾º°»Ì½ËÅ ²·°¸¼¾Á²Ï·µ¹. ßÀ¾³À°¼¼° \.{CTANGLE} ½°·²°½° °º ¿¾Â¾¼Ã, Ǿ ¾½° À°ÁÁ°²»ÏµÂ ÁµºÆ¸¸ web-ÁÂÀúÂÃÀË ² ¿¾ÀÏ´ºµ, ÂÀµ±Ãµ¼¾¼ \CEE/; ¿Àµ¸¼ÃɵÁ²¾¼ ¿À¾³À°¼¼¸À¾²°½¸Ï ² \.{CWEB} ϲ»ÏµÂÁÏ Â¾, Ǿ °»³¾À¸Â¼Ë ¼¾³Ã ±ËÂÌ ²ËÀ°¶µ½Ë ² "À°·²µÀ½Ã¾¹" ľÀ¼µ, ² º¾Â¾À¾¹ º°¶´°Ï ÁµºÆ¸Ï ¾±®ÏÁ½ÏµÂÁÏ ¾Â´µ»Ì½¾ ¾Â ´Àó¸Å. ßÀ¾³À°¼¼° \.{CWEAVE}, ² Á¾¾Â²µÂÁ²¸¸ Á²¾µ¼Ã ½°·²°½¸Î, "Á¿»µÂ°µÂ" Á¾´µÀ¶°É¸µÁÏ ² º°¶´¾¹ ÁµºÆ¸¸ \TeX ¸ \CEE/-Ç°Á¸ ² ÁÂÀúÂÃÀ¸À¾²°½½Ë¹ ´¾ºÃ¼µ½Â. Ò¾·¼¾¶½¾, ½µ Á»ÃÇ°¹½¾ ½µ¼µÆº¸¼ ͺ²¸²°»µ½Â¾¼ ``weave'' ϲ»ÏµÂÁÏ ``{\it webe\/}'', ° Á¾¾Â²µÂÁ²ÃÎɸ¹ ¸¼ »°Â¸½Áº¸¹ ¸¼¿µÀ°Â¸² --- ``{\it texe\/}''! ß¾»Ì·¾²°Âµ»Ì \.{CWEB} ´¾»¶µ½ ±ËÂÌ Å¾À¾È¾ ·½°º¾¼ Á Ϸ˺¾¼ \CEE/. ܸ½¸¼°»Ì½¾µ ·½°º¾¼Á²¾ Á \TeX{} °º¶µ ¶µ»°Âµ»Ì½¾, ½¾ Ä°ºÂ¸ÇµÁº¸ ¼¾¶µÂ ±ËÂÌ ¿¾»Ãǵ½¾ öµ ² ¿À¾ÆµÁÁµ À°±¾ÂË Á \.{CWEB}, ¿¾Áº¾»ÌºÃ ¿À¾Á¾¹ µºÁ ¿¾´³¾Â°²»¸²°µÂÁÏ ² \TeX{} ¿À°ºÂ¸ÇµÁº¸ ±µ· º°º¾³¾-»¸±¾ ·½°½¸Ï µ³¾ Ϸ˺°. âµ¼, ºÂ¾ žÀ¾È¾ ·½°º¾¼ Á ¾±µ¸¼¸ Á¸Áµ¼°¼¸ ¿¾ÂÀµ±ÃÎÂÁÏ Á¾²Áµ¼ ½µ±¾»Ìȸµ ÃÁ¸»¸Ï, Ǿ±Ë ¸·ÃǸÂÌ º¾¼°½´Ë \.{CWEB}. \section Þ±·¾À. á¾´µÀ¶¸¼Ë¼ Ä°¹»¾² \.{CWEB} ¼¾¶µÂ ±ËÂÌ \TeX{}-µºÁ ¸ \CEE/-µºÁÂ. \.{CWEB}-¿À¾³À°¼¼¸Á ´¾»¶µ½ ǵº¾ ¿Àµ´Á°²»ÏÂÌ ²Áµ ¿À¾¸Áž´Ïɵµ Á ½¸¼¸ º°º ² ¿À¾ÆµÁÁµ ³µ½µÀ°Æ¸¸ ´¾ºÃ¼µ½Â°Æ¸¸, °º ¸ ¿À¾³À°¼¼Ë, Â.µ. ·½°ÂÌ ÁÃÂÌ ²ÁµÅ µŠ´µ¹Á²¸¹, º¾Â¾À˵ ±Ã´Ã ¿À¾¸·²¾´¸ÂÌÁÏ ½°´ \.{CWEB}-Ä°¹»¾¼ ¿À¾³À°¼¼°¼¸ \.{CWEAVE} ¸ \.{CTANGLE}. ⵺Á ² ľÀ¼°Âµ \TeX{} ¿¾»½¾ÁÂÌÎ º¾¿¸ÀõÂÁÏ ¿À¾³À°¼¼¾¹ \.{CWEAVE} ¸ ¸³½¾À¸ÀõÂÁÏ \.{CTANGLE}, ; "ǸÁÂ°Ï ´¾ºÃ¼µ½Â°Æ¸Ï". á ´Àó¾¹ Á¾À¾½Ë, \CEE/-¿À¾³À°¼¼° ľÀ¼°Â¸ÀõÂÁÏ \.{CWEAVE} ¸ ¿Àµ¾±À°·ÃµÂÁÏ \.{CTANGLE} ¿¾ ¿À°²¸»°¼, º¾Â¾À˵ ±Ã´Ã ÁÂÀ¾³¾ ¾¿Àµ´µ»µ½Ë ¿¾·´½µµ. Ò ½°Á¾Ïɸ¹ ¼¾¼µ½Â ´¾Á°¾ǽ¾ ¿¾½ÏÂÌ, Ǿ ÁÃɵÁ²õ ´²µ À°·½¾²¸´½¾Á¸ µºÁ°. á¾·´°½¸µ \.{CWEB}-¿À¾³À°¼¼Ë ² ǵ¼-¾ Áž¶µ Á ¿¾´³¾Â¾²º¾¹ ´¾ºÃ¼µ½Â° \TeX{} Á ¸Á¿¾»Ì·¾²°½¸µ¼ ´¾¿¾»½¸Âµ»Ì½¾¹ ``\CEE/-¼¾´Ë'', ¿¾´¾±½¾¹ ¸¼µÎɸ¼ÁÏ ² \TeX{} ³¾À¸·¾½Â°»Ì½¾¹, ²µÀ¸º°»Ì½¾¹ ¸ ¼°Âµ¼°Â¸ÇµÁº¾¹ ¼¾´°¼. \.{CWEB}-Ä°¹» Á¾´µÀ¶¸Â {\sl ÁµºÆ¸¸\/}, º¾Â¾À˵ ±¾»µµ ¸»¸ ¼µ½µµ Á°¼¾´¾Á°¾ǽË. Ú°¶´°Ï ÁµºÆ¸Ï Á¾Á¾¸Â ¸· ÂÀµÅ Ç°Áµ¹: \yskip\item{$\bullet$} \TEX/-Ç°ÁÂÌ, Á¾´µÀ¶°É°Ï ¼°ÂµÀ¸°», À°·®ÏÁ½ÏÎɸ¹ ÁÃÂÌ Á¾´µÀ¶¸¼¾³¾ ÁµºÆ¸¸. \item{$\bullet$} ßÀ¾¼µ¶Ã¾ǽ°Ï (middle) Ç°ÁÂÌ Á¾´µÀ¶¸Â ¼°ºÀ¾¾¿Àµ´µ»µ½¸Ï, Á»Ã¶°É¸µ Á¾ºÀ°Éµ½¸Ï¼¸ ´»Ï \CEE/-º¾½ÁÂÀúƸ¹, º¾Â¾À˵ ½µÃ´¾±½¾ ²Ë¿¸Á˲°ÂÌ º°¶´Ë¹ À°· ·°½¾²¾. Þ½¸ ¿Àµ¾±À°·ÃÎÂÁÏ \.{CTANGLE} ² ¼°ºÀ¾ÁË ¿Àµ¿À¾ÆµÁÁ¾À°. \item{$\bullet$} \CEE/-Ç°ÁÂÌ, Á¾´µÀ¶°É°Ï Ç°ÁÂÌ ¿À¾³À°¼¼Ë, ³µ½µÀ¸Àõ¼¾¹ \.{CTANGLE}. Ô»¸½° \CEE/-Ç°Á¸ ² ¸´µ°»µ ½µ ´¾»¶½° ¿Àµ²ËÈ°ÂÌ ´Î¶¸½Ë ÁÂÀ¾Çµº, Ǿ±Ë ¾½° Á¾Á°²»Ï»° ·°º¾½Çµ½½Ë¹ ÄÀ°³¼µ½Â ¿À¾³À°¼¼Ë ¸ ±Ë»° »µ³º¾ ¿¾½¸¼°µ¼¾¹. \yskip\noindent âÀ¸ Ç°Á¸ º°¶´¾¹ ÁµºÆ¸¸ ´¾»¶½Ë À°Á¿¾»°³°ÂÌÁÏ ² ;¼ ¿¾ÀÏ´ºµ, Â.µ. \TeX-º¾¼¼µ½Â°À¸¹ ´¾»¶µ½ Á»µ´¾²°ÂÌ ¿µÀ²Ë¼, ·°Âµ¼ ¿À¾¼µ¶Ã¾ǽ°Ï Ç°ÁÂÌ ¸, ½°º¾½µÆ, \CEE/-º¾´. Ûα°Ï ¸· ͸ŠǰÁµ¹ ¼¾¶µÂ ±ËÂÌ ¿ÃÁ¾¹. áµºÆ¸Ï ½°Ç¸½°µÂÁÏ »¸±¾ `\.{@\ }', »¸±¾ `\.{@*}', ³´µ `\.{\ }' ¾·½°Ç°µÂ Á¸¼²¾» "¿À¾±µ»". áµºÆ¸Ï ·°º°½Ç¸²°µÂÁÏ ½°Ç°»¾¼ Á»µ´ÃÎɵ¹ ÁµºÆ¸¸, Â.µ. Á»µ´ÃÎɸ¼ `\.{@\ }' ¸»¸ `\.{@*}', »¸±¾ º¾½Æ¾¼ Ä°¹»°. \.{CWEB}-Ä°¹» ¼¾¶µÂ Á¾´µÀ¶°ÂÌ ¿À¾¸·²¾»Ì½Ë¹ µºÁÂ, À°Á¿¾»°³°Îɸ¹ÁÏ ¿µÀµ´ ½°Ç°»¾¼ ¿µÀ²¾¹ ÁµºÆ¸¸ ¸ ½µ ²Å¾´Ïɸ¹ ½¸ ² ¾´½Ã ¸· ÁµºÆ¸¹. ß¾´¾±½Ë¹ µºÁ ´°»µµ ±Ã´µ¼ ¸¼µ½¾²°ÂÌ "¿Àµ°¼±Ã»¾¹" (``in limbo''), ¾½ ¸³½¾À¸ÀõÂÁÏ \.{CTANGLE} ¸ ¿¾»½¾ÁÂÌÎ º¾¿¸ÀõÂÁÏ \.{CWEAVE}, °º Ǿ µ³¾ ½°·½°Çµ½¸µ Á¾Á¾¸Â ² ¾¿Àµ´µ»µ½¸¸ ¿À¾¸·²¾»Ì½ËÅ ¸½ÁÂÀúƸ¹ \TeX'°. Ú°º ¿À°²¸»¾, ͸ ¸½ÁÂÀúƸ¸ ·°³Àö°Î ÂÀµ±Ãµ¼Ëµ ÈÀ¸ÄÂË, ¾¿Àµ´µ»ÏΠ¼°ºÀ¾ÁË, ¸·¼µ½ÏΠÀ°·¼µÀË ÁÂÀ°½¸ÆË ¸/¸»¸ ³µ½µÀ¸ÀÃΠ¸Âû̽˹ »¸ÁÂ. ᵺƸ¸ ½Ã¼µÀÃÎÂÁÏ ¿¾Á»µ´¾²°Âµ»Ì½¾, ½°Ç¸½°Ï Á~1. í¸ ½¾¼µÀ° ¿¾Ï²»ÏÎÂÁÏ ² ½°Ç°»µ º°¶´¾¹ ÁµºÆ¸¸ ² \TeX-´¾ºÃ¼µ½Âµ, ¿¾»Ãǵ½½¾¼ \.{CWEAVE}, ° °º¶µ ² º¾¼¼µ½Â°À¸ÏÅ, ¾Â¼µÇ°ÎɸŠ½°Ç°»¾ ¸ º¾½µÆ º°¶´¾¹ ÁµºÆ¸¸ ² \CEE/-¿À¾³À°¼¼µ, Á³µ½µÀ¸À¾²°½½¾¹ \.{CTANGLE}. \section ؼµ½° ÁµºÆ¸¹. Ú ÁÇ°ÁÂÌÎ, ½µÂ ½¸º°º¾¹ ½°´¾±½¾Á¸ ½Ã¼µÀ¾²°ÂÌ ÁµºÆ¸¸ ²ÀÃǽÃÎ. ßÀ¾Á¾ ¿¾¼µÁ¸µ `\.{@\ }' »¸±¾ `\.{@*}' ² ½°Ç°»µ º°¶´¾¹ ½¾²¾¹ ÁµºÆ¸¸, ¸ ¸Å ½¾¼µÀ° ±Ã´Ã Á³µ½µÀ¸À¾²°½Ë \.{CWEAVE} ¸ \.{CTANGLE} °²Â¾¼°Â¸ÇµÁº¸. ßÀ¸ ½µ¾±Å¾´¸¼¾Á¸ ÁµºÆ¸¸ ¼¾¶µÂ ±ËÂÌ ¿À¸Á²¾µ½¾ {\sl ¸¼Ï} ²¼µÁ¾ ½¾¼µÀ°. Ø¼Ï ½°Ç¸½°µÂÁÏ `\.{@<}', ´°»µµ Á»µ´ÃµÂ ¿À¾¸·²¾»Ì½Ë¹ µºÁ \TEX/, ° ·°Âµ¼ --- `\.{@>}'. Ú¾³´° \.{CWEAVE} ²Ë²¾´¸Â ¸¼Ï ÁµºÆ¸¸, `\.{@<}' ¸ `\.{@>}' ·°¼µ½ÏÎÂÁÏ Ã³»¾²Ë¼¸ Áº¾±º°¼¸, ¸ ´¾±°²»ÏµÂÁÏ ½¾¼µÀ ÁµºÆ¸¸ ±¾»µµ ¼µ»º¸¼ ÈÀ¸Ä¾¼. ߾;¼Ã, º¾³´° ²Ë Ǹ°µÂµ ²Ë²¾´ \.{CWEAVE}, »µ³º¾ ¿À¾Á»µ´¸ÂÌ ²Áµ ²·°¸¼¾Á²Ï·¸ ¼µ¶´Ã ÁµºÆ¸Ï¼¸. Ô»Ï ½°³»Ï´½¾Á¸ ¸¼Ï ÁµºÆ¸¸ ´¾»¶½¾ ±ËÂÌ Å¾À¾È¸¼ ¾¿¸Á°½¸µ¼ Á¾´µÀ¶¸¼¾³¾ ÁµºÆ¸¸, Â.µ. ¿¾ÏÁ½ÏÂÌ °±ÁÂÀ°ºÆ¸Î, ¿Àµ´Á°²»µ½½ÃÎ ÁµºÆ¸µ¹. Ò¿¾Á»µ´Á²¸µ ÁµºÆ¸Ï ¼¾¶µÂ ±ËÂÌ "²ÁÂÀ¾µ½°" ² ´Àó¸µ ÁµºÆ¸¸ °º, Ǿ ¼°»¾·½°Ç¸¼Ëµ ´µÂ°»¸ µµ Àµ°»¸·°Æ¸¸ ¾º°¶ÃÂÁÏ ÁºÀËÂ˼¸. Ø¼Ï ÁµºÆ¸¸, Á»µ´¾²°Âµ»Ì½¾, ´¾»¶½¾ ±ËÂÌ ´¾Á°¾ǽ¾ ´»¸½½Ë¼, Ǿ±Ë ²ËÀ°·¸ÂÌ ¿À¸ ;¼ µµ ÁÃÂÌ. Ú Á¾¶°»µ½¸Î, þ¼¸Âµ»Ì½¾ ¸ ÇÀµ²°Â¾ ¾È¸±º°¼¸ ¿¸Á°ÂÌ ´»¸½½¾µ ¸¼Ï ÁµºÆ¸¸ Á½¾²° ¸ Á½¾²°. ߾;¼Ã \.{CTANGLE} ¸ \.{CWEAVE} ¿¾·²¾»ÏΠ¸Á¿¾»Ì·¾²°ÂÌ Á¾ºÀ°Éµ½¸Ï. ÒÁϺ¸¹ À°·, º¾³´° ² \.{CWEB}-Ä°¹»µ ´¾»¶½¾ ¿¾Ï²¸ÂÌÁÏ ¸¼Ï ÁµºÆ¸¸, ²Ë ¼¾¶µÂµ ¸Á¿¾»Ì·¾²°ÂÌ `\.{@<$\alpha$...@>}', ³´µ $\alpha$ --- »Î±°Ï ÁÂÀ¾º°, ϲ»ÏÎÉ°ÏÁÏ ¿ÀµÄ¸ºÁ¾¼ ¿¾»½¾³¾ ¸¼µ½¸. Ý°¿À¸¼µÀ, `\.{@}' ¼¾¶µÂ ±ËÂÌ Á¾ºÀ°Éµ½¾ ´¾ `\.{@}', µÁ»¸ ½¸º°º¾µ ´Àó¾µ ¸¼Ï ÁµºÆ¸¸ ½µ ½°Ç¸½°µÂÁÏ Á `\.{Clear}'. н°»¾³¸Ç½¾ ¼¾¶½¾ ¸Á¿¾»Ì·¾²°ÂÌ Á¾ºÀ°Éµ½¸µ `\.{@}' ¸ Â.´. ؼµ½° ÁµºÆ¸¹ ² ¿À¾Ç¸Å Á»ÃÇ°ÏÅ ´¾»¶½Ë Á¾²¿°´°ÂÌ ¿¾Á¸¼²¾»Ì½¾, ·° ¸Áº»Îǵ½¸µ¼ ¿¾Á»µ´¾²°Âµ»Ì½¾Áµ¹ ¿À¾±µ»Ì½ËÅ Á¸¼²¾»¾² (Á¾±Á²µ½½¾ ¿À¾±µ»°, Á¸¼²¾»¾² °±Ã»ÏƸ¸, º¾½Æ° ÁÂÀ¾º¸ ¸/¸»¸ ÁÂÀ°½¸ÆË), º¾Â¾À˵ ÂÀ°ºÂÃÎÂÁÏ º°º ¾´¸½ ¿À¾±µ». Ò ½°Ç°»µ ¸ º¾½Æµ ¸¼µ½¸ ²Áµ ¿À¾±µ»Ì½Ëµ Á¸¼²¾»Ë ±Ã´Ã ¾Â±À¾Èµ½Ë. â°º, `\.{@< Clear { }the arrays @>}' ±Ã´µÂ Á¾¾Â²µÂÁ²¾²°ÂÌ ¸¼µ½¸ ² ¿Àµ´Ë´Ãɵ¼ ¿À¸¼µÀµ. ßÀ¾±µ»Ì½Ëµ Á¸¼²¾»Ë ¿¾Á»µ ¼½¾³¾Â¾Ç¸Ï °º¶µ ±Ã´Ã ¸³½¾À¸À¾²°ÂÌÁÏ, ½¾ ½µ ¿µÀµ´ ½¸¼, °º Ǿ `\.{@}' ½µ Á¾¾Â²µÂÁ²õ `\.{@}'. \section ç¾ ´µ»°µÂ \.{CTANGLE}. Ú°º ±Ë»¾ Áº°·°½¾ ²Ëȵ, ÁµºÆ¸Ï ½°Ç¸½°µÂÁÏ `\.{@\ }' »¸±¾ `\.{@*}', ½¾ ½¸Çµ³¾ --- ¾ ¾¼, º°º ¾½° ´µ»¸ÂÁÏ ½° \TeX-Ç°ÁÂÌ, ¿À¾¼µ¶Ã¾ǽÃÎ ¸ \CEE/-Ç°Á¸. ßÀ¾¼µ¶Ã¾ǽ°Ï Ç°ÁÂÌ ½°Ç¸½°µÂÁÏ Á ¿µÀ²Ë¼ ¿¾Ï²»µ½¸µ¼ ² µ»µ ÁµºÆ¸¸ `\.{@d}' »¸±¾ `\.{@f}', ° \CEE/-Ç°ÁÂÌ ½°Ç¸½°µÂÁÏ ¿µÀ²Ë¼ `\.{@c}' ¸»¸ `\.{@
=}'. Ò ¿¾Á»µ´½µ¼ Á»ÃÇ°µ ¸¼Ï ¿À¸Á²°¸²°µÂÁÏ ´°½½¾¹ \CEE/-ÁµºÆ¸¸, µÁ»¸ ¶µ ÁµºÆ¸Ï ½°Ç°Â° `\.{@c}', ¾ ¾½° ±Ã´µÂ {\sl ½µ¸¼µ½¾²°½½¾¹}. Ú¾½ÁÂÀÃºÆ¸Ï `\.{@
}' ¼¾¶µÂ ¿¾Ï²¸ÂÌÁÏ ² µ»µ \CEE/-ÁµºÆ¸¸ ¿À¾¸·²¾»Ì½¾µ º¾»¸ÇµÁ²¾ À°·: ¿¾Á»µ´ÃÎɸµ ÁÁË»º¸ ½° ¸¼Ï ¾·½°Ç°Î µ³¾ "¸Á¿¾»Ì·¾²°½¸µ", ° ½µ "¾±®Ï²»µ½¸µ", Â.µ. Ǿ ¸¼µ½¾²°½½°Ï ÁµºÆ¸Ï, ¾¿Àµ´µ»µ½½°Ï ³´µ-»¸±¾ µÉµ, ´¾»¶½° ±ËÂÌ ²Á°²»µ½° ² ; ¼µÁ¾ \CEE/-¿À¾³À°¼¼Ë. Ôµ¹Á²¸Âµ»Ì½¾, ¾Á½¾²½°Ï ¸´µÏ \.{CTANGLE} --- Á¾·´°ÂÌ ¿À¾³À°¼¼Ã, ¾±®µ´¸½¸² ½µº¾Â¾À¾µ º¾»¸ÇµÁ²¾ ¸¼µ½¾²°½½ËÅ ¸ ½µ¸¼µ½¾²°½½ËÅ ÁµºÆ¸¹. â¾Ç½Ëµ ¿À°²¸»° °º¾³¾ ¾±®µ´¸½µ½¸Ï °º¾²Ë: ²½°Ç°»µ ²Áµ ¼°ºÀ¾¾¿Àµ´µ»µ½¸Ï, ¾Â¼µÇµ½½Ëµ `\.{@d}' ¿Àµ¾±À°·ÃÎÂÁÏ ² ¸½ÁÂÀúƸ¸ ¿Àµ¿À¾ÆµÁÁ¾À° ¸ Á¾±¸À°ÎÂÁÏ ² ½°Ç°»µ Ä°¹»°. Ô°»µµ Âô° º¾¿¸ÀÃÎÂÁÏ ½µ¸¼µ½¾²°½½Ëµ \CEE/-ÁµºÆ¸¸. â°º ¾±À°·ÃµÂÁÏ ¿µÀ²¾µ ¿À¸±»¸¶µ½¸µ µºÁ° ¿À¾³À°¼¼Ë (´¾»¶½° ÁÃɵÁ²¾²°ÂÌ Å¾ÂÏ ±Ë ¾´½° ½µ¸¼µ½¾²°½½°Ï ÁµºÆ¸Ï). װµ¼ ²Áµ ¸¼µ½° ÁµºÆ¸¹, ½°¹´µ½½Ëµ ² ¿¾»Ãǵ½½¾¼ µºÁµ, ·°¼µ½ÏÎÂÁÏ \CEE/-Ç°ÁÂϼ¸ Á¾¾Â²µÂÁ²ÃÎɸŠÁµºÆ¸¹ ¸ ; ¿À¾ÆµÁÁ ¿¾´Á°½¾²º¸ ¿À¾´¾»¶°µÂÁÏ ´¾ À°·ÀµÈµ½¸Ï ²ÁµÅ ÁÁË»¾º. ÒÁµ º¾¼¼µ½Â°À¸¸ ô°»ÏÎÂÁÏ, ¿¾Áº¾»ÌºÃ ¿¾»Ãǵ½½°Ï ¿À¾³À°¼¼° ½° \CEE/ ½µ ¿Àµ´½°·½°Ç°µÂÁÏ ´»Ï ǵ½¸Ï ǵ»¾²µº¾¼. ÕÁ»¸ ¾´½¾ ¸ ¾ ¶µ ¸¼Ï ±Ë»¾ ´°½¾ ±¾»µµ ǵ¼ ¾´½¾¹ ÁµºÆ¸¸, \CEE/-ÄÀ°³¼µ½Â ¿¾»ÃÇ°µÂÁÏ ¾±®µ´¸½µ½¸µ¼ \CEE/-Ç°Áµ¹ ²ÁµÅ °º¸Å ÁµºÆ¸¹. í¾ ¾º°·Ë²°µÂÁÏ ¿¾»µ·½Ë¼, ½°¿À¸¼µÀ, µÁ»¸ ¸¼µµÂÁÏ ÁµºÆ¸Ï Á ¸¼µ½µ¼ `Global variables', ² º¾Â¾À¾¹ ±Ã´Ã Á¾±À°½Ë ²Áµ ³»¾±°»Ì½Ëµ ¿µÀµ¼µ½½Ëµ, ³´µ ±Ë ¾½¸ ½¸ ±Ë»¸ ¾±®Ï²»µ½Ë. Ú¾³´° ½µÁº¾»Ìº¾ ÁµºÆ¸¹ ¸¼µÎ ¾´¸½°º¾²¾µ ¸¼Ï, \.{CWEAVE} ¿¾»°³°µÂ ½¾¼µÀ ¿µÀ²¾¹ ¸· ½¸Å ½¾¼µÀ¾¼, Á¾¾Â²µÂÁ²ÃÎɸ¼ ;¼Ã ¸¼µ½¸, ¸ ¾½° ²Á°²»ÏµÂ ² º¾½µÆ ÁµºÆ¸¸ ÁÁË»ºÃ: `See also sections~\dots' ("á¼. °º¶µ ÁµºÆ¸¸~\dots"), ² º¾Â¾À¾¹ ¿µÀµÇ¸Á»µ½Ë ½¾¼µÀ° ²ÁµÅ ¾Á°»Ì½ËÅ ÁµºÆ¸¹, ¸¼µÎɸŠÍ¾ ¶µ ¸¼Ï. ι²µÂÁ²ÃÎɸ¹ \CEE/-µºÁ ľÀ¼°Â¸ÀõÂÁÏ \.{CWEAVE} °º, Ǿ ²¼µÁ¾ ·½°º° À°²µ½Á²° ² ²Ëž´½¾¼ ´¾ºÃ¼µ½Âµ ¿À¸ÁÃÂÁ²õ ·½°º ͺ²¸²°»µ½Â½¾Á¸, Â.µ. `$\langle\,$section name$\,\rangle\equiv\null$\CEE/ text'. ßÀ¸ ;¼ ² ¿¾Á»µ´ÃÎɸŠÁµºÆ¸ÏÅ Á ͸¼ ¸¼µ½µ¼ ·½°º `$\equiv$' ·°¼µ½ÏµÂÁÏ ½° `$\mathrel+\equiv$', ú°·Ë²°Îɸ¼ ½° ¾, Ǿ \CEE/-ÄÀ°³¼µ½Â ;¹ ÁµºÆ¸¸ ±Ã´µÂ ´¾±°²»µ½ º ÄÀ°³¼µ½Âà ´Àó¾¹ ÁµºÆ¸¸. Ú¾³´° \.{CTANGLE} ½°Ç¸½°µÂ ¸ ¾º°½Ç¸²°µÂ ¾±À°±¾ÂºÃ ÁµºÆ¸¸, ¾½° ²Á°²»ÏµÂ ² ²Ëž´½¾¹ Ä°¹» ´¸ÀµºÂ¸²Ë ¿Àµ¿À¾ÆµÁÁ¾À° \.{\#line}, °º Ǿ ½¾¼µÀ° ÁÂÀ¾º ² Á¾¾±Éµ½¸ÏÅ ¾± ¾È¸±º°Å ¸ ¿À¸ ¾Â»°´ºµ ¿À¾³À°¼¼Ë ±Ã´Ã ÁÁË»°ÂÌÁÏ ½° ¸Áž´½Ë¹ \.{CWEB}-Ä°¹». Ñ»°³¾´°ÀÏ Í¾¼Ã, ² ±¾»Ìȸ½Á²µ Á»ÃÇ°µ² ¾ ¿¾»ÃÇ°µ¼¾¼ \CEE/-Ä°¹»µ ¼¾¶½¾ ¿À¾Á¾ ·°±ËÂÌ. \section ç¾ ´µ»°µÂ \.{CWEAVE}. Þ±É°Ï ¸´µÏ \.{CWEAVE} --- Á¾·´°ÂÌ ¸· Ä°¹»° \.{CWEB} Ä°¹» \.{.tex} °º¸¼ ¾±À°·¾¼: ¿µÀ²°Ï ÁÂÀ¾º° ¿¾»ÃÇ°µ¼¾³¾ Ä°¹»° \.{.tex} ú°·Ë²°µÂ \TeX'à ·°³À÷¸ÂÌ Ä°¹» ¼°ºÀ¾¾¿Àµ´µ»µ½¸¹, ¾¿¸Á˲°ÎɸŠľÀ¼°Â \.{CWEB}-´¾ºÃ¼µ½Â¾². Ô°»µµ ² \.{tex}-Ä°¹» º¾¿¸ÀõÂÁÏ ÂµºÁ ¿Àµ°¼±Ã»Ë, À°Á¿¾»¾¶µ½½Ë¹ ¿µÀµ´ ¿µÀ²¾¹ ÁµºÆ¸µ¹. װµ¼ Á»µ´ÃµÂ ¿¾ ¾ÇµÀµ´¸ ²Ë²¾´ º°¶´¾¹ ÁµºÆ¸¸, ²¾·¼¾¶½¾ ²¿µÀµ¼µÈºÃ Á º¾¼°½´°¼¸ ¾º¾½Ç°½¸Ï ÁÂÀ°½¸ÆË. Ý°º¾½µÆ, \.{CWEAVE} ³µ½µÀ¸Àõ Á¸Áµ¼Ã ¿µÀµºÀµÁ½ËÅ ÁÁË»¾º: ´»Ï º°¶´¾³¾ \CEE/-¸´µ½Â¸Ä¸º°Â¾À° ú°·Ë²°ÎÂÁÏ ½¾¼µÀ° ²ÁµÅ ÁµºÆ¸¹, ² º¾Â¾ÀËÅ ¾½ ¸Á¿¾»Ì·ÃµÂÁÏ, ° °º¶µ ÁÂÀ¾¸ÂÁÏ °»Ä°²¸Â½Ë¹ Á¿¸Á¾º ²ÁµÅ ¸¼µ½ ÁµºÆ¸¹, ° °º¶µ ¾³»°²»µ½¸µ, Á¾´µÀ¶°Éµµ ½¾¼µÀ° ÁÂÀ°½¸Æ ¸ ÁµºÆ¸¹ ´»Ï ²ÁµÅ ``·°³»°²½ËÅ'' ÁµºÆ¸¹. ÒË Á¿À¾Á¸Âµ, Ǿ °º¾µ ``·°³»°²½°Ï'' ÁµºÆ¸Ï (``starred-section'')? ᵺƸ¸, º¾Â¾À˵ ½°Ç¸½°ÎÂÁÏ `\.{@*}' ²¼µÁ¾ `\.{@\ }' ¾±¾·½°Ç°Î ½°Ç°»¾ ½¾²¾¹ ³Àÿ¿Ë ÁµºÆ¸¹. ß¾Á»µ `\.{@*}' ú°·Ë²°µÂÁÏ ¸¼Ï ³Àÿ¿Ë, ¾º°½Ç¸²°ÎɵµÁÏ Â¾Çº¾¹. â°º¸µ ³Àÿ¿Ë ² ´¾ºÃ¼µ½Âµ \TEX/ ²Áµ³´° ½°Ç¸½°Î ½¾²ÃÎ ÁÂÀ°½¸ÆÃ, ¸ ¸Å ¸¼Ï ¸Á¿¾»Ì·ÃµÂÁÏ ² º¾»¾½Â¸Âûµ ²ÁµÅ ¿¾Á»µ´ÃÎɸŠÁÂÀ°½¸Æ ´¾ ¿¾Ï²»µ½¸Ï ¾ÇµÀµ´½¾¹ ·°³»°²½¾¹ ÁµºÆ¸¸. Ø¼Ï ³Àÿ¿Ë °º¶µ ·°½¾Á¸ÂÁÏ ² ¾³»°²»µ½¸µ ¸ ¿µÇ°Â°µÂÁÏ ² ½°Ç°»µ ÁµºÆ¸¸ ¶¸À½Ë¼ ÈÀ¸Ä¾¼. ßÀµ´¾ÁµÀµ¶µ½¸µ: ½µ ¸Á¿¾»Ì·Ã¹Âµ ² °º¸Å ¸¼µ½°Å ÿÀ°²»ÏÎɸŠ¿Àµ´»¾¶µ½¸¹ \TeX'°, µÁ»¸ ²Ë ½µ òµÀµ½Ë, Ǿ ¼°ºÀ¾¾¿Àµ´µ»µ½¸Ï ¸· \.{cwebmac} ½µ º¾½Ä»¸ºÂÃΠÁ ½¸¼¸. ßÀ¸Ç¸½¾¹ ;¼Ã Á»Ã¶¸Â ¾, Ǿ ¸¼Ï ³Àÿ¿Ë ±Ã´µÂ ¿Àµ¾±À°·¾²°½¾ ² ²µÀŽ¸¹ Àµ³¸ÁÂÀ, º¾³´° ¾½¾ ¿¾Ï²»ÏµÂÁÏ ² º¾»¾½Â¸Âûµ, ° °º¶µ ±Ã´µÂ ²Ë²µ´µ½¾ ¶¸À½Ë¼ ÈÀ¸Ä¾¼ ² ½°Ç°»µ ÁµºÆ¸¸ ¸ ·°¿¸Á°½¾ ²¾ ²Àµ¼µ½½Ë¹ Ä°¹»-¾³»°²»µ½¸µ, °º Ǿ ¸Á¿¾»Ì·Ãµ¼Ëµ º¾¼°½´Ë ´¾»¶½Ë À°±¾Â°ÂÌ ¿À°²¸»Ì½¾ ²¾ ²ÁµÅ ͸ŠÀµ¶¸¼°Å. \TeX-Ä°¹», ¿¾»Ãǵ½½Ë¹ Á ¿¾¼¾ÉÌÎ \.{CWEAVE}, ´»Ï º°¶´¾¹ ÁµºÆ¸¸ Á¾´µÀ¶¸Â Á»µ´ÃÎɵµ: ²¾-¿µÀ²ËÅ, ½¾¼µÀ ÁµºÆ¸¸ (Â.µ. `\.{\\M123.}' ² ½°Ç°»µ ÁµºÆ¸¸ ½¾¼µÀ 123, ·° ¸Áº»Îǵ½¸µ¼ ·°³»°²½ËÅ ÁµºÆ¸¹, ² ½°Ç°»µ º¾Â¾ÀËÅ ²¼µÁ¾ `\.{\\M}' Á»µ´ÃµÂ `\.{\\N}'). Ô°»µµ Á»µ´ÃµÂ \TeX-Ç°ÁÂÌ ÁµºÆ¸¸, Áº¾¿¸À¾²°½½°Ï ¿¾Ç¸ ´¾Á»¾²½¾, º°º ¾¿¸Á°½¾ ½¸¶µ. ÒÁ»µ´ ·° ͸¼ ¸´Ã ¿À¾¼µ¶Ã¾ǽ°Ï ¸ \CEE/-Ç°Á¸ ÁµºÆ¸¸, À°·´µ»µ½½Ëµ ½µ±¾»Ìȸ¼ ¿À¾¼µ¶Ãº¾¼, µÁ»¸ ¾½¸ ¾±µ ½µ¿ÃÁÂ˵. í¸ ´²µ Ç°Á¸ ¿¾»Ãǵ½Ë ²Á°²º¾¹ ¼½¾¶µÁ²° ·°Âµ¹»¸²ËÅ \TeX-¼°ºÀ¾Á¾² ² \CEE/-¿À¾³À°¼¼Ã. í¸ ¼°ºÀ¾ÁË Ã¿À°²»ÏΠ¸¿¾³À°ÄÁº¸¼¸ ¿¾´À¾±½¾ÁÂϼ¸, °º¸¼¸, º°º ÈÀ¸ÄÂË, ¿À°²¸»Ì½°Ï À°ÁÁ°½¾²º° ¿À¾±µ»¾² ² ¼°Âµ¼°Â¸ÇµÁº¸Å ľÀ¼Ã»°Å, À°·±¸µ½¸µ ½° ÁÂÀ¾º¸ ¸ ¾ÂÁÂÿË. \section \CEE/-º¾´ ² µºÁµ \TeX'° ¸ ½°¾±¾À¾Â. Ú¾³´° ²Ë ½°±¸À°µÂµ \TeX-µºÁÂ, ²¾·¼¾¶½¾, Ǿ ²°¼ ¿¾½°´¾±¸ÂÁÏ Á¾Á»°ÂÌÁÏ ½° ¿µÀµ¼µ½½Ëµ ¸ ´Àó¸µ ¾±®µºÂË \CEE/-¿À¾³À°¼¼Ë, ¿À¸Çµ¼ ¶µ»°Âµ»Ì½¾, Ǿ±Ë ¸Å ¾Ä¾À¼»µ½¸µ Á¾¾Â²µÂÁ²¾²°»¾ ¾¼Ã, Ǿ ¸Á¿¾»Ì·ÃµÂÁÏ ² ¿À¾³À°¼¼µ. Ô»Ï Í¾³¾ \.{CWEB} ¿Àµ´ÃÁ¼°ÂÀ¸²°µÂ ²¾·¼¾¶½¾ÁÂÌ À°·¼µÁ¸ÂÌ ² µ»µ \TeX-µºÁ° º¾½ÁÂÀúƸ¸ Ϸ˺° \CEE/, ¾³À°½¸Ç¸² ¸Å Á¸¼²¾»°¼¸ `\.|'. Ý°¿À¸¼µÀ, ¿ÃÁÂÌ ¼Ë ž¸¼ ½°¿¸Á°ÂÌ Ç¾-¾ ²À¾´µ $$\hbox{ If \\{pa} is declared as `\&{int} ${}{*}\\{pa}$', the assignment $\\{pa}\K{\AND}\|a[\T{0}]$ makes \\{pa} point to the zeroth element of \|a.}$$ ⵺Á ½° Ϸ˺µ \TeX\ ² \.{CWEB}-Ä°¹»µ ±Ã´µÂ °º¸¼: $$\lpile{\.{If |pa| is declared as `|int *pa|', the}\cr \.{assignment |pa=\&a[0]| makes |pa| point to the zeroth element of |a|.}\cr}$$ Ø ½°º¾½µÆ, \.{CWEAVE} ¿Àµ¾±À°·ÃµÂ µ³¾ ² ½µÇ¾ °º¾µ, Ǿ ½¸º¾¼Ã ½µ ·°Å¾Âµ»¾ÁÌ ±Ë ²²¾´¸ÂÌ ²ÀÃǽÃÎ: $$\lpile{\.{If \\\\\{pa\} is declared as `\\\&\{int\} \$\{\}\{*\}\\\\\{pa\}\$',}\cr \.{the assignment \$\\\\\{pa\}\\K\{\\AND\}\\|a[\\T\{0\}]\$}\cr \.{makes \\\\\{pa\} point to the zeroth element of \\|a.}\cr}$$ Þ¼µÂ¸¼, Ǿ °±»¸Æ° ¿µÀµºÀµÁ½ËÅ ÁÁË»¾º, Á¾·´°½½°Ï \.{CWEAVE}, ´»Ï ¿¾´¾±½¾³¾ º¾¼¼µ½Â°À¸Ï ±Ã´µÂ ²º»ÎÇ°ÂÌ ½¾¼µÀ µºÃɵ¹ ÁµºÆ¸¸ ² Á¿¸Áºµ ÁÁË»¾º ½° \\{pa} ½µÁ¼¾ÂÀÏ ½° ¾, Ǿ \\{pa} ¼¾¶µÂ ¸ ½µ ¿¾Ï²¸ÂÌÁÏ ² \CEE/-Ç°Á¸ ;¹ ÁµºÆ¸¸. Ôµ¹Á²¸Âµ»Ì½¾, ¸½´µºÁ ²º»ÎÇ°µÂ ÁÁË»º¸ ½° ¸´µ½Â¸Ä¸º°Â¾ÀË ² ¿¾ÏÁ½ÏÎɸŠº¾¼¼µ½Â°À¸ÏŠ°º ¶µ, º°º ¸ ² Á°¼¾¹ ¿À¾³À°¼¼µ; Ǿ±Ë ¾Æµ½¸ÂÌ ÍÂà ²¾·¼¾¶½¾ÁÂÌ ½µ ¿¾ÂÀµ±ÃµÂÁÏ ¼½¾³¾ ²Àµ¼µ½¸. Ò Â¾ ¶µ ²Àµ¼Ï, ¸´µ½Â¸Ä¸º°Â¾ÀË \&{int} ¸ \|a\ ² ¸½´µºÁ ½µ ¿¾¿°´ÃÂ, ¿¾Â¾¼Ã Ǿ \.{CWEAVE} ½µ ¿¾¼µÉ°µÂ ² ¸½´µºÁ ·°Àµ·µÀ²¸À¾²°½½Ëµ Á»¾²° ¸ ¾´½¾±Ãº²µ½½Ëµ ¸´µ½Â¸Ä¸º°Â¾ÀË. â°º¸µ ¸´µ½Â¸Ä¸º°Â¾ÀË ¿¾»°³°ÎÂÁÏ Á¾»Ì ²µ·´µÁÃɸ¼¸, Ǿ ½µÂ Á¼ËÁ»° ¿µÀµÇ¸Á»ÏÂÌ ²Áµ ¼µÁ°, ³´µ ¾½¸ ²ÁÂÀµÇ°ÎÂÁÏ. ݵÁ¼¾ÂÀÏ ½° ¾, Ǿ ÁµºÆ¸Ï ½°Ç¸½°µÂÁÏ \TEX/-Ç°ÁÂÌÎ ¸ ·°º°½Ç¸²°µÂÁÏ \CEE/-Ç°ÁÂÌÎ, ³À°½¸Æ° ¼µ¶´Ã ½¸¼¸ ¾ǽ¾ ½µ ¾¿Àµ´µ»µ½°, ¿¾Áº¾»ÌºÃ \CEE/-º¾´ ¼¾¶µÂ ±ËÂÌ ²º»Îǵ½ ² µºÁ \TEX/, µÁ»¸ ¾½ ¾³À°½¸Çµ½ `\pb'. н°»¾³¸Ç½¾, µºÁ \TEX/ ·°Ç°ÁÂÃÎ ¿¾Ï²»ÏµÂÁÏ ²½ÃÂÀ¸ \CEE/-º¾´°, ¿¾Áº¾»ÌºÃ ²Áµ, Ǿ ÁǸ°µÂÁÏ º¾¼¼µ½Â°À¸µ¼ (Â.µ. ²Áµ ²½ÃÂÀ¸ \.{/*} ¸ \.{*/}, »¸±¾ ¿¾Á»µ \.{//}) ¸½ÂµÀ¿ÀµÂ¸ÀõÂÁÏ º°º µºÁ \TEX/. â¾Ç½¾ °º ¶µ ¸¼Ï ÁµºÆ¸¸ Á¾´µÀ¶¸Â µºÁ \TEX/, ½¾ º¾½ÁÂÀÃºÆ¸Ï \.{@<¸¼Ï ÁµºÆ¸¸@>} Ƶ»¸º¾¼ ¼¾¶µÂ ¸Á¿¾»Ì·¾²°ÂÌÁÏ ² \CEE/-º¾´µ; Á»µ´¾²°Âµ»Ì½¾, ¿µÀµÅ¾´ ¼µ¶´Ã Àµ¶¸¼°¼¸ \CEE/ ¸~\TEX/ ¾ÁÃɵÁ²»ÏµÂÁÏ µÁµÁ²µ½½¾, º°º ² ͸Š¿À¸¼µÀ°Å: $$ \displaylines{ \hbox{\.{if} \.{(x==0)} \.{@}} \cr \hbox{\.{...} \.{using} \.{the} \.{algorithm} \.{in} \.{|@|.}} } $$ ßµÀ²Ë¹ ¸· ½¸Å ¼¾¶µÂ ±ËÂÌ ½°¹´µ½ ² \CEE/-Ç°Á¸ ÁµºÆ¸¸, ² º¾Â¾ÀÃÎ ±Ã´µÂ ²Á°²»µ½ º¾´ ¸· ÁµºÆ¸¸, ½°·²°½½¾¹ ``Empty the \\{buffer} array''. Ò¾À¾¹ ¿À¸¼µÀ ¸· \TEX/-Ç°Á¸ ÁµºÆ¸¸, º¾Â¾À°Ï »¸ÈÌ ÁÁË»°µÂÁÏ ½° ´ÀóÃÎ ÁµºÆ¸Î, ½¾ ½µ ¾¿Àµ´µ»ÏµÂ ¸ ½µ ¸Á¿¾»Ì·ÃµÂ µµ. (Þ±À°Â¸Âµ ²½¸¼°½¸µ ½° `\pb' ²¾ºÀó ¸¼µ½¸ ÁµºÆ¸¸ ² ;¼ Á»ÃÇ°µ.) \section Ü°ºÀ¾¾¿Àµ´µ»µ½¸Ï. ã¿À°²»ÏÎɸ¹ º¾´ \.{@d}, ·° º¾Â¾À˼ Á»µ´ÃµÂ $$\\{identifier}\.{ }\hbox{\CEE/-º¾´}\qquad\hbox{»¸±¾}\qquad \\{identifier}\.(\\{par}_1,\ldots,\\{par}_n\.{) }\hbox{\CEE/-º¾´}$$ (\\{identifier} ¸ Áº¾±º° ²¾ ²Â¾À¾¼ Á»ÃÇ°µ ½µ ´¾»¶½Ë À°·´µ»ÏÂÌÁÏ ¿À¾±µ»°¼¸) ¿Àµ¾±À°·ÃµÂÁÏ \.{CTANGLE} ² ´¸ÀµºÂ¸²Ã ¿Àµ¿À¾ÆµÁÁ¾À° \.{\#define}, º¾Â¾À˵ À°Á¿¾»°³°ÎÂÁÏ ² ½°Ç°»µ ³µ½µÀ¸Àõ¼¾¹ \CEE/-¿À¾³À°¼¼Ë, º°º ¾¿¸Á°½¾ À°½µµ. Ü°ºÀ¾¾¿Àµ´µ»µ½¸µ `\.{@d}' ¼¾¶µÂ ±ËÂÌ À°·±¸Â¾ ½° ½µÁº¾»Ìº¾ ÁÂÀ¾º, ¿À¸Çµ¼ ½µ ½Ã¶½¾ Á°²¸ÂÌ ² º¾½Æµ ÁÂÀ¾º¸ `\.{\\}' --- ¸Å °²Â¾¼°Â¸ÇµÁº¸ ²Á°²¸Â \.{CTANGLE}. ÕÁ»¸ ¿¾ º°º¾¹-¾ ¿À¸Ç¸½µ ¿¾ÂÀµ±ÃµÂÁÏ ´¸ÀµºÂ¸²° \.{\#define} ² º¾½ºÀµÂ½¾¹ ¾Ǻµ \CEE/-Ä°¹»°, ¼¾¶½¾ ·°´°ÂÌ µµ ² \CEE/-º¾´µ, ° ½µ Á ¿¾¼¾ÉÌÎ \.{CWEB}, ½¾ ² ;¼ Á»ÃÇ°µ ¿À¸´µÂÁÏ ¼°Áº¸À¾²°ÂÌ Á¸¼²¾»Ë ¿µÀµ²¾´° ÁÂÀ¾º¸ Á°¼¾Á¾Ïµ»Ì½¾. \section áÂÀ¾º¸ ¸ º¾½Á°½ÂË. ÕÁ»¸ ²°¼ ½Ã¶½° ² \CEE/-º¾´µ ÁÂÀ¾º¾²°Ï º¾½Á°½Â°, ¾³À°½¸Çµ½½°Ï \.' ¸»¸ \.", µµ ¼¾¶½¾ ·°´°ÂÌ º°º ¾±Ëǽ¾, ·° ¸Áº»Îǵ½¸µ¼ ¾³¾, Ǿ Á¸¼²¾» `\.@' ´¾»¶µ½ ±ËÂÌ ¿Àµ´Á°²»µ½ `\.{@@}' (; µ´¸½Á²µ½½Ë¹ ÿÀ°²»ÏÎɸ¹ Á¸¼²¾», º¾Â¾À˹ ¼¾¶µÂ ¿¾Ï²»ÏÂÌÁÏ ²½ÃÂÀ¸ ÁÂÀ¾º¸, Á¼. ´°»µµ). áÂÀ¾º¾²Ëµ º¾½Á°½ÂË ½µ ´¾»¶½Ë Á¾´µÀ¶°ÂÌ Á¸¼²¾»¾² ¿µÀµ²¾´° ÁÂÀ¾º¸, µÁ»¸ ¾½¸ ½µ ·°¼°Áº¸À¾²°½Ë~`\.{\\}'. \TEX/ ¸ \CEE/ ¿Àµ´»°³°Î À°·»¸Ç½Ëµ Á¿¾Á¾±Ë ·°´°½¸Ï ²¾Á̼µÀ¸Ç½ËÅ ¸ ȵÁ½°´Æ°Â¸À¸Ç½ËÅ º¾½Á°½Â, ¿¾Áº¾»ÌºÃ \TEX/ ¾À¸µ½Â¸À¾²°½ ½° ¿¾´³¾Â¾²ºÃ µºÁ° ǵ»¾²µº¾¼, ° \CEE/ --- ½° ¼°È¸½½ÃÎ ¾±À°±¾ÂºÃ. Ò \TEX/ º¾½Á°½Â° ¾±®Ï²»ÏµÂÁÏ ²¾Á̼µÀ¸Ç½¾¹ ¸»¸ ȵÁ½°´Æ°Â¸À¸Ç½¾¹ Á ¿¾¼¾ÉÌÎ ¿ÀµÄ¸ºÁ° \.' »¸±¾~\." Á¾¾Â²µÂÁ²µ½½¾; ² \CEE/ ¿ÀµÄ¸ºÁË ¸¼µÎ ²¸´ \.0 ¸ \.{0x}. Ò~\.{CWEB} À°·ÀµÈµ½¾ ¸Á¿¾»Ì·¾²°ÂÌ ¾±° Á¾³»°Èµ½¸Ï °¼, ³´µ ¾½¸ ¿À¸½ÏÂË: ² \CEE/-º¾´µ Ǿ±Ë ¿¾»ÃǸÂÌ $40_8$ ·°´°µÂÁÏ `\.{040}' ¸ \.{CTANGLE} ±µ· ¸·¼µ½µ½¸¹ º¾¿¸Àõ Í¾ ² \CEE/-Ä°¹» º ô¾²¾»ÌÁ²¸Î º¾¼¿¸»Ï¾À°, ° \.{CWEAVE} ¿µÇ°Â°µÂ º°º $\T{\~40}$. н°»¾³¸Ç½¾, \.{CWEAVE} ¿µÇ°Â°µÂ ȵÁ½°´Æ°Â¸À¸Ç½ÃÎ \CEE/-º¾½Á°½Âà `\.{0x20}' º°º \T{\^20}. ØÁ¿¾»Ì·¾²°½¸µ ºÃÀÁ¸²° ´»Ï ²¾Á̼µÀ¸Ç½ËŠƸÄÀ ¸ ÈÀ¸Ä° ¿¸ÈÃɵ¹ ¼°È¸½º¸ ´»Ï ȵÁ½°´Æ°Â¸À¸Ç½ËŠûÃÇÈ°µÂ ²¾Á¿À¸Ï¸µ ͸Šº¾½Á°½Â ² ´¾ºÃ¼µ½Âµ. Ô»Ï Á¾ÅÀ°½µ½¸Ï ¾±É½¾Á¸ ¼¾¶½¾ ¸Á¿¾»Ì·¾²°ÂÌ `\.{|040|}' ¸~`\.{|0x20|}' ² \TEX/-Ç°Á¸ ÁµºÆ¸¸. \section ã¿À°²»ÏÎɸµ Á¸¼²¾»Ë. {\sl ã¿À°²»ÏÎɸ¹ Á¸¼²¾» (control code)\/} \.{CWEB} --- ; º¾¼±¸½°Æ¸Ï ´²ÃÅ Á¸¼²¾»¾², ¸· º¾Â¾ÀËÅ ¿µÀ²Ë¹ `\.@'. ÜË Ã¶µ ¾·½°º¾¼¸»¸ÁÌ Á ½°·½°Çµ½¸µ¼ ½µº¾Â¾ÀËÅ ¸· ½¸Å, ° µ¿µÀÌ ¸·»¾¶¸¼ ; ±¾»µµ ¾ǽ¾. Ò ½¸¶µÁ»µ´ÃÎɵ¼ Á¿¸Áºµ ±Ãº²Ë ² º²°´À°Â½ËÅ Áº¾±º°Å ú°·Ë²°Î º¾½ÂµºÁÂ, ² º¾Â¾À¾¼ º°¶´Ë¹ ÿÀ°²»ÏÎɸ¹ Á¸¼²¾» ¸¼µµÂ Á¼ËÁ». $L$ ¾·½°Ç°µÂ, Ǿ Á¸¼²¾» ´¾¿ÃÁ¸¼ ² ¿Àµ°¼±Ã»µ, $T$ (\TEX/), $M$ (middle) ¸ $C$ --- ² º°¶´¾¹ ¸· ÂÀµÅ Ç°Áµ¹ ÁµºÆ¸¸ ½° ²µÀŽµ¼ ÃÀ¾²½µ (Â.µ. ²¾²½µ º¾½ÁÂÀúƸ¸ `\pb' ¸ ¸¼µ½ ÁµºÆ¸¹). áÂÀµ»º° $\to$ ¾±¾·½°Ç°µÂ, Ǿ ÿÀ°²»ÏÎɸ¹ Á¸¼²¾» ·°²µÀÈ°µÂ µºÃÉÃÎ Ç°ÁÂÌ \.{CWEB}-Ä°¹»° ¸ ½°Ç¸½°µÂ Á»µ´ÃÎÉÃÎ Ç°ÁÂÌ, ú°·°½½ÃÎ ±Ãº²¾¹ ¿¾Á»µ ÁÂÀµ»º¸. Ý°¿À¸¼µÀ, $[LTMC\to T]$ ¿¾Á»µ \.{@\ } ·½°Ç¸Â, Ǿ ÿÀ°²»ÏÎɸ¹ º¾´ ¼¾¶µÂ ¿¾Ï²¸ÂÌÁÏ ² ¿Àµ°¼±Ã»µ »¸±¾ ² »Î±¾¹ ¸· ÂÀµÅ Ç°Áµ¹ ÁµºÆ¸¸, ¸ Ǿ ¾½ ½°Ç¸½°µÂ \TEX/-Ç°ÁÂÌ (²¾·¼¾¶½¾ ¿ÃÁÂÃÎ) µºÃɵ¹ ÁµºÆ¸¸. Õɵ ´²° Á¾ºÀ°Éµ½¸Ï ¼¾³Ã ±ËÂÌ Ãº°·°½Ë ² ͸Šº²°´À°Â½ËÅ Áº¾±º°Å: Ñú²°~$r$ ¾·½°Ç°µÂ {\it ¾³À°½¸Çµ½½Ë¹ º¾½ÂµºÁ (restricted context)}, ¾ µÁÂÌ, Á¾´µÀ¶¸¼¾µ \CEE/-º¾¼¼µ½Â°À¸µ², ¸¼µ½ ÁµºÆ¸¹, \CEE/-ÁÂÀ¾º ¸ ÿÀ°²»ÏÎɸŠµºÁ¾² (¾¿Àµ´µ»µ½Ë ´°»µµ). Ñú²° $c$ --- ; {\it ²½ÃÂÀµ½½¸¹ \CEE/-º¾½ÂµºÁ (inner \CEE/ context)} ¸»¸ \CEE/-º¾´ ²½ÃÂÀ¸`\pb' (²º»ÎÇ°Ï º¾¼¼µ½Â°À¸¸ ²½ÃÂÀ¸ `\pb', ½¾ ½µ ² ´Àó¸Å ¾³À°½¸Çµ½½ËÅ º¾½ÂµºÁ°Å). ײµ·´¾Çº° $*$ ¿¾Á»µ Áº¾±¾º ú°·Ë²°µÂ, Ǿ ͸¼ ÿÀ°²»ÏÎɸ¼ Á¸¼²¾»¾¼ ½°Ç¸½°µÂÁÏ ¾³À°½¸Çµ½½Ë¹ º¾½ÂµºÁÂ, º¾Â¾À˹ ·°²µÀÈ°µÂÁÏ ¿°À½¾¹ \.{@>} Ñú²Ë ² ÿÀ°²»ÏÎɸŠÁ¸¼²¾»°Å ½µ À°·»¸Ç°ÎÂÁÏ ¿¾ Àµ³¸ÁÂÀÃ. â°º, \.{@d} ¾·½°Ç°µÂ ¾ ¶µ Á°¼¾µ, Ǿ ¸ \.{@D}. Ô°»µµ À°ÁÁ¼¾ÂÀµ½Ë ¾»Ìº¾ Á¸¼²¾»Ë Á ±Ãº²°¼¸ ½¸¶½µ³¾ Àµ³¸ÁÂÀ°. \gdef\@#1[#2] {\penalty-50\yskip\hangindent 2em\noindent\.{@#1\unskip \spacefactor1000{ }}$[#2]$\quad} \def\more{\hangindent 2em \hangafter0} \def\subsec{\penalty-300\medskip\noindent} \@@ [LTMCrc] ß°À° Á¸¼²¾»¾² \.@ ¿Àµ´Á°²»ÏµÂ Á°¼ Á¸¼²¾» `\.@'. í¾ µ´¸½Á²µ½½Ë¹ ÿÀ°²»ÏÎɸ¹ º¾´, º¾Â¾À˹ ´µ¹Á²õ ¿¾²ÁδÃ. ×°¼µÂ¸¼, Ǿ ²°¼ ¿À¸´µÂÁÏ ¸Á¿¾»Ì·¾²°ÂÌ Í¾ Á¾³»°Èµ½¸µ, µÁ»¸ ²Ë ú°·Ë²°µÂµ email-°´ÀµÁ ² \.{CWEB}-Ä°¹»µ (½°¿À¸¼µÀ, \.{levy@@geom.umn.edu}). \subsec ỵ´ÃÎɸµ º¾´Ë ¿Àµ´Á°²»ÏΠ\TEX/-Ç°ÁÂÌ ÁµºÆ¸¸. \@\ [LTMC\to T] Þ·½°Ç°µÂ ½°Ç°»¾ ½¾²¾¹ (½µ ·°³»°²½¾¹) ÁµºÆ¸¸. Ḽ²¾» °±Ã»ÏƸ¸, ¿À¾³¾½° ÁÂÀ°½¸ÆË ¸»¸ º¾½Æ° ÁÂÀ¾º¸, Á»µ´ÃÎɸµ ·° ·½°º¾¼ \.@, ͺ²¸²°»µ½Â½Ë ¿À¾±µ»Ã (º°º ¸ ² ±¾»Ìȸ½Á²µ ´Àó¸Å Á»ÃÇ°µ²). \@* [LTMC\to T] Þ¼µÇ°µÂ ½°Ç°»¾ ½¾²¾¹ ·°³»°²½¾¹ ÁµºÆ¸¸, Â.µ. ÁµºÆ¸¸, ½°Ç¸½°Îɵ¹ ½¾²ÃÎ ³Àÿ¿Ã. Ý°·²°½¸µ ;¹ ³Àÿ¿Ë ´¾»¶½¾ Á»µ´¾²°ÂÌ ·° \.{@*} ¸ ·°²µÀÈ°ÂÌÁÏ Â¾Çº¾¹. Ú°º ú°·°½¾ ²Ëȵ, ² ½µ¼ ½µ ´¾»¶½Ë ¸Á¿¾»Ì·¾²°ÂÌÁÏ Ã¿À°²»ÏÎɸµ ¿¾Á»µ´¾²°Âµ»Ì½¾Á¸ \TEX/'°, ºÀ¾¼µ ´¾Á°¾ǽ¾ ¿À¾ÁÂËÅ. Ú¾³´° \.{CWEAVE} ¸ \.{CTANGLE} ÁǸÂ˲°Î \.{@*}, ¾½¸ ²Ë²¾´Ï ½° µÀ¼¸½°» Á¸¼²¾» `*' ¸ ½¾¼µÀ µºÃɵ¹ ÁµºÆ¸¸, °º Ǿ ¿¾»Ì·¾²°Âµ»Ì ¼¾¶µÂ ²¸·Ã°»Ì½¾ Á»µ´¸ÂÌ ·° ¿À¾´²¸¶µ½¸µ¼ À°±¾ÂË. á°¼°Ï ¿µÀ²°Ï ÁµºÆ¸Ï ¶µ»°Âµ»Ì½¾ ´¾»¶½° ±ËÂÌ ·°³»°²½¾¹. \more ÒË ¼¾¶µÂµ ú°·°ÂÌ ``³»Ã±¸½Ã'' ·°³»°²½¾¹ ÁµºÆ¸¸, ²²¾´Ï \.* »¸±¾ ´µÁϸÀ¸Ç½¾µ ǸÁ»¾ ¿¾Á»µ \.{@*}, ¾Â¼µÇ°Ï ͸¼ ¾Â½¾Á¸Âµ»Ì½¾µ À°Á¿¾»¾¶µ½¸µ µºÃɵ¹ ³Àÿ¿Ë ÁµºÆ¸¹ ² ¸µÀ°ÀŸ¸ ¿À¾³À°¼¼Ë. ç°Á¸ ¿À¾³À°¼¼Ë ²µÀŽµ³¾ ÃÀ¾²½Ï, ¾±¾·½°Çµ½½Ëµ \.{@**}, ²Ë´µ»ÏÎÂÁÏ ² ¾³»°²»µ½¸¸ ¶¸À½Ë¼ ÈÀ¸Ä¾¼: ±Ã´µ¼ ³¾²¾À¸ÂÌ, Ǿ ¸Å ³»Ã±¸½°~$-1$. Ò ¿À¾Â¸²½¾¼ Á»ÃÇ°µ, ³»Ã±¸½° ¿Àµ´Á°²»ÏµÂ Á¾±¾¹ ½µ¾ÂÀ¸Æ°Âµ»Ì½¾µ ǸÁ»¾, º¾Â¾À¾µ ¾¿Àµ´µ»ÏµÂ ²µ»¸Ç¸½Ã ¾ÂÁÂÿ° ² ¾³»°²»µ½¸¸. ß¾´¾±½Ëµ ¾ÂÁÂÃ¿Ë ¿¾¼¾³°Î ¿À¾ÏÁ½¸ÂÌ ÁÂÀúÂÃÀà ´»¸½½¾¹ ¿À¾³À°¼¼Ë. ÕÁ»¸ ³»Ã±¸½° ½µ ú°·°½° ϲ½¾, ¾½° ¿¾»°³°µÂÁÏ À°²½¾¹ 0. ÕÁ»¸ ²°È° ¿À¾³À°¼¼° º¾À¾Âº°, ¾, ¿¾-²¸´¸¼¾¼Ã, ²¾·¼¾¶½¾ ±Ã´µÂ ¾Á°²¸ÂÌ ·½°Çµ½¸µ ³»Ã±¸½Ë ½Ã»µ²Ë¼. ×°³»°²½Ëµ ÁµºÆ¸¸ ²Áµ³´° À°Á¿¾»°³°ÎÂÁÏ ½° ½¾²¾¹ ÁÂÀ°½¸Æµ ²Ë²¾´°, µÁ»¸ ¾»Ìº¾ ³»Ã±¸½° ½µ ¿Àµ²ËÈ°µÂ~1. \subsec ßÀ¾¼µ¶Ã¾ǽ°Ï Ç°ÁÂÌ º°¶´¾¹ ÁµºÆ¸¸ Á¾´µÀ¶¸Â ¿À¾¸·²¾»Ì½¾µ º¾»¸ÇµÁ²¾ ¼°ºÀ¾¾¿Àµ´µ»µ½¸¹ (½°Ç¸½°ÎɸÅÁÏ Á \.{@d}) ¸ ¾¿Àµ´µ»µ½¸¹ ľÀ¼°Â¾² (¿Àµ´²°Àϵ¼ËÅ \.{@f} »¸±¾ \.{@s}), À°Á¿¾»¾¶µ½½ËÅ ² ¿À¾¸·²¾»Ì½¾¼ ¿¾ÀÏ´ºµ. \@d [TM\to M] Ü°ºÀ¾¾¿Àµ´µ»µ½¸µ: ½°Ç¸½°µÂÁÏ \.{@d}, ·° º¾Â¾À˼ ¸´Ã ¸´µ½Â¸Ä¸º°Â¾À, ½µ¾±Ï·°Âµ»Ì½Ëµ ¿°À°¼µÂÀË ¸ \CEE/-º¾´, º°º ¾¿¸Á°½¾ À°½µµ. \@f [TM\to M] Þ¿Àµ´µ»µ½¸µ ľÀ¼°Â°: ½°Ç¸½°µÂÁÏ \.{@f}; ¾½¸ ú°·Ë²°Î \.{CWEAVE} ¾±À°±°Â˲°ÂÌ ¸´µ½Â¸Ä¸º°Â¾ÀË ¾Á¾±Ë¼ ¾±À°·¾¼, º¾³´° ¾½¸ ²ÁÂÀµÇ°ÎÂÁÏ ² \CEE/-º¾´µ. ޱɸ¹ ²¸´ ¾¿Àµ´µ»µ½¸Ï ľÀ¼°Â° --- `\.{@f} \|l \|r', ´°»µµ Á»µ´ÃµÂ ½µ¾±Ï·°Âµ»Ì½Ë¹ º¾¼¼µ½Â°À¸¹, ¾³À°½¸Çµ½½Ë¹ \.{/*} ¸ \.{*/}, ³´µ \|l ¸ \|r --- ¸´µ½Â¸Ä¸º°Â¾ÀË: \.{CWEAVE} ² ´°»Ì½µ¹Èµ¼ ±Ã´µÂ À°ÁÁ¼°ÂÀ¸²°ÂÌ ¸´µ½Â¸Ä¸º°Â¾À \|l °º, º°º ¾½ ; ´µ»°µÂ ² ½°Á¾Ïɸ¹ ¼¾¼µ½Â ´»Ï \|r. í¾ ´°µÂ \.{CWEB}-¿À¾³À°¼¼¸ÁÂà ²¾·¼¾¶½¾ÁÂÌ ²²¾´¸ÂÌ ½¾²Ëµ ·°Àµ·µÀ²¸À¾²°½½Ëµ Á»¾²° ¸/¸»¸ ¾Â¼µ½ÏÂÌ Àµ·µÀ²¸À¾²°½¸µ ½µº¾Â¾ÀËÅ ¸´µ½Â¸Ä¸º°Â¾À¾² Ϸ˺¾¼ \CEE/. ÕÁ»¸ \|r --- Á¿µÆ¸°»Ì½Ë¹ ¸´µ½Â¸Ä¸º°Â¾À `\\{TeX}', ¸´µ½Â¸Ä¸º°Â¾À \|l ±Ã´µÂ ¾ÂľÀ¼°Â¸À¾²°½ º°º ÿÀ°²»ÏÎÉ°Ï ¿¾Á»µ´¾²°Âµ»Ì½¾ÁÂÌ \TEX/. Ý°¿À¸¼µÀ, `\.{@f foo TeX}' ² \.{CWEB}-Ä°¹»µ ¿À¸²µ´µÂ º ¾¼Ã, Ǿ ¸´µ½Â¸Ä¸º°Â¾À \\{foo} ±Ã´µÂ ²Ë²¾´¸ÂÌÁÏ \.{CWEAVE} º°º \.{\\foo}. ßÀ¾³À°¼¼¸Á ´¾»¶µ½ ¾¿Àµ´µ»¸ÂÌ \.{\\foo} ¿¾ Á²¾µ¼Ã ÃÁ¼¾ÂÀµ½¸Î, ¿¾»°³°Ï, Ǿ \TEX/ ½°Å¾´¸ÂÁÏ ² ¼°Âµ¼°Â¸ÇµÁº¾¹ ¼¾´µ. (Ú°¶´Ë¹ Á¸¼²¾» ¿¾´ÇµÀº¸²°½¸Ï ¿Àµ¾±À°·ÃµÂÁÏ ² \.{x}, º¾³´° Á¾·´°µÂÁÏ Ã¿À°²»ÏÎÉ°Ï ¿¾Á»µ´¾²°Âµ»Ì½¾ÁÂÌ \TEX/; °º, \\{foo\_bar} Á°½¾²¸ÂÁÏ \.{\\fooxbar}. ßÀ¾Ç¸µ Á¸¼²¾»Ë, ²º»ÎÇ°Ï Æ¸ÄÀË, ½µ ÂÀ°½Á»¸ÀÃÎÂÁÏ, °º Ǿ \TEX/ ±Ã´µÂ ¿¾»°³°ÂÌ ¸Å ¿°À°¼µÂÀ°¼¸ ¼°ºÀ¾Á°, ° ½µ Ç°ÁÂÌÎ Á°¼¾¹ ÿÀ°²»ÏÎɵ¹ ¿¾Á»µ´¾²°Âµ»Ì½¾Á¸. Ý°¿À¸¼µÀ, $$\.{\\def\\x\#1\{x\_\{\#1\}\} @f x1 TeX @f x2 TeX}$$ ±Ã´µÂ ²Ë²¾´¸ÂÌ \.{x1} ¸ \.{x2} ½µ º°º \\{x1} ¸ \\{x2}, ° º°º $x_1$ ¸ $x_2$. \more \.{CWEAVE} °²Â¾¼°Â¸ÇµÁº¸ ľÀ¼°Â¸Àõ ¸´µ½Â¸Ä¸º°Â¾ÀË, ²²µ´µ½½Ëµ ¿¾ÁÀµ´Á²¾¼ \&{typedef}, º°º ·°Àµ·µÀ²¸À¾²°½½Ëµ Á»¾²°, ¿¾Í¾¼Ã ²°¼ ½µ ¿À¸´µÂÁÏ ¾¿Àµ´µ»ÏÂÌ Ä¾À¼°ÂË Á»¸Èº¾¼ Ç°Á¾. \@s [TM\to M;\;L] н°»¾³¸Ç½¾ \.{@f}, ½¾ \.{CWEAVE} ½µ ¾Â¾±À°¶°µÂ ¾¿Àµ´µ»µ½¸Ï ľÀ¼°Â¾² ² Á²¾µ¼ ²Ë²¾´µ, ¸ ½µ¾±Ï·°Âµ»Ì½Ë¹ \CEE/-º¾¼¼µ½Â°À¸¹ ½µ´¾¿ÃÁ¸¼. ØÁ¿¾»Ì·ÃµÂÁÏ ³»°²½Ë¼ ¾±À°·¾¼ ² \.{@i}-Ä°¹»°Å. \subsec ỵ´ÃÎɸµ º¾´Ë ÿÀ°²»ÏΠ\CEE/-Ç°ÁÂÌÎ ÁµºÆ¸¸. \@{c @p} [TM\to C] \CEE/-Ç°ÁÂÌ ½µ¸¼µ½¾²°½½¾¹ ÁµºÆ¸¸ ½°Ç¸½°µÂÁÏ \.{@c} (»¸±¾ \.{@p}, Â.µ. ``program''; ¾±° ÿÀ°²»ÏÎɸŠÁ¸¼²¾»° ´µ»°Î ¾´½¾ ¸ ¾ ¶µ). í¾ ·°Á°²»ÏµÂ \.{CTANGLE} ´¾¿¾»½¸ÂÌ Á»µ´ÃÎɸ¼ \CEE/-º¾´¾¼ ¿µÀ²¾µ ¿À¸±»¸¶µ½¸µ µºÁ° ¿À¾³À°¼¼Ë, º°º ¾¿¸Á°½¾ ½° ÁÂÀ°½¸Æµ~\tangref. ×°¼µÂ¸¼, Ǿ \.{CWEAVE} ½µ ¿¾¼µÉ°µÂ `\.{@c}' ² \TEX/-²Ë²¾´, °º Ǿ µÁ»¸ ²Ë Á¾·´°µÂµ Ä°¹» \.{CWEB}, ¾Á½¾²Ë²°ÏÁÌ ½° À°Á¿µÇ°Â°½½¾¹ \TEX/'¾¼ \.{CWEB}-´¾ºÃ¼µ½Â°Æ¸¸, ½µ ·°±Ã´Ìµ ú°·°ÂÌ \.{@c} ² Á¾¾Â²µÂÁ²ÃÎɸŠ¼µÁ°Š½µ¸¼µ½¾²°½½ËÅ ÁµºÆ¸¹. \@< [TM\to C;\; C;\; c] $*$ í¾ ÿÀ°²»ÏÎɸ¹ Á¸¼²¾» ¿Àµ´Á°²»ÏµÂ ¸¼Ï ÁµºÆ¸¸ (»¸±¾ ý¸º°»Ì½Ë¹ ¿ÀµÄ¸ºÁ, º°º ú°·°½¾ ²Ëȵ), Á¾´µÀ¶°Éµµ µºÁ \TEX/ ¸ ·°²µÀÈ°ÎɵµÁÏ \.{@>}. Ú¾½ÁÂÀÃºÆ¸Ï \.{@<...@>} ² Ƶ»¾¼ º¾½Æµ¿Âð»Ì½¾ ϲ»ÏµÂÁÏ Í»µ¼µ½Â¾¼ \CEE/-º¾´°. Õµ ¿¾²µ´µ½¸µ ·°²¸Á¸Â ¾Â º¾½ÂµºÁ°: \more Ḽ²¾» \.{@<} ² º¾½ÂµºÁ°Š$T$ ¸ $M$ Á²Ï·Ë²°µÂ Á»µ´ÃÎɵµ ´°»µµ ¸¼Ï ÁµºÆ¸¸ Á µºÃɵ¹ ÁµºÆ¸µ¹, ¸ ¾ÂºÀ˲°µÂ \CEE/-Ç°ÁÂÌ ÁµºÆ¸¸. Ø¼Ï ·°²µÀÈ°µÂÁÏ \.{@>}, ·° º¾Â¾À˼ Á»µ´ÃµÂ \.{=} ¸»¸ \.{+=}. \more Ò º¾½ÂµºÁµ $C$, \.{@<} ú°·Ë²°µÂ, Ǿ ÁµºÆ¸Ï ·´µÁÌ ¸Á¿¾»Ì·ÃµÂÁÏ --- µµ \CEE/-¾¿Àµ´µ»µ½¸Ï ±Ã´Ã ¿¾¼µÉµ½Ë Áδ° \.{CTANGLE}, º°º ¾¿¸Á°½¾ ½° ÁÂÀ°½¸Æµ~\tangref. Ô»Ï ±¾»µµ ¿¾»½¾³¾ ²Ëϲ»µ½¸Ï ¾È¸±¾º \.{CTANGLE} ¸ \.{CWEAVE} ¿Àµ´ÃÁ¼°ÂÀ¸²°Î ²Ë²¾´ Á¾¾±Éµ½¸Ï ² Á»ÃÇ°µ, µÁ»¸ ·° °º¸¼ ¸¼µ½µ¼ ÁµºÆ¸¸ Á»µ´ÃµÂ \.=, ¿¾Áº¾»ÌºÃ ; Áº¾Àµµ ²Áµ³¾ ¾·½°Ç°µÂ ¾¿Àµ´µ»µ½¸µ ½¾²¾¹ ÁµºÆ¸¸, ¸ ¿¾Í¾¼Ã ´¾»¶½¾ ¿Àµ´²°ÀÏÂÌÁÏ \.{@\ }. ÕÁ»¸ ²°¼ ´µ¹Á²¸Âµ»Ì½¾ ½Ã¶½¾ ½°¿¸Á°ÂÌ $\langle\,$foo$\,\rangle=\\{bar}$, ³´µ $\langle\,$foo$\,\rangle$ ¸Á¿¾»Ì·ÃµÂÁÏ, ° ½µ ¾¿Àµ´µ»ÏµÂÁÏ, ¿¾¼µÁ¸µ \.= ½° ½¾²¾¹ ÁÂÀ¾ºµ. \more Ý°º¾½µÆ, ²¾ ²½ÃÂÀµ½½µ¼ \CEE/-º¾½ÂµºÁµ (Â.µ., ²½ÃÂÀ¸ `\pb' ² \TEX/-Ç°Á¸ ÁµºÆ¸¸ ¸»¸ ² º¾¼¼µ½Â°À¸¸), \.{@<...@>} ¾·½°Ç°µÂ, Ǿ Í° ÁµÆ¸Ï Ƹ¸ÀõÂÁÏ. â°º¾µ ¸Á¿¾»Ì·¾²°½¸µ ¸³½¾À¸ÀõÂÁÏ \.{CTANGLE}. Þ¼µÂ¸¼, Ǿ ´°¶µ ² ;¼ Á»ÃÇ°µ ¼Ë ÂÀ°ºÂõ¼ ¸¼Ï ÁµºÆ¸¸ º°º Í»µ¼µ½Â \CEE/, °º º°º ¾½¾ ¾³À°½¸Çµ½¾ \pb. \@( [TM\to C;\;C;\;c] $*$ Ø¼Ï ÁµºÆ¸¸ ¼¾¶µÂ ½°Ç¸½°ÂÌÁÏ \.{@(}. ÒÁµ ±Ã´µÂ À°±¾Â°ÂÌ, º°º ¸ ´»Ï \.{@<}, ½¾ Á µ¼ ¸Áº»Îǵ½¸µ¼, Ǿ \CEE/-º¾´ ÁµºÆ¸¸, ½°·²°½½¾¹ \.{@(foo@>} ±Ã´µÂ ·°¿¸Á°½ \.{CTANGLE} ² Ä°¹» \.{foo}. âµ¼ Á°¼Ë¼ ¼Ë ¼¾¶µ¼ ¿¾»ÃǸÂÌ ¸· ¾´½¾³¾ Ä°¹»° \.{CWEB} ½µÁº¾»Ìº¾ ²Ëž´½ËÅ Ä°¹»¾². (Þ¿Àµ´µ»µ½¸Ï \.{@d} ½µ ¿¾¿°´°Î ² °º¸µ Ä°¹»Ë, ° »¸ÈÌ ² ¾Á½¾²½¾¹ \.{.c}-Ä°¹».) Þ´½¾ ¸· ¿Àµ´½°·½°Çµ½¸¹ ;¹ ²¾·¼¾¶½¾Á¸ ² ¾¼, Ǿ±Ë Á¾·´°ÂÌ ·°³¾»¾²¾Ç½Ëµ Ä°¹»Ë ´»Ï ¿À¾³À°¼¼½ËÅ ¼¾´Ã»µ¹. ÔÀó¸¼ ¿À¸¼µÀ¾¼ µµ ¸Á¿¾»Ì·¾²°½¸Ï Á»Ã¶¸Â ³µ½µÀ°Æ¸Ï µÁ¾², À°Á¿À¾ÁÂÀ°½Ïµ¼ËÅ Á ²°Èµ¹ ¿À¾³À°¼¼¾¹. á¾ÅÀ°½ÏÏ ¸Áž´½Ëµ µºÁÂË ¿À¾³À°¼¼Ë, µµ ·°³¾»¾²¾Ç½Ëµ Ä°¹»Ë ¸ µÁ¾²Ëµ ¿À¾Æµ´ÃÀË Á¾²¼µÁ½¾, ¼Ë ¸¼µµ¼ ±¾»Ìȵ È°½Á¾² ¿¾´´µÀ¶°ÂÌ ¸Å Á¾³»°Á¾²°½½¾ÁÂÌ. Þ¼µÂ¸¼, Ǿ ¸¼µ½¾²°½½°Ï ÁµºÆ¸Ï ¼¾¶µÂ ±ËÂÌ ²Ë²µ´µ½° ² ½µÁº¾»Ìº¾ À°·»¸Ç½ËÅ ²Ëž´½ËÅ Ä°¹»¾², ¿¾Áº¾»ÌºÃ ²Ë ¼¾¶µÂµ ÿ¾¼Ï½ÃÂÌ \.{@} º°º ² \.{@(bar1@>}, °º ¸ ² \.{@(bar2@>}. \@h [Cc] ßÀµ´¿¸Á˲°µÂ \.{CTANGLE} ²Á°²¸ÂÌ ² ÍÂà ¾Ǻà ¾¿Àµ´µ»µ½¸Ï \.{\#define} ¸· ¿À¾¼µ¶Ã¾ǽËÅ Ç°Áµ¹ ²ÁµÅ ÁµºÆ¸¹ ¸ {\it ½µ\/} ·°¿¸Á˲°ÂÌ ¸Å ² ½°Ç°»¾ \CEE/-Ä°¹»°. ß¾»µ·½¾, º ¿À¸¼µÀÃ, ¿À¸ ½µ¾±Å¾´¸¼¾Á¸ À°·¼µÁ¸ÂÌ ¼°ºÀ¾¾¿Àµ´µ»µ½¸Ï ¿¾Á»µ ²º»ÎÇ°µ¼ËÅ Ä°¹»¾². (س½¾À¸ÀõÂÁÏ \.{CTANGLE} ²½ÃÂÀ¸ `\pb'.) \subsec ݵÁº¾»Ìº¾ Á»µ´ÃÎɸŠÿÀ°²»ÏÎɸŠÁ¸¼²¾»¾² ½°Ç¸½°Î ``ÿÀ°²»ÏÎɸµ µºÁÂË'' (``control texts''), ·°²µÀÈ°ÎɸµÁÏ `\.{@>}'. ×°ºÀ˲°ÎÉ°Ï `\.{@>}' ´¾»¶½° ±ËÂÌ ½° ¾¹ ¶µ ÁÂÀ¾ºµ \.{CWEB} Ä°¹»°, Ǿ ¸ ½°Ç°»¾ ÿÀ°²»ÏÎɵ³¾ µºÁ°. Ú¾½ÂµºÁÂ, ½°Ç¸½°Îɸ¹ÁÏ Í¸¼¸ ÿÀ°²»ÏÎɸ¼¸ Á¸¼²¾»°¼¸ ¸ ¾º°½Ç¸²°Îɸ¹ÁÏ \.{@>}, ϲ»ÏµÂÁÏ ¾³À°½¸Çµ½½Ë¼. \@\^ [TMCc] $*$ Ô°»Ì½µ¹È¸¹ ÿÀ°²»ÏÎɸ¹ µºÁÂ, ²¿»¾ÂÌ ´¾ `\.{@>}', ±Ã´µÂ ¿¾¼µÉµ½ ² ¸½´µºÁ ½°ÀÏ´Ã Á ¸´µ½Â¸Ä¸º°Â¾À°¼¸ \CEE/-¿À¾³À°¼¼Ë; ; µºÁ ±Ã´µÂ ½°±À°½ À¾¼°½Áº¸¼ ÈÀ¸Ä¾¼. Ý°¿À¸¼µÀ, Ǿ±Ë ¿¾¼µÁ¸ÂÌ ÄÀ°·Ã ``system dependencies'' (Á¸Áµ¼½Ëµ ·°²¸Á¸¼¾Á¸) ² ¸½´µºÁ, ³µ½µÀ¸Àõ¼Ë¹ \.{CWEAVE}, ¿¾¼µÁ¸µ `\.{@\^system dependencies@>}' ² º°¶´¾¹ ÁµºÆ¸¸, º¾ÂÀÃÎ ²Ë ž¸µ ¾Â¼µÂ¸ÂÌ º°º Á¸Áµ¼½¾-·°²¸Á¸¼ÃÎ. \@. [TMCc] $*$ ß¾Á»µ´ÃÎɸ¹ ÿÀ°²»ÏÎɸ¹ µºÁ ±Ã´µÂ ¿¾¼µÉµ½ ² ¸½´µºÁ ² Á¸»µ ¿¸ÈÃɵ¹ ¼°È¸½º¸ (\.{typewriter} \.{type}). \@: [TMCc] $*$ ι²µÂÁ²ÃÎɸ¹ µºÁ ±Ã´µÂ ¿¾¼µÉµ½ ² ¸½´µºÁ ² ľÀ¼°Âµ, ¾¿¸Á°½½¾¼ \TEX/-¼°ºÀ¾Á¾¼ `\.{\\9}', º¾Â¾À˹ ²Ë ´¾»¶½Ë ¾¿Àµ´µ»¸ÂÌ Â°º, º°º ; ½µ¾±Å¾´¸¼¾. \@t [MCc] $*$ Ô°»Ì½µ¹È¸¹ ÿÀ°²»ÏÎɸ¹ µºÁ ±Ã´µÂ ·°º»Îǵ½ ² \TEX/ \.{\\hbox} ¸ ¾ÂľÀ¼°Â¸À¾²°½ º°º Ç°ÁÂÌ ¾ºÀö°Îɵ¹ µ³¾ \CEE/-¿À¾³À°¼¼Ë. í¾ µºÁ ¸³½¾À¸ÀõÂÁÏ \.{CTANGLE}, ½¾ ¼¾¶µÂ ¸Á¿¾»Ì·¾²°ÂÌÁÏ ² À°·»¸Ç½ËŠƵ»ÏÅ \.{CWEAVE}. Ý°¿À¸¼µÀ, ²Ë ¼¾¶µÂµ ´µ»°ÂÌ º¾¼¼µ½Â°À¸¸, º¾Â¾À˵ Á¾ÇµÂ°Î \CEE/ ¸ º»°ÁÁ¸ÇµÁºÃÎ ¼°Âµ¼°Â¸ºÃ, ²À¾´µ `$\\{size}<2^{15}$', ²²¾´Ï `\.{|size < 2@t\$\^\{15\}\$@>|}'. \@= [MCc] $*$ ã¿À°²»ÏÎɸ¹ µºÁ ±Ã´µÂ ´¾Á»¾²½¾ ²Ë²µ´µ½ ² \CEE/-¿À¾³À°¼¼Ã. \@q [LTMCc] $*$ ã¿À°²»ÏÎɸ¹ µºÁ ¿¾»½¾ÁÂÌÎ ¸³½¾À¸ÀõÂÁÏ --- ; º¾¼¼µ½Â°À¸¹ ¸Áº»ÎǸµ»Ì½¾ ´»Ï Ǹ°µ»µ¹ \.{CWEB}-Ä°¹»°. ä°¹», ¿Àµ´½°·½°Çµ½½Ë¹ ´»Ï ²º»Îǵ½¸Ï ² ¿Àµ°¼±Ã»Ã Á ¿¾¼¾ÉÌÎ \.{@i}, ¼¾¶µÂ Á¾´µÀ¶°ÂÌ ¸½Ä¾À¼°Æ¸Î ¾ Áµ±µ Á°¼¾¼ ² \.{@q} º¾¼¼µ½Â°À¸¸. ÔÀó¸¼ ¸Á¿¾»Ì·¾²°½¸µ¼ ;¹ º¾½ÁÂÀúƸ¸ ¼¾¶µÂ ±ËÂÌ ²¾ÁÁ°½¾²»µ½¸µ ±°»°½Á° Áº¾±¾º ²½ÃÂÀ¸ C-ÁÂÀ¾º, Ǿ±Ë µºÁ¾²Ëµ Àµ´°ºÂ¾ÀË, ¾ÂÁ»µ¶¸²°Îɸµ ¸Å ¿°À½¾ÁÂÌ, "½µ ¿°´°»¸ ² Ⱦ¿¾À" (´°, ¸¼µ½½¾ °º: "go into a tailspin" --- {\sl ßÀ¸¼. ¿µÀµ².\/}). \@! [TMCc] $*$ ݾ¼µÀ ÁµºÆ¸¸ ² ¸½´µºÁµ ±Ã´µÂ ¿¾´ÇµÀº½ÃÂ, µÁ»¸ `\.{@!}' ½µ¿¾ÁÀµ´Á²µ½½¾ ¿Àµ´ÈµÁ²õ ¸´µ½Â¸Ä¸º°Â¾Àà »¸±¾ ÿÀ°²»ÏÎɵ¼Ã µºÁÂÃ, ¿¾¼µÉ°µ¼¾¼Ã ² ¸½´µºÁ. í¾ Á¾³»°Èµ½¸µ ¸Á¿¾»Ì·ÃÎÂ, Ǿ±Ë À°·»¸Ç°ÂÌ ÁµºÆ¸¸, ² º¾Â¾ÀËÅ ¸´µ½Â¸Ä¸º°Â¾À ¾¿Àµ´µ»µ½ »¸±¾ ¾±®ÏÁ½ÏµÂÁÏ ½µº¾Â¾À˼ ¾Á¾±Ë¼ ¾±À°·¾¼, ¾Â ÁµºÆ¸¹, ³´µ ¾½ ¸Á¿¾»Ì·¾²°½. áÁË»º¸ ½° ·°Àµ·µÀ²¸À¾²°½½Ëµ Á»¾²° »¸±¾ ¾´½¾Á¸¼²¾»Ì½Ëµ ¸´µ½Â¸Ä¸º°Â¾ÀË ² ¸½´µºÁ ½µ ¿¾¼µÉ°ÎÂÁÏ, ·° ¸Áº»Îǵ½¸µ¼ ¿¾´ÇµÀº½ÃÂËÅ. `\.{@!}' ½µÏ²½¾ ²Á°²»ÏµÂÁÏ \.{CWEAVE} º¾³´° ¸´µ½Â¸Ä¸º°Â¾À ¾±®Ï²»ÏµÂÁÏ »¸±¾ ¾¿Àµ´µ»ÏµÂÁÏ ² \CEE/-º¾´µ; ½°¿À¸¼µÀ, ¾¿Àµ´µ»µ½¸µ $$\hbox{\&{int} \\{array}[\\{max\_dim}], \\{count}${}=\\{old\_count};$}$$ ¿¾¼µÉ°µÂ ² ¸½´µºÁ ¸¼µ½° \\{array} ¸ \\{count}, ²Ë´µ»ÏÏ ¸Å ¿¾´ÇµÀº¸²°½¸µ¼. ܵº¸, ¾¿Àµ´µ»µ½¸Ï ÄýºÆ¸¹, ¿¾´¾±½Ëµ \\{main}(\&{int}~\\{argc},\,\&{char}~$*$\\{argv}[\,]), ¸ ¾¿Àµ´µ»µ½¸Ï \&{typedef} °º¶µ ¿¾´À°·Ã¼µ²°Î ¿¾´ÇµÀº¸²°½¸µ. Þ¿Àµ´µ»µ½¸Ï ÄýºÆ¸¹ Á°À¾³¾ Á¸»Ï (±µ· ¿À¾Â¾Â¸¿°) ½µ ¾¿Àµ´µ»ÏΠ¸Å °À³Ã¼µ½Â¾², µ¼ ½µ ¼µ½µµ, °À³Ã¼µ½ÂË ±Ã´Ã ¿¾»°³°ÂÌÁÏ ¾¿Àµ´µ»µ½½Ë¼¸ (¸ ±Ã´Ã ¾Â¾±À°¶°ÂÌÁÏ ² ¸½´µºÁµ Á ¿¾´ÇµÀº¸²°½¸µ¼), µÁ»¸ ¸Å ¸¿Ë ¾±®Ï²»µ½Ë ¿µÀµ´ µ»¾¼ ÄýºÆ¸¸ ¾±Ëǽ˼ ¾±À°·¾¼, (½°¿À¸¼µÀ, `\&{int}~\\{argc}; \&{char}~${*}\\{argv}[\,]$; $\{\,\ldots\,\}$'). \subsec ßµÀµ¹´µ¼, ½°º¾½µÆ, º ÿÀ°²»ÏÎɸ¼ Á¸¼²¾»°¼, º¾Â¾À˵ ²»¸ÏΠ¾»Ìº¾ ½° À°±¾Âà \.{CTANGLE}. \@' [MCc] ØÁ¿¾»Ì·¾²°½¸µ ;³¾ ÿÀ°²»ÏÎɵ³¾ Á¸¼²¾»° ¾¿°Á½¾, ¿¾Áº¾»ÌºÃ µ³¾ ·½°Çµ½¸µ ² \.{CWEB} ÁÃɵÁ²µ½½¾ ¾Â»¸Ç°µÂÁÏ ¾Â µ³¾ ¿À¾¾±À°·° ² \.{WEB}. Ò \.{CWEB} ¾½ À°ÁºÀ˲°µÂÁÏ ² ´µÁϸÀ¸Ç½ÃÎ º¾½Á°½ÂÃ, Á¾¾Â²µÂÁ²ÃÎÉÃÎ ASCII-º¾´Ã ÁÂÀ¾º¸ µ´¸½¸Ç½¾¹ ´»¸½Ë (Â.µ. \.{@'a'} ¿Àµ¾±À°·ÃµÂÁÏ \.{CTANGLE} ² \.{97}, ° \.{@'\\t'} --- ² \.9). ÒË ¼¾¶µÂµ ²¾Á¿¾»Ì·¾²°ÂÌÁÏ Í¸¼, µÁ»¸ ž¸µ À°±¾Â°ÂÌ Á ASCII ½° ¼°È¸½µ, ½µ ¸Á¿¾»Ì·ÃÎɵ¹ ÍÂà º¾´¸À¾²ºÃ, ½¾ ² ±¾»Ìȸ½Á²µ Á»ÃÇ°µ² ÁÀµ´Á²° Ϸ˺° \CEE/, ¾¿Àµ´µ»µ½½Ëµ ² \.{}, ²¿¾»½µ ´¾ÁÂ°Â¾Ç½Ë ´»Ï ÃÁÂÀ°½µ½¸Ï ·°²¸Á¸¼¾Á¸ ¾Â º¾´¸À¾²º¸ Á¸¼²¾»¾². \@\& [MCc] Þ¿µÀ°Æ¸Ï \.{@\&} ÁƵ¿»ÏµÂ µºÁ Á»µ²° ¾Â Áµ±Ï Á µºÁ¾¼ Á¿À°²° ¸ ²Ë²¾´¸Â ² \CEE/-Ä°¹» °º, Ǿ ½¸ ¿À¾±µ»Ë, ½¸ ¼°ÀºµÀË º¾½Æ° ÁÂÀ¾º¸ ½µ ±Ã´Ã ²Á°²»µ½Ë ¼µ¶´Ã ½¸¼¸. \@l [L] \.{CWEB}-¿À¾³À°¼¼¸ÁÂË ²¾»Ì½Ë ¸Á¿¾»Ì·¾²°ÂÌ ² \TEX/µ »Î±¾¹ 8-±¸Â½Ë¹ Á¸¼²¾»Ì½Ë¹ º¾´ ¸· ½µÀµ´º¾ ·°¿ÀµÂ½¾³¾ ´¸°¿°·¾½° 128--255; ͸ Á¸¼²¾»Ë °º¶µ ´¾¿ÃÁ¸¼Ë ² ÁÂÀ¾º°Å ¸ ´°¶µ ² ¸´µ½Â¸Ä¸º°Â¾À°Å \CEE/-¿À¾³À°¼¼Ë. Ò À°·»¸Ç½ËÅ À°ÁȸÀµ½¸ÏÅ ±°·¾²¾³¾ Á°½´°À° ASCII ½¸¶½ÏÏ Ç°ÁÂÌ Â°±»¸ÆË (º¾´Ë, ±¾»Ìȸµ 128) Á¾¾Â²µÂÁ²õ ±Ãº²°¼ Á ´¸°ºÀ¸Â¸ÇµÁº¸¼¸ ·½°º°¼¸, Á¸¼²¾»°¼ ½µ »°Â¸½Áº¸Å °»Ä°²¸Â¾² ¸ Â.´. Ú¾³´° °º¸µ Á¸¼²¾»Ë ¿¾Ï²»ÏÎÂÁÏ ² ¸´µ½Â¸Ä¸º°Â¾À°Å, \.{CTANGLE} ·°¼µ½ÏµÂ ¸Å Á°½´°À½˼¸ °»Ä°²¸Â½¾-ƸÄÀ¾²Ë¼¸ Á¸¼²¾»°¼¸ ASCII »¸±¾ \.{\_}, Ǿ±Ë ¸¼µ½° Á¾¾Â²µÂÁ²¾²°»¸ Á¾³»°Èµ½¸Ï¼ Ϸ˺° \CEE/. ßÀ¸ ;¼ ¿À¸¼µ½ÏµÂÁÏ Â°±»¸Æ° ¿µÀµº¾´¸À¾²º¸, º¾Â¾À°Ï ¿¾ ü¾»Ç°½¸Î Á¾¿¾Á°²»ÏµÂ Á º°¶´Ë¼ Á¸¼²¾»¾¼, ¸¼µÎɸ¼ ASCII-º¾´ \T{\^}$ab$ (³´µ $a$ ¸ $b$ --- ȵÁ½°´Æ°ÂµÀ¸Ç½Ëµ ƸÄÀË ¸ $a\ge8$) ÁÂÀ¾ºÃ \.{Xab}. ß¾¼µÁ¸² ² ¿Àµ°¼±Ã»µ º¾½ÁÂÀúƸΠ\.{@l\ ab\ newstring}, ²Ë ú°¶µÂµ \.{CTANGLE} ·°¼µ½ÏÂÌ Í¾ Á¸¼²¾» ÁÂÀ¾º¾¹ \.{newstring}. Ý°¿À¸¼µÀ, ² º¾´¸À¾²ºµ ISO Latin-1 ±Ãº²° `\"u' ¸¼µµÂ º¾´ \T{\^FC} (»¸±¾ \.{'\char`\\374'}), ¸ \.{CTANGLE} ¿¾ ü¾»Ç°½¸Î ·°¼µ½ÏµÂ ² ¸´µ½Â¸Ä¸º°Â¾À°Å ; º¾´ ¿¾Á»µ´¾²°Âµ»Ì½¾ÁÂÌÎ Á¸¼²¾»¾² \.{XFC}. ÕÁ»¸ ²Ë ·°´°´¸Âµ \.{@l} \.{fc} \.{ue}, ¾ ´°»µµ ²¼µÁ¾ ;¹ ±Ãº²Ë ±Ã´µÂ ¿¾´Á°²»ÏÂÌÁÏ \.{ue}. \more \.{CWEAVE} ¿À¾¿ÃÁº°µÂ 8-±¸Â½Ëµ Á¸¼²¾»Ë ¿Àϼ¾ ² \TEX/ ±µ· ÂÀ°½Á»¸ÂµÀ°Æ¸¸; ½¾ ¿À¸ ;¼ \TEX/ ´¾»¶µ½ ±ËÂÌ, ² Á²¾Î ¾ÇµÀµ´Ì, ¿¾´³¾Â¾²»µ½ º ¸Å ¾±À°±¾Âºµ. ÕÁ»¸ ²Ë ľÀ¼°Â¸Àõµ ²Áµ ½µÁ°½´°À½˵ ¸´µ½Â¸Ä¸º°Â¾ÀË º°º ¾Á¾±Ëµ (``custom'') ÿÀ°²»ÏÎɸµ ¿¾Á»µ´¾²°Âµ»Ì½¾Á¸, Á»µ´ÃµÂ ½°ÁÂÀ¾¸ÂÌ \TEX/ °º, Ǿ±Ë ¾½ ²¾Á¿À¸½¸¼°» ²Áµ ¸Å Á¸¼²¾»Ë º°º ±Ãº²Ë. Ò ¿À¾Â¸²½¾¼ Á»ÃÇ°µ Á»µ´ÃµÂ »¸±¾ ¾±®Ï²¸ÂÌ ² \TEX/'µ 8-±¸Â½Ëµ Á¸¼²¾»Ë ``°ºÂ¸²½Ë¼¸'', »¸±¾ ·°³À÷¸ÂÌ ÈÀ¸ÄÂË, Á¾´µÀ¶°É¸µ ² Á¾¾Â²µÂÁ²ÃÎɵ¹ ¿¾·¸Æ¸¸ ½Ã¶½Ëµ Á¿µÆ¸°»Ì½Ëµ Á¸¼²¾»Ë. (Ô»Ï ¸´µ½Â¸Ä¸º°Â¾À¾² ¸Á¿¾»Ì·ÃµÂÁÏ ÈÀ¸ÄÂ, ²Ë±¸À°µ¼Ë¹ º¾¼°½´¾¹ \TEX/'° \.{\\it}.) Øɸµ Á¿µÆ¸°»Ì½Ëµ ¼°ºÀ¾¿°ºµÂË, ½°¿¸Á°½½Ëµ ´»Ï ¸Á¿¾»Ì·¾²°½¸Ï ² \.{CWEB} ²°Èµ³¾ Ϸ˺° »¸±¾, µÁ»¸ ½µ ±¾¸ÂµÁÌ ÂÀô½¾Áµ¹, ½°¿¸È¸Âµ Á²¾¹ Á¾±Á²µ½½Ë¹. \subsec ỵ´ÃÎɸµ ²¾Áµ¼Ì ÿÀ°²»ÏÎɸŠÁ¸¼²¾»¾² (° ¸¼µ½½¾, `\.{@,}', `\.{@/}', `\.{@|}', `\.{@\#}', `\.{@+}', `\.{@;}', `\.{@[}', ¸ `\.{@]}') ½µ ²»¸ÏΠ½° ³µ½µÀ°Æ¸Î \CEE/-¿À¾³À°¼¼Ë \.{CTANGLE}, ½¾ ² ½µº¾Â¾ÀËÅ ½µ¾±ËǽËÅ Á»ÃÇ°ÏÅ ¼¾³Ã ¿¾¼¾ÇÌ Ã»ÃÇȸÂÌ Ç¸Â°µ¼¾ÁÂÌ µµ \TEX/-¿Àµ´Á°²»µ½¸Ï, ¿¾»Ãǵ½½¾³¾ \.{CWEAVE}. ÒÁ¾µ½½Ë¹ °»³¾À¸Â¼ ľÀ¼°Â¸À¾²°½¸Ï ²µÁ̼° žÀ¾È, º¾³´° ¿À¸¼µ½ÏµÂÁÏ º Á¸½Â°ºÁ¸ÇµÁº¸ ¿À°²¸»Ì½¾¹ ¿À¾³À°¼¼µ, ½¾ ½µ ¼¾¶µÂ ÃǵÁÂÌ ²ÁµÅ ²¾·¼¾¶½ËÅ Á¸ÂðƸ¹, ¿¾Â¾¼Ã Ǿ À°±¾Â°µÂ Á ÄÀ°³¼µ½Â°¼¸ µºÁ°, ²º»ÎÇ°Îɸ¼¸ ¼°ºÀ¾ÁË ¸ ¸¼µ½° ÁµºÆ¸¹; °º¸µ ÄÀ°³¼µ½ÂË ½µ ²Áµ³´° Á¾±»Î´°Î Á¸½Â°ºÁ¸Á. ݵÁ¼¾ÂÀÏ ½° ¾, Ǿ \.{CWEB} ¿¾·²¾»ÏµÂ ¿µÀµºÀ˲°ÂÌ °²Â¾¼°Â¸ÇµÁº¾µ ľÀ¼°Â¸À¾²°½¸µ, »ÃÇȵ¹ ÁÂÀ°Âµ³¸µ¹ ±Ã´µÂ ½°Ç°ÂÌ Á ½µ³¾, ¿¾Áº¾»ÌºÃ ¼¾¶µÂ ¾º°·°ÂÌÁÏ, Ǿ ¿¾½°´¾±ÏÂÁÏ »¸ÈÌ ½µÁº¾»Ìº¾ ¼µ»º¸Å º¾ÀÀµºÂ¸². \@, [MCc] í¾ ÿÀ°²»ÏÎɸ¹ Á¸¼²¾» ²Á°²»ÏµÂ ¾½º¸¹ ¿À¾±µ» (thin space) ² ²Ë²¾´ \.{CWEAVE}. ؽ¾³´° ´¾¿¾»½¸Âµ»Ì½Ë¹ ¿À¾±µ» ¼¾¶µÂ ¿¾½°´¾±¸ÂÌÁÏ ¿À¸ ½µ¾±Ëǽ¾¼ ¸Á¿¾»Ì·¾²°½¸¸ ¼°ºÀ¾Á¾², ½°¿À¸¼µÀ, º¾³´° ´²° ¸´µ½Â¸Ä¸º°Â¾À° À°Á¿¾»¾¶µ½Ë ÀÏ´¾¼. \@/ [MC] í¾ ÿÀ°²»ÏÎɸ¹ Á¸¼²¾» ²Ë·Ë²°µÂ À°·À˲ ÁÂÀ¾º¸ ² \CEE/-¿À¾³À°¼¼µ, ¾ÂľÀ¼°Â¸À¾²°½½¾¹ \.{CWEAVE}. à°·ÀË²Ë ÁÂÀ¾º °²Â¾¼°Â¸ÇµÁº¸ ²Ë±¸À°ÎÂÁÏ \TEX/'¾¼ ¿¾ Áŵ¼µ, À°±¾Â°Îɵ¹ º¾ÀÀµºÂ½¾ ² 99\%\ Á»ÃÇ°µ², ½¾ ¸½¾³´° ½µ¾±Å¾´¸¼¾ ϲ½¾µ ú°·°½¸µ, Ǿ±Ë À°·±¸µ½¸µ Á¾¾Â²µÂÁ²¾²°»¾, ¿¾¼¸¼¾ ²½µÈ½µ¹ ¿À¸²»µº°Âµ»Ì½¾Á¸, »¾³¸ºµ ¿À¾³À°¼¼Ë. Ý°¿À¸¼µÀ, ¸Á¿¾»Ì·Ã¹Âµ `\.{@/@,}' ¿µÀµ´ º¾¼¼µ½Â°À¸Ï¼¸, Ǿ±Ë ¾½¸ ½°Ç¸½°»¸ÁÌ Á ½¾²¾¹ ÁÂÀ¾º¸. \@| [MC] í¾ ÿÀ°²»ÏÎɸ¹ Á¸¼²¾» ·°´°µÂ ½µ¾±Ï·°Âµ»Ì½Ë¹ À°·À˲ ÁÂÀ¾º¸ ¿¾ÁÀµ´¸ ²ËÀ°¶µ½¸Ï. Ý°¿À¸¼µÀ, µÁ»¸ ¸¼µµÂÁÏ ´»¸½½¾µ ²ËÀ°¶µ½¸µ ² ¿À°²¾¹ Ç°Á¸ ¿À¸Á²°¸²°½¸Ï, Á ¿¾¼¾ÉÌÎ `\.{@|}' ¼¾¶½¾ ú°·°ÂÌ ² ½µ¼ ²¾·¼¾¶½Ëµ ¾Ǻ¸ À°·À˲°, º¾Â¾À˵ ±Ã´Ã »ÃÇȵ ¿¾´ÇµÀº¸²°ÂÌ »¾³¸ºÃ ¿À¾³À°¼¼Ë, ½µ¶µ»¸ ²Ë±À°½½Ëµ \TEX/'¾¼ °²Â¾¼°Â¸ÇµÁº¸. \@\# [MC] í¾ ÿÀ°²»ÏÎɸ¹ Á¸¼²¾» ²Ë·Ë²°µÂ À°·À˲ ÁÂÀ¾º¸ ¿¾´¾±½¾ \.{@/}, ° °º¶µ ²Á°²»ÏµÂ ½µ±¾»ÌȾ¹ ´¾¿¾»½¸Âµ»Ì½Ë¹ ¿À¾±µ» ² ¾Ǻà À°·À˲°. Þ½ ¼¾¶µÂ ¸Á¿¾»Ì·¾²°ÂÌÁÏ, ½°¿À¸¼µÀ, ¼µ¶´Ã »¾³¸ÇµÁº¸ À°·»¸Ç½Ë¼¸ ³Àÿ¿°¼¸ ¼°ºÀ¾Á¾², À°·¼µÉµ½½Ë¼¸ ² ¾´½¾¹ ÁµºÆ¸¸. \.{CWEB} °²Â¾¼°Â¸ÇµÁº¸ ²Á°²»ÏµÂ °º¾¹ ´¾¿¾»½¸Âµ»Ì½Ë¹ ¿À¾±µ» ¼µ¶´Ã ÄýºÆ¸Ï¼¸, ²½µÈ½¸¼¸ ¾±®Ï²»µ½¸Ï¼¸ ¸ ÄýºÆ¸Ï¼¸, ° °º¶µ ¼µ¶´Ã ¾±®Ï²»µ½¸Ï¼¸ ¸ ¾¿µÀ°Â¾À°¼¸ ² µ»µ ÄýºÆ¸¸. \@+ [MC] í¾ ÿÀ°²»ÏÎɸ¹ Á¸¼²¾» ¼°Áº¸Àõ À°·À˲ ÁÂÀ¾º¸, º¾Â¾À˹ ´¾»¶µ½ ±ËÂÌ Á´µ»°½ \.{CWEAVE}, ½°¿À¸¼µÀ, ¿µÀµ´ `\&{else}', µÁ»¸ ²Ë ž¸µ À°·¼µÁ¸ÂÌ º¾À¾ÂºÃÎ if--else º¾½ÁÂÀúƸΠ½° ¾´½¾¹ ÁÂÀ¾ºµ. ÕÁ»¸ ú°·°ÂÌ `\.{\{@+}' ² ½°Ç°»µ Á¾Á°²½¾³¾ ¾¿µÀ°Â¾À°, ϲ»ÏÎɵ³¾ÁÏ Âµ»¾¼ ÄýºÆ¸¸, ¾ ¿µÀ²¾µ ¾±®Ï²»µ½¸µ ¸»¸ ¾¿µÀ°Â¾À ÄýºÆ¸¸ ±Ã´Ã À°Á¿¾»¾¶µ½Ë ½° ¾¹ ¶µ ÁÂÀ¾ºµ, Ǿ ¸ ¾ÂºÀ˲°ÎÉ°Ï Áº¾±º°, ¸ Á ¾ÂÁÂÿ¾¼, º¾Â¾À˹ ±Ã´µÂ ¿Àµ´ÈµÁ²¾²°ÂÌ ²Â¾À¾¼Ã ¾¿µÀ°Â¾Àà ¸»¸ ¾±®Ï²»µ½¸Î ½° Á»µ´ÃÎɵ¹ ÁÂÀ¾ºµ. \@; [MC] í¾ ÿÀ°²»ÏÎɸ¹ Á¸¼²¾» ¿À¸ ľÀ¼°Â¸À¾²°½¸¸ °½°»¾³¸Çµ½ ¾Ǻµ Á ·°¿Ï¾¹, ½¾ ½µ²¸´¸¼. ÒË ¼¾¶µÂµ ²¾Á¿¾»Ì·¾²°ÂÌÁÏ ½¸¼, ½°¿À¸¼µÀ, ¿¾Á»µ ¸¼µ½¸ ÁµºÆ¸¸ ¸»¸ ¼°ºÀ¾Á°, º¾³´° \CEE/-º¾´, ¿Àµ´Á°²»µ½½Ë¹ ² ;¹ ÁµºÆ¸¸ ¸»¸ ¼°ºÀ¾Áµ, µÁÂÌ Á¾Á°²½¾¹ ¾¿µÀ°Â¾À »¸±¾ ¾º°½Ç¸²°µÂÁÏ Â¾Çº¾¹ Á ·°¿Ï¾¹. ßÀ¸¼µÀ¾¼ °º¾¹ º¾½ÁÂÀúƸ¸ ϲ»ÏµÂÁÏ $$\lpile{\.{if (condition) macro @;}\cr \.{else break;}\cr}$$ ³´µ ¾¿Àµ´µ»µ½¸µ¼ \\{macro} Á»Ã¶¸Â Á¾Á°²½¾¹ ¾¿µÀ°Â¾À (·°º»Îǵ½½Ë¹ ² ĸ³ÃÀ½Ëµ Áº¾±º¸). í¾ žÀ¾È¾ ¸·²µÁ½˹ ½µ´¾Á°¾º Á¸½Â°ºÁ¸Á° \CEE/. \@{[} [MC] á¼. \.{@]}. \@] [MC] ß¾¼µÁ¸µ º²°´À°Â½Ëµ Áº¾±º¸ \.{@[...@]} ²¾ºÀó µºÁ° ¿À¾³À°¼¼Ë, º¾Â¾À˹ ´¾»¶µ½ ±ËÂÌ ¾ÂľÀ¼°Â¸À¾²°½ \.{CWEAVE} º°º ²ËÀ°¶µ½¸µ, µÁ»¸ ;³¾ ½µ ¿À¾¸·¾È»¾. (â°º¾µ ¸½¾³´° Á»ÃÇ°µÂÁÏ Á ½µ¾±Ëǽ˼¸ °À³Ã¼µ½Â°¼¸ ¼°ºÀ¾Á¾².) â°º¶µ ²Á°²»Ï¹Âµ `\.{@[@]}' ¼µ¶´Ã ¸¼µ½µ¼ ¸¿° ¸ »µ²¾¹ Áº¾±º¾¹, º¾³´° ¾±®Ï²»ÏµÂµ ú°·°Âµ»Ì ½° ÄýºÆ¸Î, ²À¾´µ, $$\.{int @[@] (*f)();}$$ ² ¿À¾Â¸²½¾¼ Á»ÃÇ°µ \.{CWEAVE} Á¿Ã°µÂ ¿µÀ²ÃÎ Ç°ÁÂÌ Í¾³¾ ¾¿Àµ´µ»µ½¸Ï Á ²ËÀ°¶µ½¸µ¼ \CPLUSPLUS/ `\&{int}($*f$)'. \subsec ÞÁ°»Ì½Ëµ ÿÀ°²»ÏÎɸµ Á¸¼²¾»Ë \.{CWEB} Àú¾²¾´Ï ²²¾´¾¼ ´°½½ËÅ. \@{x @y @z}[\\{change\_file}] \.{CWEAVE} ¸ \.{CTANGLE} ¿Àµ´½°·½°Çµ½Ë ´»Ï À°±¾ÂË Á ´²Ã¼Ï ²Å¾´½Ë¼¸ Ä°¹»°¼¸, ½°·Ë²°µ¼Ë¼¸ \\{web\_file} ¸ Ä°¹» ¸·¼µ½µ½¸¹ \\{change\_file}, ³´µ \\{change\_file} Á¾´µÀ¶¸Â ´°½½Ëµ, ·°¼µÉ°Îɸµ ¾Â´µ»Ì½Ëµ Ç°Á¸ \\{web\_file}. ൷û̸ÀÃÎɸ¹ µºÁ ¸ µÁÂÌ Â¾Â Á°¼Ë¹ Ä°¹» \.{CWEB}, º¾Â¾À˹ ÿ¾¼¸½°µÂÁÏ ¿¾²Áµ¼µÁ½¾ ² ;¼ Àú¾²¾´Á²µ. \more Ú°º ; À°±¾Â°µÂ: Ä°¹» ¸·¼µ½µ½¸¹ Á¾´µÀ¶¸Â ½Ã»Ì ¸ ±¾»µµ ``º¾ÀÀµºÂ¸²'', ³´µ º¾ÀÀµºÂ¸²° ¸¼µµÂ ²¸´ `\.{@x}$\langle$Á°À˵ ÁÂÀ¾º¸$\rangle$\.{@y}$\langle$% ½¾²Ëµ ÁÂÀ¾º¸$\rangle$\.{@z}'. ῵Ƹ°»Ì½Ëµ ÿÀ°²»ÏÎɸµ Á¸¼²¾»Ë \.{@x}, \.{@y}, \.{@z}, ´¾¿ÃÁ¸¼Ëµ ¾»Ìº¾ ² Ä°¹»°Å ¸·¼µ½µ½¸¹, ´¾»¶½Ë ¿¾Ï²»ÏÂÌÁÏ ² ½°Ç°»µ ÁÂÀ¾º¸, ¾Á°¾º °º¾¹ ÁÂÀ¾º¸ ¸³½¾À¸ÀõÂÁÏ. á¾´µÀ¶¸¼¾µ $\langle$Á°À˵ ÁÂÀ¾º¸$\rangle$ ¿Àµ´Á°²»ÏµÂ ¼°ÂµÀ¸°», º¾Â¾À˹ ¾ǽ¾ Á¾¾Â²µÂÁ²õ ¿¾Á»µ´¾²°Âµ»Ì½Ë¼ ÁÂÀ¾º°¼ \\{web\_file}; ° $\langle$½¾²Ëµ ÁÂÀ¾º¸$\rangle$ Á¾´µÀ¶¸Â ½Ã»Ì ¸»¸ ±¾»µµ ÁÂÀ¾º, º¾Â¾À˼¸ ¿Àµ´¿¾»°³°µÂÁÏ ·°¼µ½¸ÂÌ Á°À˵. Ú°º ¾»Ìº¾ ¿µÀ²°Ï ``Á°À°Ï ÁÂÀ¾º°'' º¾ÀÀµºÂ¸²Ë ¾º°·Ë²°µÂÁÏ Á¾²¿°´°Îɵ¹ Á¾ ÁÂÀ¾º¾¹ ²~\\{web\_file}, ²Áµ ¾Á°»Ì½Ëµ ÁÂÀ¾º¸ ;¹ º¾ÀÀµºÂ¸²Ë °º¶µ ´¾»¶½Ë Á¾²¿°ÁÂÌ. \more ܵ¶´Ã º¾ÀÀµºÂ¸²°¼¸, ¿µÀµ´ ¿µÀ²¾¹ º¾ÀÀµºÂ¸²¾¹ ¸ ¿¾Á»µ ¿¾Á»µ´½µ¹ º¾ÀÀµºÂ¸²Ë Ä°¹» ¸·¼µ½µ½¸¹ ¼¾¶µÂ Á¾´µÀ¶°ÂÌ »Î±¾µ º¾»¸ÇµÁ²¾ ÁÂÀ¾º, ½µ ½°Ç¸½°ÎɸÅÁÏ `\.{@x}', `\.{@y}', »¸±¾~`\.{@z}'. â°º¸µ ÁÂÀ¾º¸ ¿À¾¿ÃÁº°ÎÂÁÏ ¸ ½µ ¸Á¿¾»Ì·ÃÎÂÁÏ ² Á¾¿¾Á°²»µ½¸¸. \more â°º°Ï ²¾·¼¾¶½¾ÁÂÌ ¿¾»µ·½°, º¾³´° À°±¾Â°µÈÌ Á ¾À¸³¸½°»Ì½Ë¼ \.{CWEB}-Ä°¹»¾¼, ¿¾»Ãǵ½½Ë¼ ¾ÂºÃ´°-»¸±¾ (½°¿À¸¼µÀ, \.{tangle.w} ¸ \.{weave.w} »¸±¾ \.{tex.web}), º¾Â¾À˹ ½µ¾±Å¾´¸¼¾ ¸·¼µ½¸ÂÌ ´»Ï °´°¿Â°Æ¸¸ ¿À¾³À°¼¼Ë º ¾Á¾±µ½½¾ÁÂϼ ²°Èµ¹ Á¸Áµ¼Ë. ÒË ¼¾¶µÂµ ¾Â»°¶¸²°ÂÌ Á²¾¸ Á¸Áµ¼½¾-·°²¸Á¸¼Ëµ ¸·¼µ½µ½¸Ï, ½µ ¸Á¿À°²»ÏÏ ¾Á½¾²½¾³¾ Ä°¹»°; ¸ º°º ¾»Ìº¾ ¾½¸ ·°À°±¾Â°ÎÂ, ¸Å ¼¾¶½¾ ±Ã´µÂ »µ³º¾ ²º»ÎÇ°ÂÌ ² ½¾²Ëµ ²µÀÁ¸¸ ¾Á½¾²½¾³¾ Ä°¹»°, º¾Â¾À˵ ±Ã´Ã ¿¾Ï²»ÏÂÌÁÏ ²Àµ¼Ï ¾Â ²Àµ¼µ½¸. \@i [\\{web\_file}] Ò Á²¾Î ¾ÇµÀµ´Ì, \\{web\_file} Á°¼ ¿¾ Áµ±µ ¼¾¶µÂ ±ËÂÌ º¾¼±¸½°Æ¸µ¹ ½µÁº¾»Ìº¸Å Ä°¹»¾². Ú¾³´° \.{CWEAVE} »¸±¾ \.{CTANGLE}, ÁǸÂ˲°Ï Ä°¹», ¾±½°Àö¸²°Î ÿÀ°²»ÏÎɸ¹ Á¸¼²¾» \.{@i} ² ½°Ç°»µ ÁÂÀ¾º¸, ¾½¸ ¿ÀµÀ˲°Î Çµ½¸µ ¸ ½°Ç¸½°Î ¾±À°±¾ÂºÃ Ä°¹»°, ¸¼Ï º¾Â¾À¾³¾ Á»µ´ÃµÂ ·° \.{@i}, ¿¾´¾±½¾ ¿Àµ¿À¾ÆµÁÁ¾Àà º¾¼¿¸»Ï¾À° \CEE/, ¾±À°±°Â˲°Îɵ¼Ã ´¸ÀµºÂ¸²Ã \.{\#include}. ß¾Á»µ ·°²µÀȵ½¸Ï ǵ½¸Ï ²º»ÎÇ°µ¼¾³¾ Ä°¹»° ¿À¾³À°¼¼° ¿µÀµÅ¾´¸Â º Á»µ´ÃÎɵ¹ ÁÂÀ¾ºµ ¸Áž´½¾³¾ Ä°¹»°. Ø¼Ï Ä°¹»°, Á»µ´ÃÎɵµ ·° \.{@i}, ¼¾¶µÂ ¾ºÀö°ÂÌÁÏ Á¸¼²¾»°¼¸ \.", ½¾ ; ½µ¾±Ï·°Âµ»Ì½¾. Òº»Îǵ½¸µ ¼¾¶µÂ ±ËÂÌ ²»¾¶µ½½Ë¼. \more ä°¹»Ë ¸·¼µ½µ½¸¹ ¼¾³Ã ¸¼µÂÌ ÁÂÀ¾º¸, ½°Ç¸½°ÎɸµÁÏ \.{@i}. â°º¸¼ Á¿¾Á¾±¾¼ ²Ë ¼¾¶µÂµ ¿¾´¼µ½ÏÂÌ ¾´¸½ ²º»ÎÇ°µ¼Ë¹ Ä°¹» ´Àó¸¼. Ú¾½Æµ¿Âð»Ì½¾, ¾¿¸Á°½½Ë¹ ²Ëȵ ¼µÅ°½¸·¼ ¿¾´Á°½¾²º¸ ´µ¹Á²õ ¿µÀ²Ë¼, ° ·°Âµ¼ ² µ³¾ ²Ë²¾´µ ¾±À°±°Â˲°ÎÂÁÏ ´¸ÀµºÂ¸²Ë \.{@i}. ÕÁ»¸ \.{@i} \.{foo} ¿¾Ï²¸ÂÁÏ ¼µ¶´Ã \.{@y} ¸ \.{@z} ² Ä°¹»µ ¸·¼µ½µ½¸¹, ¾Â´µ»Ì½Ëµ ÁÂÀ¾º¸ Ä°¹»° \.{foo} ¸ Ä°¹»Ë, º¾Â¾À˵ ¾½ ²º»ÎÇ°µÂ, ½µ ¸·¼µ½ÏÎÂÁÏ; ¼¾´¸Ä¸º°Æ¸¸ ¼¾³Ã ±ËÂÌ ²½µÁµ½Ë ² ÁÂÀ¾º¸, º¾ÂÀ˵ ²º»ÎÇ°»¸ÁÌ ½µ ¸·¼µ½µ½½¾¹ ´¸ÀµºÂ¸²¾¹ input. \more Ò Á¸Áµ¼µ UNIX (¸ ´Àó¸Å, ¿¾´´µÀ¶¸²°ÎɸŠ¿µÀµ¼µ½½Ëµ ¾ºÀöµ½¸Ï), µÁ»¸ ÃÁ°½¾²»µ½° ¿µÀµ¼µ½½°Ï \.{CWEBINPUTS}, »¸±¾ µÁ»¸ ¾´½¾¸¼µ½½¾µ ¾¿Àµ´µ»µ½¸µ ±Ë»¾ ·°´°½¾ ¿À¸ º¾¼¿¸»ÏƸ¸, \.{CWEB} ±Ã´µÂ ¸Á¿¾»Ì·¾²°ÂÌ µµ ·½°Çµ½¸µ ² º°ÇµÁ²µ ¸¼µ½¸ º°Â°»¾³°, ² º¾Â¾À¾¼ ±Ã´µÂ ¿À¾¸Áž´¸ÂÌ ¿¾¸Áº ²º»ÎÇ°µ¼ËÅ Ä°¹»¾², µÁ»¸ ¾½¸ ½µ ±Ã´Ã ½°¹´µ½Ë ² µºÃɵ¼ º°Â°»¾³µ. \section Ô¾¿¾»½¸Âµ»Ì½Ëµ ²¾·¼¾¶½¾Á¸ ¸ ¿Àµ´¾ÁµÀµ¶µ½¸Ï. 1. Ò ½µº¾Â¾ÀËÅ Àµ°»¸·°Æ¸ÏÅ \.{CWEB}, º¾Â¾À˵ {\def\\#1#2{`{\tentex\char'#1#2}'}% ´¾¿ÃÁº°Î ¸Á¿¾»Ì·¾²°½¸µ À°ÁȸÀµ½½¾³¾ Á¸¼²¾»Ì½¾³¾ ½°±¾À°, Á¸¼²¾»Ë \\13, \\01, \\31, \\32, \\34, \\35, \\36, \\37, \\04, \\20 ¸~\\21} ¼¾³Ã ¿À¸¼µ½ÏÂÌÁÏ º°º Á¾ºÀ°Éµ½¸Ï ´»Ï `\.{++}', `\.{--}', `\.{->}', `\.{!=}', `\.{<=}', `\.{>=}', `\.{==}', `\.{\v\v}', `\.{\&\&}', `\.{<<}' ¸~`\.{>>}' Á¾¾Â²µÂÁ²µ½½¾. 2. ÕÁ»¸ ²°È° Á¸Áµ¼° ¸¼µµÂ À°ÁȸÀµ½½Ë¹ ½°±¾À Á¸¼²¾»¾², ¾½ ¼¾¶µÂ ±ËÂÌ ¸Á¿¾»Ì·¾²°½ Á ¼¸½¸¼°»Ì½Ë¼¸ ¾³À°½¸Çµ½¸Ï¼¸, º°º ; ¾¿¸Á°½¾ ²Ëȵ ¿À¸ ¾±Áö´µ½¸¸ \.{@l}. ݾ ²°¼ Á»µ´ÃµÂ ¿À¸´µÀ¶¸²°ÂÌÁÏ Á°½´°À½ËÅ Á¸¼²¾»¾² ASCII, µÁ»¸ ²Ë ž¸µ ¿¸Á°ÂÌ ¿À¾³À°¼¼Ë, º¾Â¾À˵ ¾º°¶ÃÂÁÏ ¿¾»µ·½Ë¼¸ ¸ µ¼, º¾¼Ã °º¾µ À°ÁȸÀµ½¸µ ½µ´¾ÁÂÿ½¾. 3. Ô¾ºÃ¼µ½Â \TEX/, ¿À¾¸·²µ´µ½½Ë¹ \.{CWEAVE}, À°·±¸²°µÂÁÏ ½° ÁÂÀ¾º¸ Á ¼°ºÁ¸¼°»Ì½¾¹ ´»¸½¾¹ 80 Á¸¼²¾»¾². Ú¾³´° µºÁ \TEX/ º¾¿¸ÀõÂÁÏ, ²¾Á¿À¾¸·²¾´ÏÂÁÏ ¸ ÁÃɵÁ²ÃÎɸµ À°·ÀË²Ë ÁÂÀ¾º. ÕÁ»¸ ²Ë ½µ ´µ»°µÂµ ½¸Çµ³¾ Á»¸Èº¾¼ ŸÂÀ¾³¾, \.{CWEAVE} À°Á¿¾·½°µÂ, º¾³´° º¾¼¼µ½Â°À¸¹ \TEX/'° À°·±¸²°µÂÁÏ ½° ½µÁº¾»Ìº¾ ÁÂÀ¾º, ¸ ´¾±°²¸Â `\.\%' ² ½°Ç°»¾ º°¶´¾¹ °º¾¹ ÁÂÀ¾º¸. 4. \CEE/-µºÁ ÂÀ°½Á»¸ÀõÂÁÏ ``²¾Áž´Ïɵ¹'' (``bottom up'') ¿À¾Æµ´ÃÀ¾¹, º¾Â¾À°Ï À°Á¿¾·½°µÂ º°¶´ÃÎ »µºÁµ¼Ã º°º ``Ç°ÁÂÌ ÀµÇ¸'' (``part of speech'') ¸ º¾¼±¸½¸Àõ Í¸ Ç°Á¸ ²¾ ²Áµ ±\'¾»Ìȸµ ¸ ±\'¾»Ìȸµ ÄÀ°·Ë, ¿¾º° ; ²¾·¼¾¶½¾, Á¾³»°Á½¾ Á¿µÆ¸°»Ì½¾¹ ³À°¼¼°Â¸ºµ, ¾¿¸Á°½½¾¹ ² ´¾ºÃ¼µ½Â°Æ¸¸ º~\.{CWEAVE}. Ûµ³º¾ ¿¾½ÏÂÌ Áŵ¼Ã, ¿À¸¼µ½Ïµ¼ÃÎ º ¿À¾ÁÂ˼ º¾½ÁÂÀúƸϼ, °º¸¼ º°º ¾Â´µ»Ì½Ëµ ¸´µ½Â¸Ä¸º°Â¾ÀË ¸ º¾À¾Âº¸µ ²ËÀ°¶µ½¸Ï, ¿À¾Á¾ ¸·ÃǸ² ½µÁº¾»Ìº¾ ¿À¸¼µÀ¾¼ ²Ë²¾´° \.{CWEAVE}, ½¾ ¾±É¸¹ ¼µÅ°½¸·¼ ½µÁº¾»Ìº¾ Á»¾¶½µµ, ¿¾Áº¾»ÌºÃ ´¾»¶µ½ ¾±À°±°Â˲°ÂÌ ½µÇ¾ ±¾»Ìȵµ, ǵ¼ ¿À¾Á¾ \CEE/. ß¾¼¸¼¾ ;³¾, ²Ë²¾´ Á¾´µÀ¶¸Â º¾¼°½´Ë, º¾Â¾À˵ ·°Á°²»ÏΠ\TEX/ ´µ»°ÂÌ ¾ÂÁÂÃ¿Ë ¸ À°·ÀË²Ë ÁÂÀ¾º ³´µ ½µ¾±Å¾´¸¼¾, Á¾¾Â²µÂÁ²µ½½¾ ¸Á¿¾»Ì·¾²°½½Ë¼ ÈÀ¸Ä°¼ ¸ À°·¼µÀà ÁÂÀ°½¸ÆË. Ô»Ï ´¾Á¸¶µ½¸Ï ½°¸»ÃÇȸŠÀµ·Ã»Ì°¾² ±»°³¾À°·Ã¼½¾ ¸·±µ³°ÂÌ ·°º»Îǵ½¸Ï ´»¸½½ËÅ \CEE/-µºÁ¾² ² \pb, ¿¾Áº¾»ÌºÃ ¾ÂÁÂÃ¿Ë ¸ ¼°ÀºµÀË º¾½Æ° ÁÂÀ¾º¸ ¸³½¾À¸ÀÃÎÂÁÏ, º¾³´° Á¾´µÀ¶¸¼¾µ \pb\ ÂÀ°½Á»¸ÀõÂÁÏ Á \CEE/ ² \TEX/. áÂÀµ¼¸ÂµÁÌ º ¿À¾Á¾µ ²ËÀ°¶µ½¸¹ ¸ ¾¿µÀ°Â¾À¾². ÕÁ»¸ ´¸ÀµºÂ¸²° ¿Àµ¿À¾ÆµÁÁ¾À° ·°º»Îǵ½° ² \pb, ¾ ½°Ç¸½°Îɸ¹ µµ \.\# ´¾»¶µ½ À°Á¿¾»°³°ÂÌÁÏ ² ½°Ç°»µ ÁÂÀ¾º¸, ¸½°Çµ \.{CWEAVE} ½µ ½°¿µÇ°Â°µÂ µµ ¿À°²¸»Ì½¾. 5. Ú¾¼¼µ½Â°À¸¸ ² \pb-µºÁµ ½µ´¾¿ÃÁ¸¼Ë. ß¾Á»µ `\.|', ú°·Ë²°Îɵ³¾ ½° ¿µÀµÅ¾´ ¾Â µºÁ° \TEX/ º \CEE/, Á»µ´ÃÎɸ¹ `\.|', º¾Â¾À˹ ½µ ϲ»ÏµÂÁÏ Ç°ÁÂÌÎ ÁÂÀ¾º¸, ÿÀ°²»ÏÎɵ³¾ µºÁ° »¸±¾ ¸¼µ½¸ ÁµºÆ¸¸, ·°²µÀÈ°µÂ \CEE/-µºÁÂ. 6. Ú¾¼¼µ½Â°À¸¹ ´¾»¶µ½ ¸¼µÂÌ ¿À°²¸»Ì½¾µ ²»¾¶µ½¸µ ĸ³ÃÀ½ËÅ Áº¾±¾º, ² ¿À¾Â¸²½¾¼ Á»ÃÇ°µ \.{CWEAVE} ²ËÀ°·¸Â Á²¾µ ½µ´¾²¾»ÌÁ²¾, ½¾ ¿À¸ ;¼ Á´µ»°µÂ ¿¾¿Ëºà ²¾ÁÁ°½¾²¸ÂÌ ±°»°½Á Áº¾±¾º, °º Ǿ \TEX/'à ½µ ¿À¸´µÂÁÏ Á»¸Èº¾¼ ÂÀô½¾. 7. ÕÁ»¸ ²¾ ²Àµ¼Ï ¾Â»°´º¸ ¿À¾³À°¼¼Ë ²¾·½¸º°µÂ ½µ¾±Å¾´¸¼¾ÁÂÌ ¾¿ÃÁ¸ÂÌ ½µº¾Â¾ÀÃÎ Ç°ÁÂÌ \CEE/-º¾´°, ÝÕ Á»µ´ÃµÂ ¿Ë°ÂÌÁÏ ¿À¾Á¾ µ³¾ ``·°º¾¼¼µ½Â¸À¾²°ÂÌ''. â°º¸µ º¾¼¼µ½Â°À¸¸ ½µ ² ´Ãŵ \.{CWEB}; Ǹ°µ»Ï¼ ¾½¸ ¿¾º°¶ÃÂÁÏ ¿¾ÏÁ½µ½¸Ï¼¸ º ¾Á°»Ì½Ë¼ ¸½ÁÂÀúƸϼ. ÚÀ¾¼µ ¾³¾, º¾¼¼µ½Â°À¸¸ ´¾»¶½Ë ±ËÂÌ º¾ÀÀµºÂ½Ë Á ¾Ǻ¸ ·Àµ½¸Ï \TEX/'°; Á»µ´¾²°Âµ»Ì½¾, \.{CWEAVE} ±Ã´µÂ ² ·°ÂÀô½µ½¸¸, µÁ»¸ ²Ë ·°º»ÎǸµ ¿Àµ´»¾¶µ½¸Ï \CEE/ ² \.{/*...*/} ²¼µÁ¾ \.{/*|...|*/}. ÕÁ»¸ Ç°ÁÂÌ \CEE/-º¾´° ´¾»¶½° ±ËÂÌ ``·°º¾¼¼µ½Â¸À¾²°½°'', ²Ë ¼¾¶µÂµ ¾³À°½¸Ç¸ÂÌ µµ ´¸ÀµºÂ¸²°¼¸ ¿Àµ¿À¾ÆµÁÁ¾À°, ¿¾´¾±½Ë¼¸ \.{\#if 0==1} ¸ \.{\#endif}. 8. ßÀ¸ ¿¾¼¾É¸ \.{@f} ²¾·¼¾¶½¾ ¾¿Àµ´µ»¸ÂÌ ¾´¸½ ¸´µ½Â¸Ä¸º°Â¾À °º, Ǿ±Ë ¾½ ²µ» Áµ±Ï ¿¾´¾±½¾ ´Àó¾¼Ã, ¸ ͸ ¾¿Àµ´µ»µ½¸Ï ľÀ¼°Â° ¿À¸¼µ½ÏÎÂÁÏ ¿¾Á»µ´¾²°Âµ»Ì½¾. Ò¾¾±Éµ ³¾²¾ÀÏ, ´°½½Ë¹ ¸´µ½Â¸Ä¸º°Â¾À ¸¼µµÂ µ´¸½Á²µ½½Ë¹ ľÀ¼°Â ²Ë²¾´° ½° ¿À¾Â϶µ½¸¸ ²Áµ³¾ ´¾ºÃ¼µ½Â°, ¸ ; ľÀ¼°Â ¸Á¿¾»Ì·ÃµÂÁÏ ´°¶µ ´¾ ¾³¾, º°º ±Ã´µÂ ¾¿Àµ´µ»µ½ ¿¾ÁÀµ´Á²¾¼ \.{@f}. í¾ ¾±®ÏÁ½ÏµÂÁÏ Âµ¼, Ǿ \.{CWEAVE} À°±¾Â°µÂ ² ´²° ¿À¾Å¾´°; ½° ¿µÀ²¾¼ ¿À¾Å¾´µ ¾±À°±°Â˲°ÎÂÁÏ ´¸ÀµºÂ¸²Ë \.{@f} ¸ ¿µÀµºÀµÁ½˵ ÁÁË»º¸, ° ½° ²Â¾À¾¼ ¿À¾¸·²¾´¸ÂÁÏ ²Ë²¾´. (âµ¼ ½µ ¼µ½µµ, ¸´µ½Â¸Ä¸º°Â¾ÀË, ²²µ´µ½½Ëµ \.{typedef}, º¾Â¾À˼ ½µÏ²½¾ ¿À¸Á²°¸²°µÂÁÏ Ä¾À¼°Â ²Ë²¾´° ¶¸À½Ë¼ ÈÀ¸Ä¾¼, ½µ Á»µ´ÃΠ;¼Ã ¿À°²¸»Ã: ¾½¸ ²Ë²¾´ÏÂÁÏ ¿¾-À°·½¾¼Ã ´¾ ¸ ¿¾Á»µ Á¾¾Â²µÂÁ²ÃÎɵ³¾ \.{typedef}. í¾ À°·¾Ç°À¾²Ë²°µÂ, ½¾ Ǿ-»¸±¾ ¸Á¿À°²¸ÂÌ ·°ÂÀô½¸Âµ»Ì½¾. ÒË ¼¾¶µÂµ ¾±¾¹Â¸ ; ¾³À°½¸Çµ½¸µ, ¸Á¿¾»Ì·ÃÏ \.{@s}, ´¾ »¸±¾ ¿¾Á»µ \.{typedef}.) 9. ؽ¾³´° ¶µ»°Âµ»Ì½¾ ²Á°²¸ÂÌ ² ¾ÂľÀ¼°Â¸À¾²°½½Ë¹ \CEE/-º¾´ ¿À¾±µ», ¾Â»¸Ç½Ë¹ ¾Â ¿Àµ´¾Á°²»Ïµ¼¾³¾ `\.{@,}'. Ô»Ï Í¾³¾ ¼¾¶½¾ ²¾Á¿¾»Ì·¾²°ÂÌÁÏ \.{@t}; ½°¿À¸¼µÀ, `\.{@t\\hskip 1in@>}' ´°µÂ ¿À¾±µ» ´»¸½¾¹ 1~´Î¹¼. ÚÀ¾¼µ ¾³¾, `\.{@t\\4@>}' ¼¾¶µÂ ¸Á¿¾»Ì·¾²°ÂÌÁÏ ´»Ï ²¾·²À°Â° ½° ¾´½Ã µ´¸½¸Æà ¾ÂÁÂÿ°, ¿¾Áº¾»ÌºÃ ÿÀ°²»ÏÎÉ°Ï ¿¾Á»µ´¾²°Âµ»Ì½¾ÁÂÌ \.{\\4} ¾¿Àµ´µ»µ½° ² \.{cwebmac} °º, Ǿ±Ë ´µ»°ÂÌ Â°º¾¹ ²¾·²À°Â. (Þ½° ¸Á¿¾»Ì·ÃµÂÁÏ, º ¿À¸¼µÀÃ, ² ½°Ç°»µ ÁÂÀ¾º, º¾Â¾À˵ Á¾´µÀ¶°Â ¿¾¼µÇµ½½Ëµ ¾¿µÀ°Â¾ÀË, °º Ǿ ¼µÂº° ±Ã´µÂ ½µ¼½¾³¾ Á¼µÉµ½° ²»µ²¾.) ÒË Â°º¶µ ¼¾¶µÂµ ¸Á¿¾»Ì·¾²°ÂÌ `\.{@t\}\\3\{-5@>}' ´»Ï ¿À¸½Ã´¸Âµ»Ì½¾³¾ À°·À˲° ÁÂÀ¾º¸ ¿¾ÁÀµ´¸ ²ËÀ°¶µ½¸Ï. 10. Ú°¶´Ë¹ ¸´µ½Â¸Ä¸º°Â¾À ² \.{CWEB} ¸¼µµÂ ¾´¸½ Á¸»Ì ľÀ¼°Â¸À¾²°½¸Ï. ߾;¼Ã ²Ë ½µ ´¾»¶½Ë ¸Á¿¾»Ì·¾²°ÂÌ ¾´½¾ ¸ ¾ ¶µ ¸¼Ï ´»Ï ¾´½¾²Àµ¼µ½½¾³¾ ¾±¾·½°Çµ½¸Ï, ½°¿À¸¼µÀ, ¸¼µ½¸ ¸¿° ¸ ¿¾»Ï \.{struct}, ½µÁ¼¾ÂÀÏ ½° ¾, Ǿ \CEE/ ¿¾·²¾»ÏµÂ ;. \section ×°¿ÃÁº ¿À¾³À°¼¼. Ú¾¼°½´½°Ï ÁÂÀ¾º° \UNIX/ º°º ´»Ï \.{CTANGLE}, °º ¸ ´»Ï \.{CWEAVE} ¸¼µµÂ ²¸´ $$\.{ctangle [options] web\_file[.w] [\{change\_file[.ch]|-\} [out\_file]]}$$ ÕÁ»¸ Ä°¹» ¸·¼µ½µ½¸¹ ¾¿Ãɵ½ »¸±¾ ·°´°½ `\.-', ¾½ ¿¾»°³°µÂÁÏ ¿ÃÁÂ˼. à°ÁȸÀµ½¸Ï \.{.w} ¸ \.{.ch} ´¾±°²»ÏÎÂÁÏ Â¾»Ìº¾ ² ¾¼ Á»ÃÇ°µ, µÁ»¸ ·°´°½½Ëµ ¸¼µ½° Ä°¹»¾² ½µ Á¾´µÀ¶°Â ¾ǵº. ÕÁ»¸ Ä°¹» Á °º¸¼ ¸¼µ½µ¼ ½µ ½°¹´µ½, ±Ã´µÂ ¸Á¿À¾±¾²°½¾ À°ÁȸÀµ½¸µ \.{.web}. Ý°¿À¸¼µÀ, `\.{cweave} \.{cob}' ¿¾¿Ë°µÂÁÏ ¿À¾Ç¸Â°ÂÌ \.{cob.w}; µÁ»¸ ; ½µ ô°µÂÁÏ, ±Ã´µÂ ¸Á¿À¾±¾²°½¾ \.{cob.web} ¿µÀµ´ °²°À¸¹½Ë¼ ·°²µÀȵ½¸µ¼ À°±¾ÂË. ÕÁ»¸ ¸¼Ï ²Ëž´½¾³¾ Ä°¹»° ½µ ·°´°½¾, ¸¼Ï \CEE/-Ä°¹»°, ³µ½µÀ¸Àõ¼¾³¾ \.{CTANGLE}, ¿¾»ÃÇ°µÂÁÏ ´¾±°²»µ½¸µ¼ À°ÁȸÀµ½¸Ï \.{.c}; ¸¼Ï \TEX/-Ä°¹»°, ¿À¾¸·²µ´µ½½¾³¾ \.{CWEAVE}, ¿¾»ÃǸ À°ÁȸÀµ½¸µ \.{.tex}. Ò ¸½´µºÁ½ËÅ Ä°¹»°Å, ¿¾À¾¶´°µ¼ËÅ \.{CWEAVE}, \.{.tex} ·°¼µ½ÏµÂÁÏ \.{.idx} ¸ \.{.scn}. ßÀ¸²µÀ¶µ½ÆË »°º¾½¸Ç½¾Á¸ ¼¾³Ã °º ½°ÁÂÀ¾¸ÂÌ Á²¾¹ º¾¼°½´½Ë¹ ¸½ÂµÀ¿ÀµÂ°Â¾À, Ǿ `\.{wv}' ±Ã´µÂ ¾·½°Ç°ÂÌ `\.{cweave -bhp}'; ; ¿¾´°²»ÏµÂ ²µÁÌ ²Ë²¾´ \.{CWEAVE} ½° µÀ¼¸½°», ·° ¸Áº»Îǵ½¸µ¼ Á¾¾±Éµ½¸¹ ¾± ¾È¸±º°Å. ß°À°¼µÂÀË-¾¿Æ¸¸ ½°Ç¸½°ÎÂÁÏ »¸±¾ Á¸¼²¾»¾¼ `\.-', ·°¿ÀµÉ°Îɸ¼ ´µ¹Á²¸µ ¾¿Æ¸¸, »¸±¾ `\.+', º¾Â¾À˹ µ³¾ À°·ÀµÈ°µÂ. Ý°¿À¸¼µÀ, `\.{-fb}' ·°¿ÀµÉ°µÂ ¾¿Æ¸¸ \.f ¸ \.b; `\.{+s}' À°·ÀµÈ°µÂ ¾¿Æ¸Î \.s. ޿Ƹ¸ ¼¾³Ã ·°´°²°ÂÌÁÏ ¿µÀµ´ ¸¼µ½°¼¸ Ä°¹»¾², ¿¾Á»µ ½¸Å, »¸±¾ ¸ ¾, ¸ ´Àó¾µ. Ò ½°Á¾Ïɸ¹ ¼¾¼µ½Â ¿¾´´µÀ¶¸²°ÎÂÁÏ Á»µ´ÃÎɸµ ¾¿Æ¸¸: \yskip \def\option#1 {\textindent{\.#1}\hangindent2\parindent} \option b Ò˲¾´¸ÂÌ Á¾¾±Éµ½¸µ ¿À¸ Á°Àµ. (à°·ÀµÈµ½¾ ¿¾ ü¾»Ç°½¸Î.) \option f ßÀ¸½Ã¶´°µÂ ·°²µÀÈ°ÂÌ º°¶´Ë¹ ¾¿µÀ°Â¾À \CEE/, ¾ÂľÀ¼°Â¸À¾²°½½Ë¹ \.{CWEAVE}, ¼°ÀºµÀ¾¼ º¾½Æ° ÁÂÀ¾º¸. (à°·ÀµÈµ½¾ ¿¾ ü¾»Ç°½¸Î; \.{-f} ͺ¾½¾¼¸Â ±Ã¼°³Ã, ½¾ ¼½¾³¸µ ¿¾»°³°ÎÂ, Ǿ °º¾¹ Á¸»Ì ľÀ¼°Â¸À¾²°½¸Ï ¿À¾³À°¼¼Ë ²Ë³»Ï´¸Â ² \CEE/ "½µµÁµÁ²µ½½¾".) (ݵ ²»¸ÏµÂ ½° \.{CTANGLE}.) \option h Ò˲¾´ Á¾¾±Éµ½¸Ï ¾ ½¾À¼°»Ì½¾¼ ·°²µÀȵ½¸¸ ¿À¾³À°¼¼Ë. (à°·ÀµÈµ½ ¿¾ ü¾»Ç°½¸Î.) \option p Þ¾±À°¶°ÂÌ ²¾ ²Àµ¼Ï À°±¾ÂË ¿À¾³À°¼¼Ë Á¾¾±Éµ½¸Ï ¾ µµ ¿À¾³ÀµÁÁµ. (à°·ÀµÈµ½¾ ¿¾ ü¾»Ç°½¸Î.) \option s ÒË´°µÂ Á°¸Á¸ºÃ ¸Á¿¾»Ì·¾²°½¸Ï ¿°¼Ï¸ ¿¾ ¾º¾½Ç°½¸¸ À°±¾ÂË ¿À¾³À°¼¼Ë. (×°¿ÀµÉµ½¾ ¿¾ ü¾»Ç°½¸Î.) ÕÁ»¸ ²°È¸ \.{CWEB}-Ä°¹»Ë »¸±¾ ÁµºÆ¸¸ ²µ»¸º¸, ¼¾¶µÂ ¾º°·°ÂÌÁÏ ¿¾»µ·½Ë¼ ò¸´µÂÌ, ½°Áº¾»Ìº¾ ²Ë ±»¸·º¸ º ¸ÁǵÀ¿°½¸Î ÀµÁÃÀÁ¾² \.{CTANGLE} ¸/¸»¸ \.{CWEAVE}. \option x Òº»ÎÇ°ÂÌ ¸½´µºÁ ¸ ¾³»°²»µ½¸µ ² \TEX/-Ä°¹», ²Ë²¾´¸¼Ë¹ \.{CWEAVE}. (à°·ÀµÈµ½¾ ¿¾ ü¾»Ç°½¸Î.) (ݵ ²»¸ÏµÂ ½° \.{CTANGLE}.) \section Ô¾¿¾»½¸Âµ»Ì½Ëµ Á²µ´µ½¸Ï ¾ ľÀ¼°Â¸À¾²°½¸¸. Ò°¼ ¼¾¶µÂ ½µ ¿¾½À°²¸ÂÌÁÏ, º°º \.{CWEAVE} ¾±À°±°Â˲°µÂ ½µº¾Â¾À˵ Á¸ÂðƸ¸. ÕÁ»¸ à ²°Á ½µÂ ´Àó¾³¾ ²Ëž´°, ²Ë ¼¾¶µÂµ ½°ÁÂÀ¾¸ÂÌ \.{CWEAVE} ¸·¼µ½ÏÏ µ³¾ ³À°¼¼°Â¸ºÃ. í¾ ÂÀµ±ÃµÂ ¼¾´¸Ä¸º°Æ¸¸ ¸Áž´½ËŠµºÁ¾², À°±¾ÂË, º¾Â¾À°Ï ¼¾¶µÂ ¿¾º°·°ÂÌÁÏ ·°½¸¼°Âµ»Ì½¾¹. â°±»¸Æ° ³À°¼¼°Â¸ÇµÁº¸Å ¿À°²¸» Á¾´µÀ¶¸ÂÁÏ ² ¸Áž´½ËŠµºÁ°Š\.{CWEAVE}, ¸ ²Ë ¼¾¶µÂµ Á´µ»°ÂÌ ¾Â´µ»Ì½ÃÎ º¾¿¸Î ;¹ °±»¸ÆË, Áº¾¿¸À¾²°² Ä°¹»~\.{prod.w}, ½°¹´µ½½Ë¹ ² ¸Áž´½ËŠµºÁ°Š\.{CWEB} ¸ Áº¾¼°½´¾²°² `\.{cweave}~\.{-x}~\.{prod}' ¸ `\.{tex}~\.{prod}'. ÒË ¼¾¶µÂµ ¾ǽ¾ ÷½°ÂÌ, º°º \.{CWEAVE} À°·±¸À°µÂ ²°È \CEE/-º¾´, µÁ»¸ ¿¾¼µÁ¸µ ¿µÀµ´ ½¸¼ ÁÂÀ¾ºÃ `\.{@ @c @2}'. (ã¿À°²»ÏÎɸ¹ º¾´ `\.{@2}' °ºÂ¸²¸·¸Àõ ``Á»µ´Ïɸ¹'' (``peeping'') Àµ¶¸¼ À°±¾ÂË, ° `\.{@0}' ¾Â¼µ½ÏµÂ µ³¾.) Ý°¿À¸¼µÀ, µÁ»¸ ¿À¾¿ÃÁ¸ÂÌ ÇµÀµ· \.{CWEAVE} Ä°¹» \medskip \begingroup \verbatim @ @c @2 main (argc,argv) char **argv; { for (;argc>0;argc--) printf("%s\n",argv[argc-1]); } !endgroup \endgroup \medskip\noindent ½° ͺÀ°½ ±Ã´µÂ ²Ë²µ´µ½° Á»µ´ÃÎÉ°Ï Â°À°±°Àɸ½°: \medskip \begingroup \verbatim [...] 4:*exp ( +exp+ )... 11:*exp +exp+ int... 5:*+exp+ int +unorbinop+... [...] 60: +fn_decl+*+{+ -stmt- +}- 55:*+fn_decl+ -stmt- 52:*+function- [...] !endgroup \endgroup \medskip ßµÀ²°Ï ÁÂÀ¾º° ú°·Ë²°µÂ, Ǿ ±Ë»¾ ¿À¸¼µ½µ½¾ ¿À°²¸»¾ ½¾¼µÀ 4, ¸ \.{CWEAVE} ² ½°Á¾Ïɸ¹ ¼¾¼µ½Â Á¾´µÀ¶¸Â ² Á²¾µ¹ ¿°¼Ï¸ ¿¾Á»µ´¾²°Âµ»Ì½¾ÁÂÌ ÄÀ°³¼µ½Â¾² (chunk) µºÁ° ² ľÀ¼°Âµ \TEX/ (½°·Ë²°µ¼ËÅ ``²ËÀµ·º°¼¸'', ``scraps''), ¸¼µÎɸŠÁ¾¾Â²µÂÁ²µ½½¾ ¸¿ \\{exp} (´»Ï ²ËÀ°¶µ½¸¹), ¾ÂºÀ˲°ÎÉ°Ï Áº¾±º°, Á½¾²° \\{exp}, ·°ºÀ˲°ÎÉ°Ï Áº¾±º°, ¸ ¿¾Á»µ´ÃÎɸµ ²ËÀµ·º¸, º¾Â¾À˵ ½µ ±Ë»¸ µÉµ ÁǸ°½Ë Á¸½Â°ºÁ¸ÇµÁº¸¼ °½°»¸·°Â¾À¾¼. (×½°º¸ \.+ ¸ \.- ú°·Ë²°ÎÂ, Ǿ \TEX/ ´¾»¶µ½ ²¾¹Â¸ ² ¼°Âµ¼°Â¸ÇµÁºÃÎ ¼¾´Ã »¸±¾ ²Ë¹Â¸ ¸· ½µµ ½° ³À°½¸Æµ ²ËÀµ·º¸. Ḽ²¾» \.* ¾Â¼µÇ°µÂ µºÃÉÃÎ ¿¾·¸Æ¸Î °½°»¸·°Â¾À°.) Ô°»µµ ¿À¸¼µ½ÏµÂÁÏ ¿À°²¸»¾ 11, ¸ ¿¾Á»µ´¾²°Âµ»Ì½¾ÁÂÌ $(\,exp\,)$ Á²µÀÂ˲°µÂÁÏ ´¾ \\{exp} ¸ °º ´°»µµ. Ò º¾½Æµ º¾½Æ¾² ²µÁÌ \CEE/-µºÁ ¾º°·Ë²°µÂÁÏ ¾´½¾¹ ±¾»ÌȾ¹ ²ËÀµ·º¾¹ ¸¿° \\{function}. ؽ¾³´° ²Áµ ¸´µÂ ½µ °º ³»°´º¾, ¸ ²Ë ¿¾»ÃÇ°µÂµ ³Àÿ¿Ã ÁÂÀ¾º, Á²°»µ½½ËÅ ² ¾´½Ã ºÃÇÃ. í¾ ·½°Ç¸Â, Ǿ \.{CWEAVE} ½µ Á¼¾³ ¿µÀµ²°À¸ÂÌ Ç¾-¾ ² ²°Èµ¼ \CEE/-º¾´µ. Ý°¿À¸¼µÀ, ¿ÃÁÂÌ `\.{@}' ·°¹¼µÂ ¼µÁ¾ `\.{char **argv;}' ² ¿À¾³À°¼¼µ, ÿ¾¼Ï½Ã¾¹ ²Ëȵ. Ò Í¾¼ Á»ÃÇ°µ \.{CWEAVE} ±Ã´µÂ Á»µ³º° ¾·°´°Çµ½, ¿¾Áº¾»ÌºÃ ÁǸ°µÂ, Ǿ ¸¼µ½° ÁµºÆ¸¹ ²Áµ³¾ »¸ÈÌ Â¾»Ìº¾ \\{exp}. ߾;¼Ã \TEX/'à ±Ã´µÂ ¿Àµ´¿¸Á°½¾ ²Ë²µÁ¸ `\X2:Argument declarations\X' ² ¾¹ ¶µ Á°¼¾¹ ÁÂÀ¾ºµ, Ǿ ¸ `$\\{main}(\\{argc},\39\\{argv}{}$)'. Ò Í¾¼ Á»ÃÇ°µ ¼¾¶½¾ ¿¾¼¾ÇÌ \.{CWEAVE}, ¿¾¼µÉ°Ï `\.{@/}' ¿¾Á»µ `\.{main(argc,argv)}'. \.{CWEAVE} °²Â¾¼°Â¸ÇµÁº¸ ²Á°²»ÏµÂ ½µ±¾»ÌȾ¹ ¿À¾¼µ¶Ã¾º ¼µ¶´Ã ¾¿¸Á°½¸Ï¼¸ ¸ ¿µÀ²Ë¼ ¾¿µÀ°Â¾À¾¼ ±»¾º°. Ҿ ¾´¸½ Á¿¾Á¾± »¾º°»Ì½¾ µ³¾ ¾Â¼µ½¸ÂÌ: $$\vbox{\halign{#\hfil\cr \.{int x;@+@t\}\\6\{@>}\cr \.{@@;@\#}\cr}}$$ `\.{@\#}' ¿¾¼µÁ¸ ´¾¿¾»½¸Âµ»Ì½Ë¹ ¿À¾±µ» ¿¾Á»µ `$\langle\,$Other locals$\,\rangle$'. \section ßÀ¸»¾¶µ½¸Ï. Ú°º ¿À¸¼µÀ Àµ°»Ì½¾¹ ¿À¾³À°¼¼Ë, ½°¿¸Á°½½¾¹ ² \.{CWEB}, ßÀ¸»¾¶µ½¸µ~A Á¾´µÀ¶¸Â ÄÀ°³¼µ½ÂË ¿À¾³À°¼¼, ²Å¾´ÏɸŠ² Á¾Á°² Á°¼¾¹ Á¸Áµ¼Ë \.{CWEB}. âµ ¸· Ǹ°µ»µ¹, ºÂ¾ Âɰµ»Ì½¾ ¸·ÃÇ°Â »¸Á¸½³¸ ² ;¼ ¿À¸»¾¶µ½¸¸, Á¼¾³Ã ³»Ã±¾º¾ ¿À¾ÇòÁ²¾²°ÂÌ ¾Á½¾²½Ëµ ¸´µ¸ \.{CWEB}. ßÀ¸»¾¶µ½¸µ~B --- ; Ä°¹» ¾¿Àµ´µ»µ½¸¹, º¾Â¾À˵ ½°ÁÂÀ°¸²°Î \TEX/ ½° À°±¾Âà Á ²Ë²¾´¾¼ \.{CWEAVE}, ° ² ßÀ¸»¾¶µ½¸¸~C ¾±Áö´°µÂÁÏ, º°º ¸Á¿¾»Ì·¾²°ÂÌ ½µº¾Â¾À˵ ¸· ͸Š¼°ºÀ¾Á¾² ´»Ï ¸·¼µ½µ½¸Ï ľÀ¼°Â° ²Ë²¾´°. ``ß¾»½°Ï'' ²µÀÁ¸Ï ;³¾ Àú¾²¾´Á²°, º¾Â¾À°Ï ¼¾¶µÂ ±ËÂÌ Á³µ½µÀ¸À¾²°½° ¸· ¸Áž´½ËŠµºÁ¾² \.{CWEB} º¾¼°½´¾¹ \UNIX/ \.{make} \.{fullmanual}, Á¾´µÀ¶¸Â °º¶µ ¿À¸»¾¶µ½¸Ï D, E, ¸~F, ¿Àµ´Á°²»ÏÎɸµ Á¾±¾¹ ¿¾»½Ëµ ¸Áž´½Ëµ µºÁÂË \.{CTANGLE} ¸ \.{CWEAVE}. \vfil\eject\titletrue \def\runninghead{ßÀ¸»¾¶µ½¸µ A --- ľÀ¼°Â ¸Áž´½¾³¾ Ä°¹»° {\tentt CWEB}} \section ßÀ¸»¾¶µ½¸µ~A: äÀ°³¼µ½ÂË ¿À¾³À°¼¼ \.{CWEB}. í¾ ¿À¸»¾¶µ½¸µ Á¾´µÀ¶¸Â ǵÂËÀµ »¸Á¸½³°. ßµÀ²Ë¹ Á¾´µÀ¶¸Â ²Å¾´½Ëµ ´°½½Ëµ ´»Ï \.{CWEB}, ¿¾ º¾Â¾À˼ ³µ½µÀ¸ÀÃÎÂÁÏ ÁµºÆ¸¸~12--15 Ä°¹»°~\.{common.w}, º¾Â¾À˹ Á¾´µÀ¶¸Â ¿¾´¿À¾³À°¼¼Ë, ¾±É¸µ ´»Ï \.{CWEAVE} ¸~\.{CTANGLE}. Þ¼µÂ¸¼, Ǿ ½µº¾Â¾À˵ ÁÂÀ¾º¸ Á¾´µÀ¶°Â ¾ÂÁÂÿË, ¿¾´ÇµÀº¸²°Îɸµ ÁÂÀúÂÃÀà ¿À¾³À°¼¼Ë; ¾ÂÁÂÃ¿Ë Í¸ ¸³½¾À¸ÀÃÎÂÁÏ º°º \.{CWEAVE}, °º ¸ \.{CTANGLE}, ½¾ ¿¾»Ì·¾²°Âµ»¸ ½°Å¾´ÏÂ, Ǿ Ä°¹»Ë \.{CWEB} ³¾À°·´¾ »µ³Çµ ²¾Á¿À¸½¸¼°ÎÂÁÏ, µÁ»¸ ² ½¸Å ¸¼µÎÂÁÏ Â°º¸µ ¾ÂÁÂÿË. Ò¾À¾¹ ¸ ÂÀµÂ¸¹ »¸Á¸½³¸ Á¾´µÀ¶°Â Á¾¾Â²µÂÁ²ÃÎɸµ ÄÀ°³¼µ½ÂË \CEE/-º¾´°, Á³µ½µÀ¸À¾²°½½¾³¾ \.{CTANGLE} ¸ µºÁ° ² ľÀ¼°Âµ \TEX/, ¿¾»Ãǵ½½¾³¾ \.{CWEAVE} ¿À¸ ¾±À°±¾Âºµ \.{common.w}. çµÂ²µÀÂ˹ »¸Á¸½³ ´µ¼¾½ÁÂÀ¸ÀõÂ, º°º ±Ã´µÂ ²Ë³»Ï´µÂÌ Í¾ ²Ëž´½¾¹ Ä°¹» ½° ±Ã¼°³µ. \vskip 6pt \begingroup \def\tt{\eighttt} \baselineskip9pt \verbatim @ Procedure |prime_the_change_buffer| sets |change_buffer| in preparation for the next matching operation. Since blank lines in the change file are not used for matching, we have |(change_limit==change_buffer && !!changing)| if and only if the change file is exhausted. This procedure is called only when |changing| is 1; hence error messages will be reported correctly. @c void prime_the_change_buffer() { change_limit=change_buffer; /* this value is used if the change file ends */ @; @; @; } @ While looking for a line that begins with \.{@@x} in the change file, we allow lines that begin with \.{@@}, as long as they don't begin with \.{@@y}, \.{@@z} or \.{@@i} (which would probably mean that the change file is fouled up). @= while(1) { change_line++; if (!!input_ln(change_file)) return; if (limit } } @ Here we are looking at lines following the \.{@@x}. @= do { change_line++; if (!!input_ln(change_file)) { err_print("!! Change file ended after @@x"); @.Change file ended...@> return; } } while (limit==buffer); @ @= { change_limit=change_buffer-buffer+limit; strncpy(change_buffer,buffer,limit-buffer+1); } !endgroup \endgroup \vfill\eject \def\runninghead{ßÀ¸»¾¶µ½¸µ A --- ²Ë²¾´ {\tentt CTANGLE}} ×´µÁÌ ¿À¸²µ´µ½° ¿¾ÀÆ¸Ï \CEE/-º¾´°, Á³µ½µÀ¸À¾²°½½¾³¾ \.{CTANGLE}, º¾Â¾À˹ Á¾¾Â²µÂÁ²õ ¸Áž´½¾¼Ã µºÁÂà ½° ¿Àµ´Ë´Ãɵ¹ ÁÂÀ°½¸Æµ. Þ±À°Â¸Âµ ²½¸¼°½¸µ, Ǿ ÁµºÆ¸¸~13, 14 ¸~15 ±Ë»¸ "²¿»µÂµ½Ë" ² ÁµºÆ¸Î~12. \vskip6pt \begingroup \def\tt{\eighttt} \baselineskip9pt \verbatim /*:9*//*12:*/ #line 247 "common.w" void prime_the_change_buffer() { change_limit= change_buffer; /*13:*/ #line 261 "common.w" while(1){ change_line++; if(!!input_ln(change_file))return; if(limit}', ½°¼ ¿¾¼µÈ°µÂ Á¸¼²¾» `\.{\\}', ¸ ; ͻµ¼µ½Â ¸½´µºÁ° ½µ ¿¾Ï²¸ÂÁÏ ²¼µÁµ Á ´À󸼸, ½°Ç¸½°Îɸ¼¸ÁÏ ½° T. àµÈµ½¸µ¼ ±Ã´µÂ ¸Á¿¾»Ì·¾²°ÂÌ º¾½ÁÂÀúƸΠ`\.{@:}', ¾¿Àµ´µ»¸² ¼°ºÀ¾Á, º¾Â¾À˹ ¿À¾Á¾ ô°»ÏµÂ º»ÎÇ: $$\.{\\def\\9\#1\{\}}$$ ÒË ¼¾¶µÂµ ·°´°ÂÌ, º ¿À¸¼µÀÃ, `\.{@:TeX\}\{\\TeX@>}' ² Á²¾µ¼ \.{CWEB}-Ä°¹»µ; \.{CWEAVE} ¿¾¼µÁ¸ Í¾ ² ¸½´µºÁ ² °»Ä°²¸Â½¾¼ ¿¾ÀÏ´ºµ, Á¾¾Â²µÂÁ²µ½½¾ º»ÎÇÃ, ¸ Á³µ½µÀ¸Àõ ¼°ºÀ¾²Ë·¾² `\.{\\9\{TeX\}\{\\TeX\}}', º¾Â¾À˹ ³°À°½Â¸ÀõÂ, Ǿ º»ÎÇ ½µ ±Ã´µÂ ½°¿µÇ°Â°½. н°»¾³¸Ç½¾ ² ¸¼µ½° ÁµºÆ¸¹ ¼¾¶µÂ ¿¾¼µÉ°ÂÌÁÏ ÁºÀËÂ˹ ¼°ÂµÀ¸°», °º Ǿ ¾½¸ ¼¾³Ã ±ËÂÌ Á¾À¸À¾²°½Ë ² »Î±¾¼ ½µ¾±Å¾´¸¼¾¼ ¿¾ÀÏ´ºµ. ݵº¾Â¾À˵ »Î´¸ ½°·Ë²°Î ¿¾´¾±½Ëµ ÂÀκ¸ ``special refinements''; ´Àó¸µ ·¾²Ã ¸Å ``kludges''. \point 12. Ú¾¼°½´½¾¼Ã Á»¾²Ã \.{\\secno} ¿À¸Á²°¸²°µÂÁÏ ½¾¼µÀ µºÃɵ¹ ¾±À°±°Â˲°µ¼¾¹ ÁµºÆ¸¸. \point 13. ÕÁ»¸ ²Ë ž¸µ ²Ë²µÁ¸ ½° ¿µÇ°ÂÌ Â¾»Ìº¾ ÁµºÆ¸¸, º¾Â¾À˵ ±Ë»¸ ¸·¼µ½µ½Ë (Á ¿¾¼¾ÉÌÎ Ä°¹»° º¾ÀÀµºÂ¸²) ¸ ¾³»°²»µ½¸µ, ¿¾¼µÁ¸µ º¾¼°½´Ã `\.{\\let\\maybe=\\iffalse}' ² ¿Àµ°¼±Ã»Ã, ¿µÀµ´ ¿µÀ²¾¹ ÁµºÆ¸µ¹ Ä°¹»° \.{CWEB}. ޱɵ¿À¸½Ï¾¹ ¿À°ºÂ¸º¾¹ ϲ»ÏµÂÁÏ Á´µ»°ÂÌ µµ ¿µÀ²¾¹ º¾ÀÀµºÂ¸²¾¹. \point 14. Ô»Ï ¿µÇ°Â¸ ½° ´Àó¸Å Ϸ˺°Å (½µ ¿¾-°½³»¸¹Áº¸), ¿µÀµ¾¿Àµ´µ»¸Âµ ¼°ºÀ¾ÁË \.{\\A}, \.{\\ET}, \.{\\Q}, \.{\\U}, \.{\\ch}, \.{\\fin}, \.{\\con}, \.{\\today}, \.{\\datethis}, ¸ \.{\\datecontentspage}. á¾±Á²µ½½¾ \.{CWEAVE} ¸·¼µ½ÏÂÌ ½µ ÂÀµ±ÃµÂÁÏ. \point 15. Ò˲¾´ ¾Â´µ»Ì½ËÅ Ç°Áµ¹ ´¾ºÃ¼µ½Â° ¼¾¶µÂ ±ËÂÌ ¸·±¸À°Âµ»Ì½¾ ·°¿ÀµÉµ½ Á ¿¾¼¾ÉÌÎ \.{\\noatl}, \.{\\noinx}, \.{\\nosecs}, \.{\\nocon}. \point 16. ÒÁµ ´¸°ºÀ¸Â¸ÇµÁº¸µ ·½°º¸ ¸ ´Àó¸µ Á¿µÆ¸°»Ì½Ëµ µºÁ¾²Ëµ Á¸¼²¾»Ë ľÀ¼°Â° plain \TEX/ ±Ã´Ã À°±¾Â°ÂÌ ² ´¾ºÃ¼µ½Â°Å \.{CWEB} ² ¾ǽ¾Á¸ °º, º°º ; ¾¿¸Á°½¾ ² ³»°²µ~9 {\sl The \TEX/book}, Á ¾´½¸¼ ¸Áº»Îǵ½¸µ¼. кƵ½Â "¾Ǻ°" (¾±Ëǽ¾ \.{\\.}) ´¾»¶µ½ ²²¾´¸ÂÌÁÏ º°º \.{\\:}. \point 17. "×°º¾¼¼µ½Â¸À¾²°½½Ëµ" ÁÂÀ¾º¸ \.{cwebmac.tex} ¿Àµ´»°³°Î ½µº¾Â¾À˵ ´¾¿¾»½¸Âµ»Ì½Ëµ ²¾·¼¾¶½¾Á¸, º¾Â¾À˵ ¼¾³Ã ¿À¸³¾´¸ÂÌÁÏ ¿¾»Ì·¾²°Âµ»Ï¼. Ý°¿À¸¼µÀ, ¾´½° ¸· ½¸Å ²Á°²»ÏµÂ ¿ÃÁÂÃÎ ÁÂÀ°½¸ÆÃ, µÁ»¸ à ²°Á ´Ã¿»µºÁ½Ë¹ ¿À¸½ÂµÀ. ßÀ¸»¾¶µ½¸Ï D, E, ¸ F ² ¿¾»½¾¹ ²µÀÁ¸¸ ;³¾ Àú¾²¾´Á²° ½°¿µÇ°Â°½Ë Á ¸Á¿¾»Ì·¾²°½¸µ¼ ·°º¾¼¼µ½Â¸À¾²°½½¾¹ ¾¿Æ¸¸, º¾Â¾À°Ï ·°¼µ½ÏµÂ `$\gets$' ½° `$=$' ² »¸Á¸½³°Å ¿À¾³À°¼¼. ÒË ¼¾¶µÂµ ¿À¾Á¼¾ÂÀµÂÌ Í¸ ¿À¸»¾¶µ½¸Ï, Ǿ±Ë ÀµÈ¸ÂÌ, º°º¾¹ ľÀ¼°Â ²°¼ ±¾»Ìȵ ½À°²¸ÂÁÏ. \vfill\end