[[TableOfContents]] == CWEB ½Ã½ºÅÛ == $$\hbox{\tt CWEB}=\hbox{C programming language}+\hbox{\TeX}$$ ¹®ÇÐÀû ÇÁ·Î±×·¡¹Ö ½Ã½ºÅÛÀ¸·Î °¡Àå ¸¹ÀÌ »ç¿ëµÇ´Â °ÍÀÌ ¾Æ¸¶ CWEBÀÏ °ÍÀÌ´Ù. ¹®ÇÐÀû ÇÁ·Î±×·¡¹Ö ½Ã½ºÅÛÀº ±âº»ÀûÀ¸·Î Á¶ÆǾð¾î¿Í ÄÄÇ»ÅÍÇÁ·Î±×·¡¹Ö ¾ð¾î·Î ±¸¼ºµÇ´Âµ¥, CWEBÀº °¡Àå ¸¹ÀÌ »ç¿ëµÇ´Â Á¶ÆǾð¾îÀÎ TeX°ú °¡Àå ¸¹ÀÌ »ç¿ëµÇ´Â C¾ð¾îÀÇ Á¶ÇÕÀ¸·Î ±¸¼ºµÈ ½Ã½ºÅÛÀÌ´Ù. == CWEB ¼³¸í¼­ == CWEB ½Ã½ºÅÛÀÇ °³³ä°ú »ç¿ë¹æ¹ýÀº ¸Þ´º¾óÀ» Âü°í ÇÑ´Ù: [http://faq.ktug.or.kr/faq/SampleDocument?action=download&value=cwebman.pdf ÇѱÛCWEB¼³¸í¼­] == ÇѱÛ(UTF-8) CWEB ¼³Ä¡ ¹æ¹ý == º»·¡ÀÇ CWEB ½Ã½ºÅÛÀº ÇÑ ±ÛÀÚ¸¦ 1¹ÙÀÌÆ® Áï 8ºñÆ®¸¦ »ç¿ëÇÏ´Â ¿µ¾î±Ç¿¡ ¸ÂÃß¾îÁ® Àֱ⶧¹®¿¡, CWEB ½Ã½ºÅÛÀ» ¼öÁ¤ÇÏÁö ¾Ê°í´Â UTF-8 ÀÎÄÚµùµÈ ÇÑ±Û ÇÁ·Î±×·¡¹ÖÀÌ ºÒ°¡´ÉÇÏ´Ù. ÀÌ´Â 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 ¶ó´Â À̸§À¸·Î ÆÄÀÏÀ» Çϳª ¸¸µç´Ù. ±× ³»¿ëÀº ´ÙÀ½°ú °°´Ù. {{{ @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 ÆÄÀÏÀ» Àû¿ëÇÑ´Ù. {{{ CCHANGES= comm-utf8.ch }}} 1. make cautiously ¶õ ¸í·ÉÀ¸·Î comm-utf8.ch °¡ Àû¿ëµÈ ctangleÀ» ¸¸µç´Ù. {{{ make cautiously }}} ±×·¯¸é, ÇöÀç ÀÛ¾÷ÇÏ°í ÀÖ´Â µð·ºÅ丮¿¡ ctangle À̶ó´Â ½ÇÇà ÆÄÀÏÀÌ »ý°åÀ» °ÍÀÌ´Ù. 1. ÀÌÁ¦ »õ·Î¿î CWEB ½Ã½ºÅÛÀ» ¸¸µé ¸ðµç Áغñ°¡ µÇ¾ú´Ù. ´ÙÀ½°ú °°Àº ¼ø¼­·Î ÄÄÆÄÀÏÇÏ°í ÀνºÅçÇÑ´Ù. {{{ make all make install }}} 1. »ç¿ë¼³¸í¼­¸¦ ¾ò°íÀÚ ÇÑ´Ù¸é, ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù. {{{ make manual ¶Ç´Â, make fullmanual }}} == ÇÑ±Û 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 }}} == 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 }}} À§ °úÁ¤À» ±×¸²À¸·Î ³ªÅ¸³»¸é ´ÙÀ½°ú °°´Ù. 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 ÆÁÀÌ µé¾îÀÖ´Â À¯¿ëÇÑ ¹®¼­¶ó°í »ý°¢µË´Ï´Ù.