· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Concatenative Programming Language

´ëÃæ ¾îµðÂëÀÇ À§»ó


  • ȤÀº StackBasedProgrammingLanguage¶ó°íµµÇÔ.
  • ObjectOrientedProgrammingLanguage, FunctionalProgrammingLanguage¿Í °°Àº ProgrammingParadigmÀÇ Çϳª.

ApplicativeProgrammingLanguage? ConcatenativeProgrammingLanguage?


  • ApplicativeProgrammingLanguage? ÀϹÝÀûÀ¸·Î ¿ì¸®°¡ ÈçÈ÷ ¾Ë°íÀÖ´Â ÇÔ¼ö¿¡ ÀÎÀÚ¸¦ Àû¿ëÇÏ´Â ¾ð¾î.
  • ConcatenativeProgrammingLanguage? ÇϳªÀÇ °´Ã¼¿¡ ´ëÇØ ¿©·¯ ÇÔ¼öÀÇ Á¶ÇÕÀÌ °ªÀ» ´©Àû/Àü´ÞÇÏ´Â ¾ð¾î
    • ÀÌ ÇϳªÀÇ °´Ã¼´Â º¸Åë Stack.
    • ApplicativeProgrammingLanguage¿¡¼­ °¢ ÇÔ¼ö´Â ¼­·Î ¹®¸Æ°£ÀÇ Á¶ÇÕÀ» ¸¸µé¾îÁà¾ßÇßÀ½¿¡ ¹ÝÇØ, ConcatenativeProgrammingLanguageÀº ÀÚ¿¬½º·´°Ô Èê·¯°£´Ù.
    • ForthLanguage, CatLanguage, JoyLanguage, PostScript, Pdf(PostScriptÀÇ subsetÀ» Æ÷ÇÔ), FactorLanguageµîÀÌ ¿©±â¿¡ ¼ÓÇÔ.

python, java°¡ applicativeÀÎ °ÍÀº Á» ÀÌ»óÇϱº¿ä. imperative(w/ OO) Âë ÀΰÍÀ¸·Î ¾Ð´Ï´Ù¸¸... - mwPark

''imperative <-> functionalÀΰÍó·³. imperative¿Í object-oriented°¡ ÇÔ²² ÀÖÀ»¼öÀÖµíÀÌ. ¿¹¸¦µé¾î, haskellÀº functional + applicative°ÚÁÒ. ¶Ç ¸í¹éÈ÷ concatenativeÀÎ FactorLanguageÀÇ °æ¿ì ¸»¾¸ÇϽŠimperative, +object-orientedÀ̱⵵ Çϱ¸¿ä. ±×°ÍµéÀÌ °°Àº ¼öÁ÷¼±»ó¿¡ À־ ¾î¶²ÁöÁ¡ÀÌ µü ÇϳªÀÇ Æз¯´ÙÀÓ¸¸ ¦iÁö´Â ¾Ê´Â´Ù´Â°É Àß ¾Æ½Ã´ÂµíÇѵ¥¿ä? (¾ð±ÞÇϼ̵íÀÌ ÆÄÀ̽ã, ÀÚ¹Ù´Â ÃàÀÌ 2°³ÀÎ °ø°£¿¡ ÀÖ°ÚÁÒ. À§Ä¡´Â imperative, object-oriented. ±×¸®°í ±× 2Â÷¿øÀÇ Ãà¿¡ concatenative, applicativeÀ» Ãß°¡ÇÏ´Â°Ô ¾Æ´Ï¶ó »õ·Î¿î ÃàÀÌ ÀÖ´Ù°í »ý°¢ÇÏ½Ã´Â°Ô ¸ÂÁö¾ÊÀ»±î½Í³×¿ä.) applicative, concatenative°¡ functional, object-oriented, imperativeµî°ú °°Àº paradigmÀÌÁö¸¸, °°Àº À§»ó¿¡ À§Ä¡ÇÑ°Ô ¾Æ´Ï¶ó°í¹Û¿£ ¼³¸íÀ» ¸øµå¸®°Ú³×¿ä. http://concatenative.org/wiki/view/Concatenative language <- ¿©±â¸¦ Âü°íÇØÁֽñæ. - ageldama''


''»çÁ·À» ´õÇغ¸¸é applicative language¿¡¼­ x¿¡ ´ëÇؼ­ ÇÔ¼ö A, B, C, DÀ» Àû¿ëÇÏ´Â ¿¹´Â ´ÙÀ½°ú °°´Ù°í ÇÏ´õ±º¿ä. (D (C (B (A x)))) ȤÀº D(C(B(A(x)))). ÀÌ¿¡ ¹ÝÇؼ­ concatenative language¿¡¼­´Â x A B C D¿Í °°ÀÌ Ç¥ÇöÇÕ´Ï´Ù. (¾Æ¹«¸® »ý°¢Çصµ ÀÚ¹Ù, ÆÄÀ̽ãÀº ÀüÀÚÀÎ°Í °°Àºµ¥¿ä^^;). Á¤È®ÇÑÁö´Â È®½ÅÀÌ ¾øÁö¸¸, unix-shell°ú °°ÀÌ pipeÀ» ÀÌ¿ëÇØ ÇϳªÀÇ ÀÚ·áÈ帧¿¡ ´ëÇؼ­ ¿©·¯ ¿¬»êÀ» Àû¿ëÇϴ¿¹µµ concatenativeÀÇ ÇÑ¿¹°¡ ¾Æ´Ò±î ½Í½À´Ï´Ù. find /etc -name "*.bak" | sort | uniq | wc -l -ageldama''


¸Àº¸±â


Çö´ëÀûÀÎ FactorLanguageÀ» ±âÁØÀ¸·Î ¿¹¸¦ ¸î°¡Áö µé¾îº¸°ÚÀ½.


"Hello, World!"

! 1) "Hello, World!" ¹®ÀÚ¿­À» ½ºÅÿ¡ ³Ö¾î³õ°í
! 2) ½ºÅÿ¡¼­ Çϳª¸¦ ²¨³» È­¸é¿¡ Ãâ·ÂÇÏ´Â print '¿öµå'¸¦ Æò°¡
"Hello, World!" print


°£´ÜÇÑ Factor¿¡¼­ REPL¼¼¼Ç

(ÀÌÇÏÀÇ ( scratchpad )Àº ÇÁ·ÒÇÁÆ®, !À¸·Î ½ÃÀÛÇÏ´Â ÇàÀº ÁÖ¼®.)
! ½ºÅÿ¡ 2¸¦ ³Ö¾î¿ä.
( scratchpad ) 2
--- Data stack:
2

! ½ºÅÿ¡ 3À» ³Ö¾î¿ä.
( scratchpad ) 3
--- Data stack:
2
3

! ½ºÅÃÀÇ µÎ°ªÀ» ´õÇؼ­ °á°ú¸¦ ½ºÅÿ¡ ½×¾Æ¿ä.
( scratchpad ) +
--- Data stack:
5

! ½ºÅÃÀÇ °ªÀÇ Á¦°öÀ» ±¸ÇØ¿ä.
( scratchpad ) sq
--- Data stack:
25

! ½ºÅÃÀÇ ¸Ç ¸¶Áö¸·°ªÀ» ²¨³»¼­ º¸¿©Áà¿ä.
( scratchpad ) .
25

! Áö±Ý±îÁö »ç¿ëÇÑ, +, sq, . ÇÔ¼öÀÇ Á¤ÀǸ¦ »ìÆ캸±â
( scratchpad ) \ + see
IN: math
MATH: + ( x y -- z ) foldable flushable

( scratchpad ) \ sq see
USING: kernel ;
IN: math
: sq ( x -- y ) dup * ; inline

( scratchpad ) \ . see
USING: io ;
IN: prettyprint
: . ( obj -- ) pprint nl ;

! (2+3)**2À» ±¸Çؼ­ È­¸é¿¡ Ãâ·ÂÇØ¿ä. (Áö±Ý±îÁö¸¦ ÇÑÁÙ·Î.)
( scratchpad ) 2 3 + sq .
25

  • ½ºÅÿ¡ °ªÀ» ³Ö°í ½×´Â ÇüÅÂ
  • ½ºÅÿ¡ ´©ÀûÇÑ °ª¿¡ ¿¬»êÀ» Àû¿ëÇϱâ.
    • ¿¹¸¦ µé¾î, +ÇÔ¼öÀÇ StackEffectDeclarationÀº ( x y -- z )À̹ǷÎ, ½ºÅÿ¡¼­ µÎ°ªÀ» ÃëÇؼ­(½ºÅÿ¡¼­ ²¨³»¼­) °á°ú¸¦ ´Ù½Ã ½ºÅÿ¡ ³Ö½À´Ï´Ù.
    • sqÇÔ¼öÀº ( x -- y )À̹ǷÎ, ½ºÅÿ¡¼­ Çϳª¸¦ ²¨³», ±× °ªÀÇ Á¦°öÀ» ½ºÅÿ¡ ´Ù½Ã ³Ö½À´Ï´Ù.
  • \ +¿Í °°ÀÌ \¿öµåÀ» ÀÌ¿ëÇؼ­ ÇÔ¼ö ÀÚü¸¦ °ªÀ¸·Î Ãë±ÞÇÒ¼öÀÖ½À´Ï´Ù.
  • ¿©·¯Çà¿¡ °ÉÃļ­ ½ºÅÿ¡ ¿µÇâÀ» ÁÖ°í, ±×¿¡ ´ëÇؼ­ ¿¬»êÀ» ÇϵíÀÌ, ¿¬ÇÕÇÏ¿© °á°ú¸¦ ¾òÀ»¼öµµ ÀÖ½À´Ï´Ù.






°ü·ÃÁ¤º¸



ID
Password
Join
Your lover will never wish to leave you.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-02-19 16:38:00
Processing time 0.0067 sec