KTUGFaq

KTUG FAQ

·Î±×ÀÎ:
ºñ¹Ð¹øÈ£:
°¡ÀÔ
You will meet an important person who will help you advance professionally.
FrontPage › CWEB

r1.11°ú ÇöÀç ¹öÀüÀÇ Â÷ÀÌÁ¡

@@ -1,57 +1,68 @@
[[TableOfContents]]
== CWEB ½Ã½ºÅÛ ==
$$\hbox{ \tt CWEB}=\hbox{C programming language}+\hbox{\TeX}$$
from KTUGContrib:3195 (by ÀÛÀº³ª¹«)

¹®ÇÐÀû ÇÁ·Î±×·¡¹Ö ½Ã½ºÅÛÀ¸·Î °¡Àå ¸¹ÀÌ »ç¿ëµÇ´Â °ÍÀÌ ¾Æ¸¶ CWEBÀÏ °Í ÀÔ´Ï ÀÌ´Ù. ¹®ÇÐÀû ÇÁ·Î±×·¡¹Ö ½Ã½ºÅÛÀº ±âº»ÀûÀ¸·Î Á¶ÆǾð¾î¿Í ÄÄÇ»ÅÍÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ±¸¼ºµÇ´Âµ¥, CWEBÀº °¡Àå ¸¹ÀÌ »ç¿ëµÇ´Â Á¶ÆǾð¾îÀÎ TeX°ú °¡Àå ¸¹ÀÌ »ç¿ëµÇ´Â C¾ð¾îÀÇ Á¶ÇÕÀ¸·Î ±¸¼ºµÈ ½Ã½ºÅÛ ÀÔ´Ï´Ù. µû¶ó¼­ CWEBÀÌ °¡Àå ¸¹ÀÌ »ç¿ëµÇ´Â ½Ã½ºÅÛÀ̶ó°í Çؼ­ ÀÌ»óÇÒ °ÍÀÌ Çϳªµµ ¾ø°ÚÁö¿ä?
=== CWEB ¼Ò°³ ===
¾Æ·¡ÀÇ ±ÛÀº CWEB »ç¿ëÀÚ ¼³¸í¼­(cwebman)ÀÇ ''Introduction''À» ¹ø¿ªÇÑ ³»¿ëÀÔ´Ï´Ù.

== CWEB ¼³¸í¼­ ==
CWEB ½Ã½ºÅÛÀÇ ¹è°æÀÌ µÇ´Â öÇÐ °³³ä°ú »ç¿ë¹æ¹ýÀº , ¸Þ´º¾óÀ» Âü°í ÇÑ´Ù: [http://faq.ktug.or.kr/faq/SampleDocument?action=download&value=cwebman.pdf ÇѱÛCWEB¼³¸í¼­]
== ÇѱÛ(UTF-8) CWEB ¼³Ä¡ ¹æ¹ý ==
º»·¡ÀÇ CWEB ½Ã½ºÅÛÀº ÇÑ ±ÛÀÚ ½Å ¸¦ 1¹ÙÀÌ ÀÛ¼º Æ® Áï 8ºñÆ®¸¦ »ç¿ëÇÏ °í ÀÖ´Â ÇÁ·Î±×·¥ ¿µ¾î±Ç¿¡ ´ëÇؼ­ °¡´ÉÇÑ ÃÖ»óÀÇ ¸ÂÃß¾îÁ® Àֱ⶧¹® ¼­¸¦ Á¦°ø ¿¡, CWEB ½Ã½ºÅÛÀ» ¼öÁ¤ÇÏ Áö ¾Ê°í ÀÚ ÇÏ´Â ÇÁ·Î±×·¡¸Ó´Â
¹®¼­ Á¶ÆÇÀ» À§Çؼ­ TeX°ú °°Àº ¾ð¾î¿Í UTF-8 ÀÎÄÚµùµÈ ÇÑ±Û ÇÁ·Î±×·¡¹Ö À» À§Çؼ­ C ¾ð¾î¿Í °°Àº µÎ ÀÌ ºÒ°¡ Áö µµ±¸°¡ µ¿½Ã¿¡ ÇÊ¿ä ´ÉÇÏ ´Ù´Â °ÍÀÔ´Ï´Ù.
ÀÌ µÎ °¡Áö ¾ð¾î Áß ¾î´À ÇÑ °¡Áö¸¸ °¡Áö°í´Â ÃÖ»óÀÇ ¹®¼­¸¦ Á¦°øÇÒ ¼ö ¾ø½À´Ï´Ù. ÇÏÁö¸¸ CWEB ½Ã½ºÅÛÀÌ µÎ °¡Áö ¾ð¾î¸¦ ³»ºÎÀû ÀýÈ÷ Á¶ÇÕ À¸·Î »ç¿ëÇÏ ¸é,
°¢°¢ ´Â ¹öÆÛÀÇ ¾ð¾î Å©±â°¡ Á¦°øÇÒ ¼ö ÀÖ´Â ³Ê¹« À۱⠴ɺ¸ ¶§¹®ÀÌ´Ù ´õ¿í À¯¿ëÇÑ ±â´ÉÀ» °®Ãá . º»·¡ÀÇ ½Ã½ºÅÛ À¸·Î ÇÑ±Û cweb ÆÄÀÏÀ» ±¸¼ºÇÒ ¼ö ÀÖ½À´Ï ÀÌ¿ëÇϸé, ´Ù À½°ú °°Àº ¿¡·¯ ¸Þ½ÃÁö¸¦ ¸¸³ª°ÔµÈ´Ù.
{{{
! Input line too long. (l. 387)
}}}
ÀÌ ¹®Á¦Á¡À» ÇØ°áÇÏÀÚ.

1. CWEB ½Ã½ºÅÛ ¼Ò ÇÁÆ®¿þ¾î ÇÁ·Î±×·¥ÀÇ ±¸Á¶´Â ³»ºÎ ½º¸¦ [ftp://ftp.cs.stanford.edu/pub/cweb/cweb.tar.gz cweb.tar.gz] ¿¡¼­ ¹Þ¾Æ¼­, Àû ´çÇÑ °÷¿¡ ¾ÐÃàÀ» Ǭ´Ù.
1. make ¸í·ÉÀ¸·Î ¸¹Àº ÀÛÀº ºÎºÐµéÀÌ ¼­·Î ±ä¹ÐÈ÷ ¿¬°áµÇ¾î ÀÖ ÇöÀç µð·ºÅ丮¿¡ ctangle ½ÇÇàÆÄÀÏÀ» ¸¸µç´Ù.
{{{
make
}}}
1. comm-utf8.ch ¶ó´Â "À¥(web)¡± ÀÌ ¶ó°í »ý°¢ÇÒ ¼ö
ÀÖ½À´Ï ¸§À¸·Î ÆÄÀÏÀ» Çϳª ¸¸µç´Ù. ±× ·¯ÇÑ ÇÁ·Î±×·¥ ³»¿ëÀº ´ÙÀ½°ú °°´Ù.
{{{
@x
char *buffer_end=buffer+buf_size-2; /* end of |buffer| */
@y
char *buffer_end=buffer+long_buf_size-2; /* end of |buffer| */
@z
}}}
1. MakefileÀ» ¹® ¿­¾î¼­ È­Çϱâ Çϱâ À§Çؼ­ ±× À¥ 44¹ø° ÁÙÀ» ±¸¼ºÇÏ´Â °¢°¢ÀÇ °³º°ÀûÀÎ ºÎºÐµéÀ» ¼³¸íÇÏ°í, ±× ºÎºÐµéÀÌ
±×ÀÇ ÀÌ¿ôµé ´ÙÀ½°ú ¾î¶°ÇÑ ¿¬°ü °°ÀÌ ÀÖ´ÂÁö¸¦ ¼³¸í ¼öÁ¤ÇÏ ´Â °ÍÀÌ ÁÁÀº ¿©, ¹æ ¹ý ±Ý Àü¿¡ ¸¸µç comm-utf8.ch ÆÄÀÏ °ÍÀÔ´Ï À» Àû¿ëÇÑ´Ù. TeXÀ¸·Î Á¦°øµÇ´Â Á¶ÆÇ µµ±¸´Â °¢ ºÎºÐÀ»
Àбâ ÁÁ°Ô ÇØ ÁÜ {{{
CCHANGES= comm-utf8.ch
}}}
1. make cautiously ¶õ ¸í·ÉÀ¸·Î ½á ±×ÀÇ ±¸Á¶¸¦ ½±°Ô ÆÄ¾Ç ÇÒ ¼ö ÀÖ°Ô ÇØÁÖ°í, C ¾ð¾î·Î Á¦°øµÇ´Â ÇÁ·Î±×·¡¹Ö µµ±¸´Â ¾Ë°í¸®Áòµé comm-utf8.ch °¡ Àû¿ëµÈ ctangleÀ»
º¸´Ù ¼öÇÐÀûÀ¸·Î ¸íÈ®ÇÏ°Ô ±â¼úÇÒ ¼ö ÀÖ°Ô ÇØÁÝ´Ï ¸¸µç´Ù. ÀÌ
{{{
make cautiously
}}}
±×·¯ ÇÑ µÎ °¡Áö µµ±¸¸¦ Á¶ÇÕÇÔ À¸·Î¼­ ¸é, ¼ÒÇÁÆ®¿þ¾îÀÇ º¹ÀâÇÑ ±¸Á¶¸¦
½±°Ô ÆÄ¾Ç ÇÒ ¼ö ÀÖµµ·Ï ÇöÀç ÀÛ¾÷ÇÏ °í ÀÖ´Â ÇÁ·Î±×·¡¹Ö µð·ºÅ丮¿¡ ctangle À̶ó´Â ½ÇÇà ÆÄÀÏÀÌ »ý°åÀ» °ÍÀÌ °¡´ÉÇÕ´Ï´Ù. µ¿½Ã¿¡ ±× ¹®¼­È­µÈ ÇÁ·Î±×·¥Àº ±â°èÀûÀ¸
1. ÀÌÁ¦ »õ·Î ¼ÒÇÁÆ®¿þ¾î ½Ã½ºÅÛÀ¸·Î
º¯È¯µÇ¾î ½ÇÇà ¿î CWEB ½Ã½ºÅÛÀ» ¸¸µé ¼ö ÀÖ½À´Ï ¸ðµç Áغñ°¡ µÇ¾ú´Ù. ´ÙÀ½°ú °°Àº ¼ø¼­·Î ÄÄÆÄÀÏÇÏ°í ÀνºÅçÇÑ´Ù.
{{{
make all
make install
}}}
1. »ç¿ë¼³¸í¼­¸¦ ¾ò°íÀÚ ÇÑ´Ù¸é, ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
{{{
make manual
¶Ç´Â,
make fullmanual
}}}

== ÇÑ±Û CWEB ½Ã½ºÅÛÀº CWEAVE ¿Í CTANGLE À̶ó°í ºÒ¸®´Â µÎ °³ÀÇ ÇÁ·Î±×·¥ À¸·Î ±¸ ÀÛ¼º µÇ¾î ÀÖ½À´Ï´Ù. CWEB ÇÁ·Î±×·¡¹ÖÀ» ÇÒ ¹æ¹ý ==
¶§´Â, CWEB ÆÄÀÏ À̶ó°í ºÒ¸®´Â ÇϳªÀÇ ÆÄÀÏ¿¡ C ÄÚµå¿Í ¹®¼­ ÇѱÛÈ­ ¸¦ À§ÇÑ Äڵ带 µ¿½Ã¿¡ ´Â DohyunKim´ÔÀÌ ÀÛ¼ºÇÏ °í ½Å kotexplain.tex, ÀϹÝÀûÀ¸·Î something.w
°ú °°ÀÌ À̸§ Áþ½À´Ï´Ù. ´ÙÀ½°ú °°Àº ¸í·É¾î ¡®cweave something¡¯´Â something hangulcweb.tex ÆÄÀÏÀ» »ý¼ºÇÏ°í, ÀÌ ÆÄÀÏÀº TEX
À» Åë ¿ëÇؼ­ °¡´ÉÇÏ ¿© something ´Ù. wÀ» ÆäÀÌÁö ·¹À̾ƿô°ú ÇÁ·Î±×·¥ÀÇ µé¿©¾²±â, ±×¸®°í ¿¹¾à¾î³ª º¯¼ö¸í Ȥ CWEB ½Ã½ºÅÛ¿¡¼­ TeXÀº ¼öÇÐ ±â È£µé º»ÀûÀ¸·Î Plain TeXÀ» °¢°¢
´Ù¸¥ ÆùÆ®·Î Ç¥Çö ÀÌ¿ëÇÏ´Â µî ¿ì¸®µé µ¥, kotexplain.texÀÌ ½±°Ô ÀÐ Plain TeX¿¡¼­ ÇѱÛÀ» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ¸ÚÁø Ãâ·Â¹° ÇØÁÖ´Â ¸ÅÅ©·Î ¸¸µé¾î ³À´Ï´Ù. ÀÌ Ãâ·Â¹°¿¡´Â cweave ¸í·É¾î°¡ ÀÚ
µ¿ÀûÀ¸·Î ¸¸µé¾î ³½ »öÀεµ Æ÷ÇԵ˴ϴÙ. ºñ½ÁÇÏ°Ô, ¡®ctangle something¡¯ À̶õ ¸í·ÉÀ» ½ÇÇàÇϸé something hangulcweb. c¶õ À̸§ÀÇ
C tex ÆÄÀÏ À» ¾òÀ» ¼ö ÀÖ Àº CWEBÀÇ ¿©·¯°¡Áö ¿µ¹® ¸Þ½ÃÁö¸¦ Çѱ۷Π¹Ù²Û °ÍÀÌ°í, ´õ¿íÀÌ ÆÄÀÏÀº ÄÄÆÄÀÏÀ» Åë pdf¸¦ ÀÌ¿ëÇÒ ¶§, ÇÑ±Û ºÏ¸¶Å©¸¦ °¡´ÉÇÏ ¿© ½ÇÇà ÆÄÀÏÀ» ¾òÀ» ¼ö ÀÖ½À´Ï °Ô ÇØÁØ´Ù.

CWEB À§ µÎ ÆÄÀÏÀº C ÇÁ·Î±×·¡¹Ö¿¡ ´Ü¼øÈ÷ ¹®¼­È­ µµ±¸¸¦ Á¦°øÇÑ´Ù´Â °Í ¿Ü¿¡, C ¾ð¾î¸¦ º¸´Ù °­È­½ÃÅ°´Â Ãø¸éÀÌ ÀÖ½À´Ï´Ù ¸ðµÎ http://cvs. Áï
º¸ÅëÀÇ C ÇÁ·Î±×·¡¹Ö¿¡¼­´Â ºÒ°¡´ÉÇÑ, Àüü ÇÁ·Î±×·¥À» ¿©·¯ ÀÛÀº Á¶°¢µé·Î ³ª´©°í ±× Á¶°¢µéÀ» ¿©±âÀú±â »õ·Ó°Ô ¹èÄ¡ÇÒ ¼ö
ÀÖ½À´Ï´Ù ktug. ÀÌ·¸°Ô ÇÔÀ¸·Î ÇÁ·Î±×·¥À» ¼øÂ÷ÀûÀ¸·Î ¼³¸íÇÏ´Â °ÍÀ̾ƴ϶ó, ¾Ë°í¸®Áò ȤÀº ÀÚ·á ±¸Á¶ÀûÀ¸·Î ÀǹÌÀûÀ¸·Î °ü·ÃÀÖ´Â
ºÎºÐµéÀ» ¼½¼ÇÀ̶ó´Â À̸§À¸·Î ÇÑ °÷¿¡ ¹èÄ¡Çؼ­ ÀÚ¼¼È÷ ¼³¸íÇÔÀ¸·Î½á °¢ ¼½¼ÇÀ» ÀÚ¼¼È÷ ¼³¸íÇÏ°í, ±×·¯ÇÑ ¼½¼ÇµéÀÇ
¿¬°ü °ü°è¸¦ ¼³¸íÇÔÀ¸·Î Àüü ÇÁ·Î±×·¥À» º¸´Ù ÀÌÇØÇϱ⠽±°Ô ¼³¸íÇÒ ¼ö ÀÖ½À´Ï´Ù or. CTANGLE ÇÁ·Î±×·¥Àº ÀÌó·³ C
¹®¹ý¿¡ ¾î±ß³­ ¹æ½ÄÀ¸·Î ÀÛ¼ºµÈ CWEB ÇÁ·Î±×·¥À» C ¾ð¾î ¹®¹ý¿¡ ¸Â°Ô ´Ù½Ã Àç¹èÄ¡ Çϱ⠶§¹®¿¡ ctangle À̶ó´Â À̸§À» ¾ò°Ô
µÇ¾ú½À´Ï´Ù kr/viewcvs/ko. CWEB À¸·Î ÇÁ·Î±×·¡¹ÖÇÏ¸é ¾òÀ» ¼ö ÀÖ´Â ÀÕÁ¡Àº °¢ ¼½¼ÇÀ» °³º°ÀûÀ¸·Î ¼³¸íÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» ÀÌ¿ëÇؼ­
ÇÁ·Î±×·¥ TeX/macro/plain ¿¡ »ç¿ëµÈ ¾Ë°í¸®ÁòµéÀ» ÀÌ·¯ÇÑ ¼½¼ÇµéÀ» ÀÌ¿ëÇÏ¿© ¹­¾î¼­ ÇÑ °÷¿¡¼­ ¡°untangle¡±ÀÇ ÇüÅ·ΠǥÇöÇÒ ¼ö ÀÖ´Ù´Â
Á¡ÀÔ´Ï´Ù. CWEAVE ÇÁ·Î±×·¥Àº CWEB ÃֽŠÆÄÀÏÀ» ÀÔ·Â ¹Þ ¾Æ¼­ °¢ ¼½¼ÇÀ» ±¸¼ºÇÏ´Â TeX ºÎºÐ°ú C ºÎºÐÀ» ¼­·Î ¿«Àº ÈÄ¿¡
(intertwine) ±×·¯ÇÑ sectionµé·Î ±¸¼ºµÈ Á÷¹°(fabric)·ÎºÎÅÍ ÇϳªÀÇ ±¸Á¶È­µÈ ¹®¼­¸¦ Â¥³»±â(weave) ¶§¹®¿¡ cweave ¶ó´Â
À̸§À» ¾ò¾ú½À´Ï´Ù.(ÀÌÇØ°¡ µÇ½Ê´Ï±î?) ¿µ¾î ´Ü¾î ¡°weave¡±¿¡ ÇØ´çÇÏ´Â µ¶ÀÏ ´Ü¾î°¡ ''webe''ÀÌ°í, ±×¿¡ ÇØ´çÇÏ´Â ¶óƾ¾î°¡
''texe'' ¶ó´Â °Í¿¡´Â ¾Æ¸¶µµ ÀÏÁ¾ÀÇ ±íÀº ¿¬°üÀ» °ÍÀÔ´Ï ¼ö ÀÖ´Ù.

¿©·¯ºÐÀÌ ÇÑ±Û CWEB À» »ç¿ëÇÏ°íÀÚ ÇÑ´Ù¸é, ¹Ýµå½Ã C ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡ Àͼ÷ÇØ¾ß À» ÇÒ °ÍÀÔ´Ï´Ù ¶§´Â, ÀÛ¼ºÇÏ´Â ¼Ò½º ÆÄÀÏ(. ÃÖ¼ÒÇÑ w)ÀÇ TeX¿¡ ´ëÇÑ Áö½Äµµ
ÀÖÀ¸¸é ÁÁ°ÚÁö¸¸, CWEB ÇÁ·Î±×·¡¹Ö óÀ½À» Çϸ鼭 TeX¿¡ ´ëÇÑ Áö½ÄÀº ÀÚµ¿ÀûÀ¸·Î ¾ò°Ô µÉ °ÍÀÔ´Ï´Ù . À½°ú °°ÀÌ ´Â TeX¿¡¼­ »ç¿ëµÇ´Â
´Ü¼øÇÑ ÅؽºÆ®´Â TeX¿¡ ´ëÇÑ Áö½ÄÀÌ °ÅÀÇ ¾ø¾îµµ °¡´É ½ÃÀÛÇÏ ±â ¶§¹®ÀÔ´Ï ¸é µÈ´Ù. ¹°·Ð C ¾ð¾î¿Í TeX¿¡ ¸ðµÎ Àͼ÷ÇÑ µ¶ÀÚ´Â CWEB
À» ¸Å¿ì ½±°Ô ¹è¿ï ¼ö ÀÖ½À´Ï´Ù. {{{
\input hangulcweb
}}}

CWEB ½Ã½ºÅÛ ¸»°íµµ ¸¹Àº ¹®ÇÐÀû ÇÁ·Î±×·¡¹Ö ½Ã½ºÅÛµéÀÌ Á¸ÀçÇÕ´Ï´Ù. [http://www.literateprogramming.com literateprogramming.com] À¥»çÀÌÆ®¸¦ ¹æ¹®ÇØ º¸½Ã¸é, ¸Å¿ì ´Ù¾çÇÑ ½Ã½ºÅÛµéÀ» Á¢ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ »çÀÌÆ®´Â KnuthÀÇ À¥ÆäÀÌÁö¿¡µµ ¼Ò°³µÈ ¸Å¿ì ÈǸ¢ÇÑ À¥»çÀÌÆ®ÀÔ´Ï´Ù.
=== CWEB »ç¿ë¹ý ===
$$\hbox{cweb}=\hbox{ctangle}+\hbox{cweave}$$
* È®ÀåÀÚ°¡ .wÀÎ ÅؽºÆ® ÆÄÀÏ, ¿¹¸¦µé¾î foo.w À̶õ ÆÄÀÏÀ» ¸¸ µì´Ï µç´Ù.
foo.w´Â web ȤÀº cweb ÆÄÀÏÀε¥, ÇÁ·Î±×·¡¹Ö ¼Ò½º¿Í ±×¿¡ ÇØ´çÇÏ´Â µµÅ¥¸ÕÆ®¸¦ µ¿½Ã¿¡ °¡Áö°í ÀÖ´Â ÆÄÀÏ ÀÔ´Ï ÀÌ´Ù. cweb ÇÁ·Î±×·¡¹ÖÀ» ÇÒ¶§´Â, ÀÌó·³ ÇÁ·Î±×·¡¹Ö°ú µµÅ¥¸ÕÆ®¸¦ µ¿½Ã¿¡ »ý°¢ÇØ¾ß ÇÕ´Ï ÇÑ´Ù.
* ¾Æ·¡¿Í °°Àº ¸í·É¾î·Î cweb ÆÄÀÏ foo.w·ÎºÎÅÍ ÇÁ·Î±×·¡¹Ö ¼Ò½º ÆÄÀÏ foo.c(ȤÀº foo.cpp)À» ¸¸µé¾î ³À´Ï ³½´Ù.
{{{
% ctangle foo
}}}
@@ -60,99 +71,39 @@
{{{
% cweave foo
}}}
* cweave·Î ºÎÅÍ ³ª¿Â foo.texÀº PlainTeX TeXÀ» ÀÌ¿ëÇÏ¿© foo.dvi¸¦ ¸¸ µì´Ï µç´Ù.
{{{
% tex foo
}}}
¶Ç´Â, pdfÀÇ ±â´ÉÀ» ½ÊºÐ ¹ßÈÖÇÏ°í ½ÍÀ¸½Ã´Ù¸é, ´ÙÀ½°ú °°ÀÌ ÇÏ ½Ã¸é µË´Ï µÈ´Ù.
{{{
% tex pdftex foo
¶Ç´Â
% etex "\let\pdf+ \input foo"
% dvipdfmx foo
}}}
À§ °úÁ¤À» ±×¸²À¸·Î ³ªÅ¸³»¸é ´ÙÀ½°ú °° ½À´Ï´Ù.

attachment:cweave.jpg
= = CWEB ¿¹Á¦ ==
Knuth´Â Á¾Á¾ ±×ÀÇ Áý ¿¬±¸½Ç¿¡¼­ ³ª¿Ã ¶§ ÀÌ·¸°Ô ¸»ÇѴٳ׿ä. "''CWEB programming is such fun!''"
* UNIXÀÇ Word count(wc): attachment:cbe.pdf
* [Karnes]´ÔÀÌ Á¦°øÇØÁֽŠ''TeX by Example'' Ã¥ÀÇ ¼Ò½º Äڵ带 ÀÌ¿ëÇؼ­ ÀÛ¼ºÇÑ °ÍÀÔ´Ï´Ù.
* Vector rotation CWEB ¿¹Á¦
* cweb ¼Ò½º: attachment:vrotate.w.gz
* metapost ¼Ò½º: attachment:fig.mp.gz
* Jeff SomersÀÇ N°³ÀÇ ¿©¿Õ¹®Á¦
* cweb ¼Ò½º: attachment:nq.w.gz
* chess ¸ÅÅ©·Î: attachment:chess.zip (ü½ºÆÇÀ» ±×¸®±â À§ÇÑ chess ¸ÅÅ©·Î)
* Knuth-Morris-Pratt ¹®ÀÚ¿­ °Ë»ö ¾Ë°í¸®µë ±¸Çö
* cweb ¼Ò½º: attachment:kmp.w.gz
* ´Ü¾î Ƚ¼ö Ãâ·Â: attachment:wordtree.pdf
* ºñÆ®¸Ê Á¤·Ä: attachment:bitmap.pdf
== Microsoft Visual C++¿¡¼­ CWEB ÇÁ·Î±×·¡¹Ö Çϱâ ===
CWEB ÇÁ·Î±×·¡¹Ö ÀÛ¾÷Àº ÀüÅëÀû(?)À¸·Î ¸í·ÉÇà¿¡¼­ ÀÌ·ç¾îÁ® ¿Ô½À´Ï´Ù (¹Ï°Å³ª ¸»°Å³ª). ÇÏÁö¸¸ ½Ã°£ÀÌ È帧¿¡ µû¶ó ´õÀÌ»óÀº °í¸®Å¸ºÐÇÏ°Ô º¸ÀÏ ¼öµµ ÀÖ´Â ¸í·ÉÇà¿¡¼­ÀÇ ÀÛ¾÷À» °íÁýÇÒ ¼ö ¾ø´Â »óȲÀÌ µÇ¾ú³ªº¾´Ï´Ù. °³¹ß ȯ°æÀº IDE¶ó´Â ¼ö·ÁÇÏ°í Æí¸®ÇÑ ÅëÇÕ °³¹ß ȯ°æÀ¸·Î ´ëüµÈÁö ÀÌ¹Ì ¿À·¡ÀÔ´Ï´Ù. ÀÌ¿¡ cweb ÇÁ·Î±×·¡¹Ö ÀÛ¾÷ ¿ª½Ã º¯È­ÀÇ È帧¿¡ ¹ß ¸ÂÃ߾ IDEÀÇ ´ëÇ¥°ÝÀ̶ó°í ÇÒ ¼ö ÀÖ´Â Microsoft Visual C++¿Í ¼ÕÀ» Àâ¾Ò½À´Ï´Ù.

[http://www.literateprogramming.com/cwebmsvc.pdf cwebmsvc.pdf]

À§ ¹®¼­´Â Visual C++¿¡¼­ cweb ÇÁ·Î±×·¡¹ÖÀ» Çϱâ À§ÇÑ ¼¼Æà ¹æ¹ý°ú »ç¿ë ¹æ¹ý, ¿©·¯°¡Áö cweb ÆÁÀÌ µé¾îÀÖ´Â À¯¿ëÇÑ ¹®¼­¶ó°í »ý°¢µË´Ï´Ù.
=== CWEB ¿¹Á¦ ===
Àú´Â C ÇÁ·Î±×·¡¹ÖÀ» ÇؾßÇÒ ¶§¸é, ¾ðÁ¦³ª CWEBÀ¸·Î ÇÁ·Î±×·¡¹ÖÀ» ÇÏ°í Àִµ¥, CWEB ÇÁ·Î±×·¡¹ÖÀº Á¤¸» Àç¹ÌÀÖ½À´Ï´Ù. Á¦ ¸»À» ¸ø ¹ÏÀ¸½Ã°Ú´Ù¸é, Knuth ¸»Àº ¹ÏÀ¸½Ã°ÚÁÒ? Knuth´Â Á¾Á¾ ±×ÀÇ Áý ¿¬±¸½Ç¿¡¼­ ³ª¿Ã ¶§ ÀÌ·¸°Ô ¸»ÇѴٳ׿ä. "''CWEB programming is such fun!''"
* Knuth°¡ ¼Õ¼ö ÀÛ¼ºÇÑ CWEBÀÇ ´ëÇ¥ÀûÀÎ ¿¹Á¦: attachment:wc.pdf
* CWEB ÇÁ·Î±×·¥ÀÇ ÁÖ¿Á°°Àº ¿¹Á¦µé ([http://www.literateprogramming.com/fexamples.html examples])
* Vector rotation CWEB ¿¹Á¦: attachment:vrotate.tar.gz
* Jeff SomersÀÇ N°³ÀÇ ¿©¿Õ¹®Á¦: attachment:nq.tar.gz
=== CWEBÀÇ ÇѱÛÈ­ ===
CWEBÀÇ ÇѱÛÈ­¿¡ ÃÖ´ë °É¸²µ¹ À̾ú´ø ÇÑ±Û ºÏ¸¶Å© ¹®Á¦°¡ ±èµµÇö´ÔÀÇ ¼ö°í·Î ÇØ°á µÇ¾ú½À´Ï´Ù. (KTUGContrib:3258)
ÀÌÁ¦´Â CWEB ÇÁ·Î±×·¡¹ÖÀÇ »õ·Î¿î ¼½¼Ç ±×·ìÀ» ½ÃÀÛÇÏ´Â º°Ç¥¼½¼Ç(starred section: @*) ¹× ¼½¼Ç Á¦¸ñµé(@<...@>)¿¡ ÇѱÛÀ» »ç¿ëÇÒ ¶§, ÇØ´ç ºÏ¸¶Å©¿¡ ÇѱÛÀÌ ³ª¿ÀÁö ¾Ê´Â Çö»óÀÌ ¾ø¾îÁ³½À´Ï´Ù. ÀÌ·Î ÀÎÇÏ¿© º¸´Ù Àб⠽¬¿î ÇÁ·Î±×·¥ ÀÛ¼ºÀÌ °¡´ÉÇØ Á³½À´Ï´Ù.
ÇѱÛÀÌ Æ÷ÇÔµÈ CWEB ÇÁ·Î±×·¡¹ÖÀ» ÇÒ ¶§´Â, ±èµµÇö´ÔÀÇ ±Û¿¡ ¼Ò°³µÇ¾î ÀÖµíÀÌ, ÀÛ¼ºÇÏ´Â ¼Ò½º ÆÄÀÏ(.w)ÀÇ in limbo¸¦
{{{
\input ucsplain
\input cwbucsol
}}}
·Î ½ÃÀÛÇÏ¸é µË´Ï´Ù.
* '''Âü°í''': KTUGContrib:3261 (by [ÀÛÀº³ª¹«]) CWEBÀÇ ÇѱÛÈ­¸¦ Å×½ºÆ®ÇÑ ³»¿ëÀÔ´Ï´Ù. ´Ü¼øÇÑ ¿µ¾î ¹®±¸¸¦ Çѱ۷Π¹Ù²Û °ÍÀÔ´Ï´Ù. Á» ´õ ¼¼½ÉÇÑ ÀÛ¾÷ÀÌ ÁøÇà µÇ¾î¾ß ÇÕ´Ï´Ù.
=== CWEB ¼³Ä¡ ½Ã ÇѱÛ(UTF-8) °í·Á»çÇ× ===
'''ÁÖÀÇ''': ÀÌ ÀýÀÇ ³»¿ëÀº Hangul-ucs¸¦ ÀÌ¿ëÇÏ¿© ucsplain.tex¸¦ »ç¿ëÇÏ´Â °æ¿ì¿¡¸¸ ÇØ´çÇÏ´Â °ÍÀÌ°í, HLaTeXÀ» ÀÌ¿ëÇÏ¿©, htex.texÀ» »ç¿ëÇϽô ºÐÀ̶ó¸é, °ü°è¾ø´Â ³»¿ëÀÔ´Ï´Ù.
¸ÕÀú, utf-8·Î ÀÛ¼ºµÈ ¼Ò½º ÆÄÀÏ(.w)·Î cweb ÇÁ·Î±×·¡¹ÖÀ» ÇϱâÀ§Çؼ­´Â cwebÀ» ´Ù½Ã ¼³Ä¡ÇØ¾ß ÇÕ´Ï´Ù.
[ftp://ftp.cs.stanford.edu/pub/cweb/cweb.tar.gz cweb.tar.gz]¸¦ ´Ù¿î ¹ÞÀ¸½Ã°í, ¾Æ·¡ ³»¿ëÀ» Âü°í ÇÏ½Ã¸é µË´Ï´Ù.
UTF-8·ÎµÈ ÇѱÛÀ» Æ÷ÇÔÇÏ´Â cwebÀÇ ¼Ò½º ÆÄÀÏÀÎ .w ÆÄÀϷκÎÅÍ
ctangle°ú cweave ¸í·É¾î¸¦ ÀÌ¿ëÇؼ­ C ÇÁ·Î±×·¥ ÆÄÀÏÀÎ .c ÆÄÀÏ°ú
TeX ÆÄÀÏÀÎ .texÀ» ¸¸µé´Ùº¸¸é, ÀÔ·ÂÀÌ ³Ê¹« ±æ´Ù´Â °æ°í ¸Þ½ÃÁö°¡ ³ª¿É´Ï´Ù.
ÀÌ´Â À§¸í·É¾îµéÀÌ ÆÄÀÏÀ» ó¸®Çϱâ À§Çؼ­ ³»ºÎÀûÀ¸·Î ¹öÆÛ(char ¹è¿­)¸¦
°¡Áö°í ÀÖ°í, ±× ¹öÆÛÀÇ ³¡À» ³ªÅ¸³»´Â buffer_end°¡ À۾Ƽ­ ³ª¿À´Â
°æ°í ¸Þ½ÃÁöÀÔ´Ï´Ù. ÀÌ °æ¿ì´Â ¹öÆÛÀÇ ³¡À» ³ªÅ¸³»´Â º¯¼ö buffer_end¸¦
ÃæºÐÈ÷ Å©°ÔÇØÁÖ¸é ¹ß»ýÇÏÁö ¾Ê´Â °æ°í ¸Þ½ÃÁöÀÔ´Ï´Ù.
¿µ¾îÀÇ °æ¿ì´Â ¾ËÆĺª Çѹ®ÀÚ°¡ 1¹ÙÀÌÆ®À̱⠶§¹®¿¡ ±×·¯ÇÑ °æ°í ¸Þ½ÃÁö°¡ ¾ø½À´Ï´Ù.
(¹°·Ð ¿µ¾îÀÇ °æ¿ìµµ ÇÑ ÁÙÀ» ³Ê¹« ±æ°ÔÇÏ¸é ±×·± ¸Þ½ÃÁö°¡ ³ª¿À°ÚÁÒ.)
utf-8·Î µÈ °æ¿ì´Â ÇÑ ¹®ÀÚ¸¦ 1¹ÙÀÌÆ®¿¡¼­ ÃÖ´ë 4¹ÙÀÌÆ®±îÁö Ç¥ÇöÇÑ´Ù°í ÇÕ´Ï´Ù.
µû¶ó¼­ utf-8·Î ÀÛ¼ºµÈ ¼Ò½ºÀÇ °æ¿ì¸¦ À§Çؼ­ buffer_end¸¦ ÃÖ´ë 4¹è°¡ µÇ°ÔÇϸé
µË´Ï´Ù.
ctangle°ú cweaveÀÇ È­ÀÏ ÀÔÃâ·Â¿¡ ´ëÇÑ ºÎºÐÀ̳ª °øÅë ºÎºÐÀº
common.w¿¡ Àִµ¥, buffer_end¿¡ ´ëÇÑ ³»¿ëÀÌ ¹Ù·Î ÀÌ ÆÄÀÏ¿¡ ÀÖ½À´Ï´Ù.
common.wÀÇ ÀϺÎ
{{{
@d buf_size 100 /* for \.{CWEAVE} and \.{CTANGLE} */
@d longest_name 1000
@d long_buf_size (buf_size+longest_name) /* for \.{CWEAVE} */
...
@<Definitions...@>=
char buffer[long_buf_size]; /* where each line of input goes */
char *buffer_end=buffer+buf_size-2; /* end of |buffer| */
...
}}}
µû¶ó¼­ buf_size¸¦ ÃÖ´ë 4¹è Å©°ÔÇÏ´ø°¡, ¾Æ´Ï¸é, buffer_end¸¦ Á¤ÀÇÇÏ´Â ºÎºÐ¿¡
»ç¿ëÇÑ buf_size ´ë½Å¿¡ long_buf_size¸¦ »ç¿ëÇÏ¸é µË´Ï´Ù.
Àú´Â cwebÀ» ¼³Ä¡ÇÒ¶§, µÎ¹ø° ¹æ¹ýÀ» »ç¿ëÇؼ­ ¼³Ä¡Çؼ­, utf-8·Î µÈ ¹®¼­¸¦
ÄÄÆÄÀÏÇÒ¶§µµ ctangleÀ̳ª cweave°¡ ¹¬¹¬È÷ ±×Àú Á¦ ÇÒ ÀÏÀ» ÇÕ´Ï´Ù.
ÀÌ°ÍÀÌ utf-8·Î µÈ ¹®¼­ÀÇ ±Ùº»ÀûÀÎ ÇØ°áÃ¥ÀÎÁö, ÀӽùæÆíÀûÀÎ ¹æ¹ýÀÎÁö´Â
¸ð¸£°ÚÀ¸³ª, Àû¾îµµ À§ÀÇ °æ°í ¸Þ½ÃÁö¸¦ ¾ø¾Ù ¼ö´Â ÀÖ½À´Ï´Ù.
'''Âü°í''' cweb¿¡ °ü·ÃÇÑ ÇÁ·Î±×·¥ ¼Ò½º¸¦ °íÄ¥ ÀÏÀÌ ÀÖÀ» ¶§, ÇØ´ç ¼Ò½º¸¦ Á÷Á¢ °íÄ¡´Â ÀÏÀº ¿Ã¹Ù¸¥ ¹æ¹ýÀÌ ¾Æ´Õ´Ï´Ù.
cweb¿¡´Â ÀÌ·¯ÇÑ °æ¿ì¸¦ À§Çؼ­ È®ÀåÀÚ°¡ .ch ÀÎ change ÆÄÀÏ ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. ¿¹¸¦µé¾î À§ÀÇ °æ¿ì ó·³
common.w ÆÄÀÏÀ» ¼öÁ¤ÇÒ ÀÏÀÌ ÀÖÀ¸¸é, comm-utf8.ch ¿Í °°Àº ÆÄÀÏÀ» ¸¸µé¾î¼­ common.c ÆÄÀÏÀ» ¸¸µé¾î ³¾¶§,
{{{
ctangle common.w comm-utf8.ch
}}}
¿Í °°ÀÌ ÇÏ¸é µË´Ï´Ù. comm-utf8.ch¿¡ µé¾î°¡´Â ³»¿ëÀº
{{{
@x
char *buffer_end=buffer+buf_size-2; /* end of |buffer| */
@y
char *buffer_end=buffer+long_buf_size-2; /* end of |buffer| */
@z
}}}
¿Í °°ÀÌ ÇÏ½Ã¸é µË´Ï´Ù. (.ch ÆÄÀÏÀ» ¸¸µå´Â ¹æ¹ýÀº cweb »ç¿ëÀÚ ¼³¸í¼­ÀÎ cwebman.pdf¸¦ º¸½Ã¸é Àß ³ª¿ÍÀÖ½À´Ï´Ù.)
¿øº» .w ÆÄÀÏÀ» Á÷Á¢ ¼öÁ¤Çϼŵµ ¹®Á¦°¡ µÉ °ÍÀº ¾ø½À´Ï´Ù¸¸ Á¤¼®ÀÌ ¾Æ´Ï¶ó´Â °ÍÀÌÁÒ.



¸ñÂ÷

1 CWEB ½Ã½ºÅÛ
2 CWEB ¼³¸í¼­
3 ÇѱÛ(UTF-8) CWEB ¼³Ä¡ ¹æ¹ý
4 ÇÑ±Û CWEB ÇÁ·Î±×·¥ ÀÛ¼º ¹æ¹ý
5 CWEB »ç¿ë¹ý
6 CWEB ¿¹Á¦
7 Microsoft Visual C++¿¡¼­ CWEB ÇÁ·Î±×·¡¹Ö Çϱâ

1 CWEB ½Ã½ºÅÛ

$$\hbox{\tt CWEB}=\hbox{C programming language}+\hbox{\TeX}$$

¹®ÇÐÀû ÇÁ·Î±×·¡¹Ö ½Ã½ºÅÛÀ¸·Î °¡Àå ¸¹ÀÌ »ç¿ëµÇ´Â °ÍÀÌ ¾Æ¸¶ CWEBÀÏ °ÍÀÌ´Ù. ¹®ÇÐÀû ÇÁ·Î±×·¡¹Ö ½Ã½ºÅÛÀº ±âº»ÀûÀ¸·Î Á¶ÆǾð¾î¿Í ÄÄÇ»ÅÍÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ±¸¼ºµÇ´Âµ¥, CWEBÀº °¡Àå ¸¹ÀÌ »ç¿ëµÇ´Â Á¶ÆǾð¾îÀÎ TeX°ú °¡Àå ¸¹ÀÌ »ç¿ëµÇ´Â C¾ð¾îÀÇ Á¶ÇÕÀ¸·Î ±¸¼ºµÈ ½Ã½ºÅÛÀÌ´Ù.

2 CWEB ¼³¸í¼­

CWEB ½Ã½ºÅÛÀÇ °³³ä°ú »ç¿ë¹æ¹ýÀº ¸Þ´º¾óÀ» Âü°í ÇÑ´Ù: [http]ÇѱÛCWEB¼³¸í¼­

3 ÇѱÛ(UTF-8) CWEB ¼³Ä¡ ¹æ¹ý

º»·¡ÀÇ CWEB ½Ã½ºÅÛÀº ÇÑ ±ÛÀÚ¸¦ 1¹ÙÀÌÆ® Áï 8ºñÆ®¸¦ »ç¿ëÇÏ´Â ¿µ¾î±Ç¿¡ ¸ÂÃß¾îÁ® Àֱ⶧¹®¿¡, CWEB ½Ã½ºÅÛÀ» ¼öÁ¤ÇÏÁö ¾Ê°í´Â UTF-8 ÀÎÄÚµùµÈ ÇÑ±Û ÇÁ·Î±×·¡¹ÖÀÌ ºÒ°¡´ÉÇÏ´Ù. ÀÌ´Â CWEB ½Ã½ºÅÛÀÌ ³»ºÎÀûÀ¸·Î »ç¿ëÇÏ´Â ¹öÆÛÀÇ Å©±â°¡ ³Ê¹« À۱⠶§¹®ÀÌ´Ù. º»·¡ÀÇ ½Ã½ºÅÛÀ¸·Î ÇÑ±Û cweb ÆÄÀÏÀ» ÀÌ¿ëÇϸé, ´ÙÀ½°ú °°Àº ¿¡·¯ ¸Þ½ÃÁö¸¦ ¸¸³ª°ÔµÈ´Ù.
 ! Input line too long. (l. 387)
ÀÌ ¹®Á¦Á¡À» ÇØ°áÇÏÀÚ.

  1. CWEB ½Ã½ºÅÛ ¼Ò½º¸¦ [ftp]cweb.tar.gz ¿¡¼­ ¹Þ¾Æ¼­, Àû´çÇÑ °÷¿¡ ¾ÐÃàÀ» Ǭ´Ù.
  2. make ¸í·ÉÀ¸·Î ÇöÀç µð·ºÅ丮¿¡ ctangle ½ÇÇàÆÄÀÏÀ» ¸¸µç´Ù.
    make
    
  3. comm-utf8.ch ¶ó´Â À̸§À¸·Î ÆÄÀÏÀ» Çϳª ¸¸µç´Ù. ±× ³»¿ëÀº ´ÙÀ½°ú °°´Ù.
    @x
    char *buffer_end=buffer+buf_size-2; /* end of |buffer| */
    @y
    char *buffer_end=buffer+long_buf_size-2; /* end of |buffer| */
    @z
    
  4. MakefileÀ» ¿­¾î¼­ 44¹ø° ÁÙÀ» ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÏ¿©, ¹æ±Ý Àü¿¡ ¸¸µç comm-utf8.ch ÆÄÀÏÀ» Àû¿ëÇÑ´Ù.
    CCHANGES= comm-utf8.ch
    
  5. make cautiously ¶õ ¸í·ÉÀ¸·Î comm-utf8.ch °¡ Àû¿ëµÈ ctangleÀ» ¸¸µç´Ù.
    make cautiously
    
    ±×·¯¸é, ÇöÀç ÀÛ¾÷ÇÏ°í ÀÖ´Â µð·ºÅ丮¿¡ ctangle À̶ó´Â ½ÇÇà ÆÄÀÏÀÌ »ý°åÀ» °ÍÀÌ´Ù.
  6. ÀÌÁ¦ »õ·Î¿î CWEB ½Ã½ºÅÛÀ» ¸¸µé ¸ðµç Áغñ°¡ µÇ¾ú´Ù. ´ÙÀ½°ú °°Àº ¼ø¼­·Î ÄÄÆÄÀÏÇÏ°í ÀνºÅçÇÑ´Ù.
    make all
    make install
    
  7. »ç¿ë¼³¸í¼­¸¦ ¾ò°íÀÚ ÇÑ´Ù¸é, ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
    make manual
    ¶Ç´Â,
    make fullmanual
    


4 ÇÑ±Û CWEB ÇÁ·Î±×·¥ ÀÛ¼º ¹æ¹ý

CWEBÀÇ ÇѱÛÈ­´Â DohyunKim´ÔÀÌ ÀÛ¼ºÇϽŠkotexplain.tex, hangulcweb.texÀ» ÀÌ¿ëÇؼ­ °¡´ÉÇÏ´Ù. CWEB ½Ã½ºÅÛ¿¡¼­ TeXÀº ±âº»ÀûÀ¸·Î Plain TeXÀ» ÀÌ¿ëÇϴµ¥, kotexplain.texÀÌ Plain TeX¿¡¼­ ÇѱÛÀ» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖ´Â ¸ÅÅ©·ÎÀÌ´Ù. hangulcweb.tex ÆÄÀÏÀº CWEBÀÇ ¿©·¯°¡Áö ¿µ¹® ¸Þ½ÃÁö¸¦ Çѱ۷Π¹Ù²Û °ÍÀÌ°í, ´õ¿íÀÌ pdf¸¦ ÀÌ¿ëÇÒ ¶§, ÇÑ±Û ºÏ¸¶Å©¸¦ °¡´ÉÇÏ°Ô ÇØÁØ´Ù.

À§ µÎ ÆÄÀÏÀº ¸ðµÎ http://cvs.ktug.or.kr/viewcvs/ko.TeX/macro/plain ¿¡¼­ ÃֽŠÆÄÀÏÀ» ¹ÞÀ» ¼ö ÀÖ´Ù.

ÇÑ±Û CWEB ÇÁ·Î±×·¡¹ÖÀ» ÇÒ ¶§´Â, ÀÛ¼ºÇÏ´Â ¼Ò½º ÆÄÀÏ(.w)ÀÇ Ã³À½À» ´ÙÀ½°ú °°ÀÌ ½ÃÀÛÇÏ¸é µÈ´Ù.
\input hangulcweb

5 CWEB »ç¿ë¹ý

$$\hbox{cweb}=\hbox{ctangle}+\hbox{cweave}$$
  • È®ÀåÀÚ°¡ .wÀÎ ÅؽºÆ® ÆÄÀÏ, ¿¹¸¦µé¾î foo.w À̶õ ÆÄÀÏÀ» ¸¸µç´Ù. foo.w´Â web ȤÀº cweb ÆÄÀÏÀε¥, ÇÁ·Î±×·¡¹Ö ¼Ò½º¿Í ±×¿¡ ÇØ´çÇÏ´Â µµÅ¥¸ÕÆ®¸¦ µ¿½Ã¿¡ °¡Áö°í ÀÖ´Â ÆÄÀÏÀÌ´Ù. cweb ÇÁ·Î±×·¡¹ÖÀ» ÇÒ¶§´Â, ÀÌó·³ ÇÁ·Î±×·¡¹Ö°ú µµÅ¥¸ÕÆ®¸¦ µ¿½Ã¿¡ »ý°¢ÇØ¾ß ÇÑ´Ù.
  • ¾Æ·¡¿Í °°Àº ¸í·É¾î·Î cweb ÆÄÀÏ foo.w·ÎºÎÅÍ ÇÁ·Î±×·¡¹Ö ¼Ò½º ÆÄÀÏ foo.c(ȤÀº foo.cpp)À» ¸¸µé¾î³½´Ù.
    % ctangle foo
    
  • ctangle·Î ºÎÅÍ »ý¼ºµÈ foo.c¸¦ gcc°°Àº C ÄÄÆÄÀÏ·¯¸¦ ÀÌ¿ëÇؼ­ ½ÇÇà ÆÄÀÏÀ» ¸¸µé¾î ³À´Ï´Ù.
  • ´ÙÀ½ÀÇ ¸í·É¾î·Î´Â foo.w·Î ºÎÅÍ TeX ÆÄÀÏÀÎ foo.texÀ» ¾ò½À´Ï´Ù.
    % cweave foo
    
  • cweave·Î ºÎÅÍ ³ª¿Â foo.texÀº TeXÀ» ÀÌ¿ëÇÏ¿© foo.dvi¸¦ ¸¸µç´Ù.
    % tex foo
    
    ¶Ç´Â, pdfÀÇ ±â´ÉÀ» ½ÊºÐ ¹ßÈÖÇÏ°í ½ÍÀ¸½Ã´Ù¸é, ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.
    % pdftex foo
    ¶Ç´Â
    % etex "\let\pdf+ \input foo"
    % dvipdfmx foo
    
À§ °úÁ¤À» ±×¸²À¸·Î ³ªÅ¸³»¸é ´ÙÀ½°ú °°´Ù.

cweave.jpg


6 CWEB ¿¹Á¦

Knuth´Â Á¾Á¾ ±×ÀÇ Áý ¿¬±¸½Ç¿¡¼­ ³ª¿Ã ¶§ ÀÌ·¸°Ô ¸»ÇѴٳ׿ä. "CWEB programming is such fun!"
  • UNIXÀÇ Word count(wc): @cbe.pdf (769.99 KB)
    • Karnes´ÔÀÌ Á¦°øÇØÁֽŠTeX by Example Ã¥ÀÇ ¼Ò½º Äڵ带 ÀÌ¿ëÇؼ­ ÀÛ¼ºÇÑ °ÍÀÔ´Ï´Ù.
  • Vector rotation CWEB ¿¹Á¦
  • Jeff SomersÀÇ N°³ÀÇ ¿©¿Õ¹®Á¦
    • cweb ¼Ò½º: @nq.w.gz (8.72 KB)
    • chess ¸ÅÅ©·Î: @chess.zip (116 KB) (ü½ºÆÇÀ» ±×¸®±â À§ÇÑ chess ¸ÅÅ©·Î)
  • Knuth-Morris-Pratt ¹®ÀÚ¿­ °Ë»ö ¾Ë°í¸®µë ±¸Çö
  • ´Ü¾î Ƚ¼ö Ãâ·Â: @wordtree.pdf (114.4 KB)
  • ºñÆ®¸Ê Á¤·Ä: @bitmap.pdf (81.97 KB)

7 Microsoft Visual C++¿¡¼­ CWEB ÇÁ·Î±×·¡¹Ö Çϱâ

CWEB ÇÁ·Î±×·¡¹Ö ÀÛ¾÷Àº ÀüÅëÀû(?)À¸·Î ¸í·ÉÇà¿¡¼­ ÀÌ·ç¾îÁ® ¿Ô½À´Ï´Ù (¹Ï°Å³ª ¸»°Å³ª). ÇÏÁö¸¸ ½Ã°£ÀÌ È帧¿¡ µû¶ó ´õÀÌ»óÀº °í¸®Å¸ºÐÇÏ°Ô º¸ÀÏ ¼öµµ ÀÖ´Â ¸í·ÉÇà¿¡¼­ÀÇ ÀÛ¾÷À» °íÁýÇÒ ¼ö ¾ø´Â »óȲÀÌ µÇ¾ú³ªº¾´Ï´Ù. °³¹ß ȯ°æÀº IDE¶ó´Â ¼ö·ÁÇÏ°í Æí¸®ÇÑ ÅëÇÕ °³¹ß ȯ°æÀ¸·Î ´ëüµÈÁö ÀÌ¹Ì ¿À·¡ÀÔ´Ï´Ù. ÀÌ¿¡ cweb ÇÁ·Î±×·¡¹Ö ÀÛ¾÷ ¿ª½Ã º¯È­ÀÇ È帧¿¡ ¹ß ¸ÂÃ߾ IDEÀÇ ´ëÇ¥°ÝÀ̶ó°í ÇÒ ¼ö ÀÖ´Â Microsoft Visual C++¿Í ¼ÕÀ» Àâ¾Ò½À´Ï´Ù.


À§ ¹®¼­´Â Visual C++¿¡¼­ cweb ÇÁ·Î±×·¡¹ÖÀ» Çϱâ À§ÇÑ ¼¼Æà ¹æ¹ý°ú »ç¿ë ¹æ¹ý, ¿©·¯°¡Áö cweb ÆÁÀÌ µé¾îÀÖ´Â À¯¿ëÇÑ ¹®¼­¶ó°í »ý°¢µË´Ï´Ù.