Brent B. Welch ±Û¾´ÀÌ ¼Ò°³: Brent Welch¾¾´Â www.scriptics.comÀ¥½ÎÀÌÆ®°¡ ¸¸µé¾îÁú¶§ Tcl°ú °ü·ÃµÈ URLµéÀ» º¸±âÁÁ°Ô µ¥ÀÌÅͺ£À̽ºÈÇÏ°í TclProÁ¦Ç°À» À§ÇÑ ÀüÀÚ»ó°Å·¡ ÀÎÇÁ¶óµéÀ» ¸¸µå¼Ì½À´Ï´Ù. ¶ÇÇÑ Tcl/Tk¸¦ ÀÌ¿ëÇÑ ´ëÇü ÇÁ·Î±×·¥µéÀ» ¸¹ÀÌ ¸¸µé¾ú½À´Ï´Ù. °³¹ßÇÑ ´ëÇ¥ÀûÀÎ ÇÁ·Î±×·¥À¸·Î´Â ÇöÀç www.scriptics.comÀ» ¿î¿µÇϴµ¥ »ç¿ëµÇ°í ÀÖ´Â TclHttpdÀ¥¼¹ö, ¸ÞÀÏ »ç¿ëÀÚÀÎÅÍÆäÀ̽ºÀÎ Wxmh, webtk HTMLÆíÁý±âµîÀÌ ÀÖ½À´Ï´Ù. ±×´Â ¶Ç "Practical Programming in Tcl and Tk"¶õ Ã¥À» Æì³»±âµµ Çß¾ú½À´Ï´Ù. (Çѱ¹¾îÆǵµ ÀÖÁÒ:) Welch¾¾´Â 1982³â Boulder¿¡ ÀÖ´Â University of Colorado¿¡¼ Ç×°ø¿ìÁÖ°øÇÐÀ» Àü°øÇÏ¿´À¸¸ç 1986³â University of California, Berkeley¿¡¼ ÄÄÇ»ÅÍ°øÇÐ ¼®»çÇÐÀ§¸¦ ¹Þ¾ÒÀ¸¸ç 90³âµµ¿¡ ¹Ú»çÇÐÀ§¸¦ ¹Þ¾Ò½À´Ï´Ù. Welch¾¾´Â Á¦·Ï½º PARC¿¡¼ ºÐ»ê½Ã½ºÅÛ¿¡ °üÇÑ ¿¬±¸¿øÀ¸·Î ÀÏÇÑÀûÀÌ ÀÖÀ¸¸ç ±× ÈÄ ½ã ¸¶ÀÌÅ©·Î½Ã½ºÅÛÁî ¿¬±¸¼Ò¿¡¼ Tcl/TkÆÀ¿øÀ¸·Î È°µ¿ÇÏ°í ÀÖ½À´Ï´Ù. ÇöÀç ACM°ú IEEE ÄÄÇ»ÅͺаúÀÇ È¸¿øÀÔ´Ï´Ù. ȨÆäÀÌÁö: http://www.beedub.com/ Â÷·Ê: |
Abstract:
ÀÌ ±Û¿¡¼´Â Tcl¾ð¾îÀÇ ±âº»°³³ä°ú ¹®¹ý¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.
½ºÅ©¸³Æ®¾ð¾îÀÎ TclÀº ¸Å¿ì °£´ÜÇÑ ¹®¹ýÀ» °¡Áö°í ÀÖ´Ù.
¸í·É¾î ÀÎÀÚ ÀÎÀÚ ÀÎÀÚ
$foo
foo
´Â º¯¼ö¸íÀÌ´Ù..
[clock seconds]
"some stuff"
{some stuff}
\
ÀÌ·¡¿¹´Â ÇöÀç½Ã°£À» ȸ鿡 Ãâ·ÂÇÏ´Â °£´ÜÇÑ Tcl¸í·ÉÀÌ´Ù.
»ç¿ëµÇ´Â Tcl¸í·É¾î´Â set
, clock
, puts
µî ¼¼°³ÀÌ´Ù.
set
¸í·ÉÀº º¯¼ö¸¦ ÁöÁ¤ÇÑ´Ù.
clock
¸í·ÉÀº ÇöÀç ½Ã°£°ªÀ» °è»êÇÑ´Ù.
puts
¸í·É¾î´Â °ªÀ» Ãâ·ÂÇÑ´Ù.
set seconds [clock seconds] puts "The time is [clock format $seconds]"
º¯¼ö¸¦ ÁöÁ¤ÇÒ¶§´Â $±âÈ£¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ» ±â¾ïÇØ µÎ±â ¹Ù¶õ´Ù.
´ÜÁö ¿©·¯ºÐÀÌ ¾î¶² º¯¼öÀÇ °ªÀ» »ç¿ëÇÒ ÇÊ¿ä°¡ ÀÖÀ»¶§ $¸¦ ºÙ¿© »ç¿ëÇÑ´Ù.
seconds
º¯¼ö´Â »ç½Ç ²À ÇÊ¿äÇÑ º¯¼ö´Â ¾Æ´Ï´Ù.
¿©·¯ºÐÀº ÇöÀç ½Ã°£À» ´ÙÀ½ ¸í·ÉÇÑÁٷεµ Ãâ·ÂÇÒ ¼ö ÀÖ´Ù.:
puts "The time is [clock format [clock seconds]]"
TclÆļ´Â ´Ù¸¥ ¼¼´Ü°è¸¦ °ÅÃÄ Tcl¹®¹ýÀ» Çؼ®ÇÑ´Ù.: ÀÎÀÚ ±×·ìÈ, °á°ú ´ëü,¸í·ÉÀÇ ½ÇÇà.
puts
¸í·É¿¡¼
»ç¿ëµÇ¾ú´Ù.
$foo
¸¦ foo
º¯¼öÀÇ °ªÀ¸·Î
¹Ù²Ù´Â °ÍÀÌ´Ù.Áï °ýÈ£»çÀÌÀÇ ¸í·É¾îµéÀ» ±× ¸í·ÉÀÇ °á°ú·Î ¹Ù²Ù´Â °ÍÀÌ´Ù. ÀÌ ´ëü°úÁ¤Àº
ÀϹÝÀûÀ¸·Î ±×·ìÈ°¡ °áÁ¤µÇ°í ³ ´ÙÀ½¿¡ ¼öÇàµÈ´Ù.
ÀÌ ¼ø¼¿¡ µû¶ó ÀÛ¾÷À» ¼öÇàÇϸé ÀÌ»óÇÑ °ªÀ¸·Î ¸í·É¾îÀÇ ±¸Á¶°¡ º¹ÀâÇØÁöÁö ¾Êµµ·Ï ÇØÁØ´Ù.
¿©±â ´Ù¸¥ ¿¹Á¦ Çϳª¸¦ »ìÆ캸ÀÚ.:
¿©±â¼ Áß°ýÈ£´Â ¾î¶² ´ëü°úÁ¤ÀÌ ÀϾÁö ¾Ê°Ô ÇÏ¸é¼ ÀÎÀÚµéÀ» ±×·ìÈÇϱâ À§ÇÏ¿© »ç¿ëµÇ¾ú´Ù. TclÆļ´Âset i 0 while {$i < 10} { puts "$i squared = [expr $i*$i]" incr i }
while
¸í·É¿¡ ´ëÇÏ¿© Ưº°ÇÑ µ¿ÀÛÀ» ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ»
¾Ë°í ÀÖ´Ù.¸¶Ä¡ ´Ù¸¥ ¸í·É¾îó·³ Ãë±ÞµÈ´Ù.
while
¸í·ÉÀÇ ½ÇÇàÀº ´ÜÁö ù¹ø° ÀÎÀÚ°¡ Ç¥Çö½ÄÀ̸ç, µÎ¹ø°ÀÎÀÚ°¡ Tcl¸í·É¾îµéÀ̶ó´Â °Í¸¸
¾Ë°í ÀÖ´Ù.
°ýÈ£·Î µÈ ±×·ìÀº µÎ°³ÀÇ ÀÎÀÚ¸¦ °¡Áö°í ÀÖ´Ù.: ·çÇÁÀÇ Á¦¾î¸¦ ´ã´çÇÏ´Â ºÒ¸°Ç¥Çö½Ä°ú
·çÇÁ°úÁ¤¿¡¼ µ¿ÀÛÇÒ ¸í·É¾î·Î µÇ¾î ÀÖ´Ù.
¿ì¸®´Â µÎ°¡Áö ¼öÇÐÀû Ç¥Çö½ÄÀ» º¸¾Ò´Ù.: Çϳª´Â ºÒ¸° ¿¬»êÀ̸ç Çϳª´Â °¡°¨½ÂÁ¦·Î Ç¥ÇöµÇ´Â ¼ö½ÄÀÌ´Ù.
while¸í·ÉÀº ÀÚµ¿À¸·Î ±× ù¹ø° ÀÎÀÚ¸¦ ¼ö½ÄÀ¸·Î Æò°¡ÇÑ´Ù.
´Ù¸¥ °æ¿ì¿¡¼ ¿©·¯ºÐÀº ¹Ýµå½Ã Ưº°ÇÑ ¼öÇÐÀû °è»êÀ» ¼öÇàÇÏ·Á¸é expr
¸í·É¾î¸¦
»ç¿ëÇØ¾ß ÇÑ´Ù.
¸¶Áö¸·À¸·Î TclÀº ¾î·Á¿î ¸î°¡Áö ÀÛ¾÷À» ÁøÇàÇϱâ À§ÇÏ¿© ¸î¸îÀ» È£ÃâÇÑ´Ù. ¿ì¸®´Â À̹Ì
TclÀÌ ¼öÇÐÇÔ¼ö¸¦ »ç¿ëÇϱâ À§ÇÏ¿© expr
¸í·ÉÀ» »ç¿ëÇÏ°í, Ãâ·ÂÇÔ¼ö¸¦ ´Ù·ç±â À§ÇÏ¿©
puts
ÇÔ¼ö¸¦ »ç¿ëÇϸç, º¯¼ö°ªÀ» ÁöÁ¤Çϱâ À§ÇÏ¿© set
¸í·ÉÀ» »ç¿ëÇÑ´Ù´Â
°ÍÀ» »ìÆ캸¾Ò´Ù.
ÀÌ·¯ÇÑ Tcl¸í·É¾îµéÀº Tcl¿¡ µî·ÏµÇ¾î ÀÖ´Â CÇÁ·Î½ÃÀú¸¦ È£ÃâÇÏ¿© ½ÇÇàµÈ´Ù.
C¸í·É¾î ÇÁ·Î½ÃÀú´Â Tcl¸í·ÉÇàÀ¸·ÎºÎÅÍ ¹®ÀÚ¿ ÀÎÀÚ¸¦ ¹Þ¾Æ¼ ±× °ªÀ» »õ·Î¿î ¹®ÀÚ¿·Î µ¹·ÁÁØ´Ù.
C¸í·É¾î ÇÁ·Î½ÃÀú¸¦ ÀÛ¼ºÇÏ´Â °ÍÀº ¸Å¿ì ½¬¿î ÀÏÀÌ´Ù. C¸í·É¾î ÇÁ·Î½ÃÀú¸¦ ÀÌ¿ëÇÏ¸é µ¥ÀÌÅͺ£À̽ºÀÇ Á¢±Ù¿¡¼ºÎÅÍ
±×·¡ÇÈÇÑ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦ ¸¸µå´Â µîÀÇ ÀϱîÁö ¸ðµç ÀÛ¾÷ÀÌ °¡´ÉÇÏ´Ù.¾ð¾î·Î¼ÀÇ TclÀº
½ÇÁ¦·Î ±× ¸í·ÉÀÌ ¾î¶² ÀÏÀ» ÇÏ´ÂÁö ½ÇÁ¦·Î ¸ð¸¥´Ù. ´ÜÁö ÀÎÀÚµéÀ» ±×·ìÈÇÏ°í, °á°ú¸¦ ġȯÇÏ°í,
¸í·É¾îµéÀ» ó¸®ÇÒ »ÓÀÌ´Ù.
´ÙÀ½ ÇÁ·Î±×·¥Àº ÆÑÅ丮¾óÀ» ±¸ÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù.:
proc fac {x} { if {$x < 0} { error "Invalid argument $x: must be a positive integer" } elseif {$x <= 1} { return 1 } else { return [expr $x * [fac [expr $x-1]]] } }
À¥ÆäÀÌÁö´Â ¸®´ª½ºÆ÷Ä¿½ºÀÇ ÆíÁýÆÀ¿¡ ÀÇÇØ °ü¸®µË´Ï´Ù.
© Brent B. Welch LinuxFocus 1999 |