· 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 own qualities will help prevent your advancement in the world.


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.0056 sec