== nowebÀ̶õ == noweb Àº LaTeX À» »ç¿ëÇÏ´Â cweb ÀÌ´Ù. web/cweb ÀÌ TeX À» ´ë»óÀ¸·Î ÇÏ´Â °Íó·³ noweb Àº LaTeX À» ´ë»óÀ¸·Î ÇÑ´Ù. Áï, ±âÁ¸ÀÇ ¸ðµç LaTeX ÀÇ ÆÐÅ°Áö¸¦ cweb ¿¡¼­ Á¦°øÇÏ´Â [literate programming] °ú ÇÔ²² »ç¿ëÇÒ ¼ö ÀÖ´Ù. == ´Ù¿î·Îµå/ÀνºÅç == http://www.eecs.harvard.edu/nr/noweb/ ¿¡¼­ ¼Ò½º¸¦ ´Ù¿î·Îµå ÇÏ¿© ÄÄÆÄÀÏ ÇØÁÖ¸é µÈ´Ù. == ¿¹Á¦ ¸¸µé±â == °£´ÜÈ÷ ±¸±¸´ÜÀ» ÇØÁÖ´Â ¿¹Á¦¸¦ ¸¸µé¾î º¸¾Ò´Ù. {{{ \documentclass{article} \usepackage{noweb} \usepackage{dhucs} \begin{document} \section{±¸±¸´Ü ¸¸µé±â} ±¸±¸´ÜÀ» ÇØÁÖ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇØ º¸ÀÚ. @ °¡Àå ³ôÀº ·¹º§¿¡¼­´Â ´ÙÀ½°ú °°ÀÌ Ã³¸®ÇÒ ¼ö ÀÖ´Ù. <>= <> <> <
> <> <> @ »óÅ´ [[status]]·Î Ç¥½Ã°¡ °¡´ÉÇÏ´Ù. <>= /* Çì´õÆÄÀÏ */ #include #include @ <>= /* DoxyGen string */ int engine(int x, int y) { assert(x >= 0 && y >= 0); return (x * y); } @ <>= /* Write down the result. */ int print(int x, int y, int z) { printf("(%d) X (%d) = (%d)\n",x,y,z); } @ <
>= /* Main Routine */ int main() { int i, j; for (i = 1; i < 3; i++) { for (j = 1; j < 3; j++) { int z = engine(i,j); print(i,j,z); } } } @ <>= /* Test routine */ int test() { printf("testme\n"); } @ \end{document} }}} == »ç¿ë¹ý == ÅØÆÄÀÏ ¾ò±â {{{ noweave -delay nine.nw > nine.tex }}} ¼Ò½ºÄÚµå ¾ò±â {{{ notangle nine.nw -Rnine.c > nine.c }}} == °á°ú == Åؼҽº¸¦ ÄÄÆÄÀÏ Çϸé pdf ¸¦ ¾òÀ» ¼ö ÀÖ´Ù. ¼Ò½ºÄڵ带 ÄÄÆÄÀÏ Çϸé ÇÁ·Î±×·¥À» ¾òÀ» ¼ö ÀÖ´Ù. {{{ $ gcc nine.c -o nine $ ./nine (1) X (1) = (1) (1) X (2) = (2) (2) X (1) = (2) (2) X (2) = (4) }}}