Á¤½ÄÀ¸·Î ÇÁ·Î±×·¥ÇÏ´Â Àç¹Ì
ÀÌ ±¤±Ù
Á¦´ë·Î µðÀÚÀÎµÈ ¾ð¾î·Î ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¶§ ¾òÀ» ¼ö ÀÖ´Â ÀåÁ¡Àº µµ´ëü
¹«¾ùÀϱî? ±× ´ëÇ¥ÀûÀÎ ¾ð¾îÁß ÇϳªÀÎ
MLÀÇ °æ¿ì¸¦ »ìÆ캸ÀÚ.
ÀÛ°í °£´ÜÇÏ´Ù
- ¹®¹ýÀÌ ÀÛ°í °£´ÜÇÒ »Ó¸¸ ¾Æ´Ï¶ó ±× Àṉ̀¸Á¶ ¶ÇÇÑ °£°áÇÏ´Ù.
±Ø¸íÇÑ ¿¹·Î, ML Âü°í¼°¡ ÃÑ 261ÂÊÀÌ°í, Ãʺ¸ÀÚ¸¦ À§ÇÑ
UllmanÀÇ ÀÔ¹®¼°¡
380ÂÊÀÎ ¹Ý¸é, C++ ÀÇ °æ¿ì´Â °¢°¢ 600ÂÊÀÌ ¸ðµÎ ³Ñ´Â´Ù.
C? no. C++? no. Java? no.
¾ÈÀüÇÏ´Ù
- ¼öÇàÁßÀÎ ÇÁ·Î±×·¥ÀÇ ¿ÏÀüÇÑ ¾ÈÁ¤¼ºÀÌ º¸ÀåµÇ¾î ÀÖ´Ù. Áï, ÄÄÆÄÀÏ·¯¸¦
Åë°úÇÑ ÇÁ·Î±×·¥Àº ½ÇÇàÁß¿¡ ÆÄÇàÀûÀ¸·Î ÁߴܵǴ °æ¿ì°¡ (core dump ³ª
segmentation faultµîÀÌ) ¹ß»ýÇÏÁö ¾Ê´Â´Ù.
C? no. C++? no. Java? no.
- ÀÌ°ÍÀº ¾ð¾î °®Ãß°íÀÖ´Â °·ÂÇÑ Å¸ÀÔ ½Ã½ºÅÛ ¶§¹®Àε¥,
ML¿¡¼´Â ƯÈ÷, ŸÀÔ °Ë»ç¸¦
ŸÀÔ À¯Ã߸¦ ÀÌ¿ëÇؼ ÀÚµ¿À¸·Î Çϱ⠶§¹®¿¡
ÇÁ·Î±×·¡¸Ó°¡ º¯¼öÀÇ Å¸ÀÔÀ» Ç¥±âÇÒ ÇÊ¿ä°¡ ¾ø´Ù.
C? no. C++? no. Java? no.
ŸÀÔ¿¡ ¾ô¸ÅÀÌÁö ¾Ê´Â ÇÔ¼öµµ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù
- ÇϳªÀÇ ÇÔ¼ö·Î, ŸÀÔÀº ´Ù¸£Áö¸¸ ÇÏ´Â ÀÏÀÌ °°Àº ÇÔ¼öµéÀ» Ç¥ÇöÇÒ
¼ö Àֱ⠶§¹®¿¡ ÇÁ·Î±×·¥ÇϱⰡ °æÁ¦ÀûÀÌ°í, ŸÀ԰˻縦 ÇÏ´Â ¾ð¾î°¡ °¡Áö´Â
°æÁ÷¼ºÀÌ ¾ø´Ù.
C? yes. C++? yes. Java? no.
ÆíÇâµÈ ÇÁ·Î±×·¡¹Ö °ü¼º¿¡¼ ¹þ¾î³¯ ¼ö ÀÖ´Ù
- ÇÔ¼ö°¡ ƯÀÌÇÑ ´ë»óÀÌ ¾Æ´Ï°í, ¿©Å¸ ´Ù¸¥°ª°ú ±¸ºÐ ¾øÀÌ (higher-order
functions) ´Ù·ç¾î Áø´Ù. µû¶ó¼, ÇÔ¼öÇü ¾ð¾î¿¡¼ °³¹ßµÈ ÇÁ·Î±×·¥
±â¼úµéÀÌ (stream, infinite data structures, process networks µîÀÌ)
ÀÚ¿¬½º·´°Ô Ç¥ÇöµÉ ¼ö ÀÖ´Ù.
C? no. C++? no. Java? no.
-
¶ÇÇÑ, ¸Þ¸ð¸®ÁÖ¼Ò³ª ÁöÁ¤¹® (assignment)
µîÀ¸·Î ¹ß»ýÇÏ´Â ¸Þ¸ð¸® ¹ÝÀÀµéµµ (side-effectµéµµ) Ç¥Çö°¡´É ÇÏ´Ù.
C? yes. C++? yes. Java? yes.
Á¤Á¦µÈ ¸ðµâ 󸮱â´ÉÀ» °®Ãß°í ÀÖ´Ù
- ´ëÇüÀÇ ¼ÒÇÁÆ®¿þ¾î °³¹ß¿¡ ²À ÇÊ¿äÇÑ, ¾ÈÀüÇÑ ºÐ¸® ÄÄÆÄÀÏ ±â´ÉÀÌ
Á¦°øµÇ¾î ÀÖ´Ù.
C? no. C++? no. Java? no.
- ¶ÇÇÑ, ¸ðµâÀ» ÀϹÝÈ ½ÃÄѼ (parameterized moduleÀ») Á¤ÀÇÇÒ ¼ö
Àֱ⶧¹®¿¡, ÇϳªÀÇ ¸ðµâÀ» ÇÊ¿ä¿¡ µû¶ó ±¸Ã¼ÈÇؼ Àç »ç¿ëÇÒ ¼ö ÀÖ´Ù.
C? no. C++? yes. Java? no.
ÀÚµ¿À¸·Î ¸Þ¸ð¸®¸¦ °ü¸®ÇØ ÁØ´Ù
- È¿À²ÀûÀÎ ¸Þ¸ð¸® ÀçÈ°¿ë ½Ã½ºÅÛÀÌ (garbage collectionÀÌ) Á¦°øµÇ±â ¶§¹®¿¡
ÇÁ·Î±×·¡¸Ó°¡ ¸Þ¸ð¸®ÀÇ ºÎÁ·À̳ª Àç»ç¿ëµî¿¡ ´ëÇÑ ºÎ´ã¿¡¼ ÀÚÀ¯·Ó´Ù.
C? no. C++? no. Java? yes.
¿¹¿Ü»óȲ °ü¸® ¸ÅÄ«´ÏÁòÀ» °®Ãß°í ÀÖ´Ù
- ÀÌ°ÍÀ» ÀÌ¿ë Çؼ, ÇÁ·Î±×·¥ÀÇ ½ÇÇà Áß¿¡ ¹ß»ýÇÒ ¼ö ÀÖ´Â
±ä±Þ»óȲµéÀ» (¿¹¸¦ µé¸é, x/y ¿¡¼ y °ªÀÌ 0ÀÎ °æ¿ìµéÀ»)
Á¤È²¿¡ ¸Â°Ô ÀûÀýÈ÷ ó¸®ÇÒ ¼ö ÀÖ´Ù.
C? yes. C++? yes. Java? yes.
Á¤ÇüÀûÀÎ Àṉ̀¸Á¶¸¦ °®Ãß°í ÀÖ´Ù
- ÇÁ·Î±×·¥À» ÀÌÇØÇÏ´Â µ¥ ÇÊ¿äÇÑ Á¤È®ÇÑ Á¤ÀÇ°¡ Á¦°øµÇ¾î ÀÖ´Ù. µû¶ó¼,
ÇÁ·Î±×·¥ÀÇ Àǹ̿¡ È¥µ¿ÀÇ ¿©Áö°¡ ¾øÀ¸¹Ç·Î ÇÁ·Î±×·¥À» ºÐ¼®ÇÏ°í °ü¸®ÇÏ´Â
ÀÛ¾÷ÀÌ ¿ëÀÌÇÏ´Ù.
C? no. C++? no. Java? no.
ÇÁ·Î±×·¡¹ÖÀÇ ¹ÌÇÐ
- ´ëÇüÀÇ °í³µµ ÇÁ·Î±×·¥ÀÌ µå·¯³»´Â º¹À⼺À» ´Ù·ê ¼ö ÀÖ´Â ÇÁ·Î±×·¡¹Ö
¿ø¸®¿Í ¹ÌÇÐÀÌ ÀÚ¿¬½º·´°Ô Ç¥ÇöµÈ´Ù.
C? no. C++? OO bubble. Java? OO bubble.
ÀÌ·¯ÇÑ ÇÁ·Î±×·¡¹Ö ¾ð¾î°¡ ½ÇÁ¦ »ç¿ëµÈ ¿¹
/Standard ML
/OCaml
/nML
/Scheme
/Haskell