경고 : 최신판이 아닙니다. 이 문서의 오래된 판을 편집하고 있습니다. 이것을 저장하면, 이 판 이후로 바뀐 모든 편집이 사라집니다. 로그인하고 있지 않습니다. 편집하면 당신의 IP 주소가 공개적으로 기록됩니다. 계정을 만들고 로그인하면 편집 시 사용자 이름만 보이며, 위키 이용에 여러 가지 편의가 주어집니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!== 소개 == 엔하위키 미러 개발자인 [[Puzzlet Chung]]이 [[한글]]로 만든 [[난해한 프로그래밍 언어]]. 한글 모든 글자가 코드에 쓰일 수 있는 특성으로 인해, 언어 이름이 동작하는 언어의 코드기도 하다. 한국 웹에서 묘하게 컬트적인 인기를 얻고 있다. [[비펀지]]와 동작이 유사하다. 한글 낱자의 디자인을 살릴 수 있는 프로그래밍 언어라는 목적을 가지고 고안되었다. 코드 공간 안에 커서가 존재해 커서가 위치한 곳에 적혀 있는 명령을 수행하고, 명령에 따라 다시 커서를 움직이는 방식으로 동작한다. 홀소리는 커서가 이동할 방향을 지정하고, 닿소리는 수행할 명령을 지정한다. 받침이 있는 경우 받침은 수행할 명령의 인자로 사용된다. 홀소리, 닿소리만 있는 경우를 포함해 한글이 아닌 문자는 코드 공간 상의 빈 공간으로 취급된다. 아희 인터프리터가 사용하는 저장 공간은 여러가지가 있는데, 이중 대부분이 스택이고, 큐 하나, 확장기능과 소통하는 통로가 하나 있다. 최근에는 [https://github.com/aheui/rpaheui JIT이 가능한 구현체]가 만들어지기도 했다. 트위터에 멘션을 보내면 코드를 실행시켜주는 [https://twitter.com/aheui 트위터 봇]까지 존재한다. == 문법 == [http://aheui.github.io/specification.ko] 참고 ===닿소리 === ㅇ: 아무것도 하지 않는다. 여기에 오는 받침은 모두 무시한다. ㅎ: 종료, 선택된 저장 공간에 값이 하나 이상 남아 있으면 ㅁ 명령으로 뽑아낼 수 있는 값을 뽑아내 반환. 저장 공간이 비어 있으면 0 값을 반환한다. 여기에 오는 받침은 모두 무시한다. ㄷㄸㅌㄴㄹ: 순서대로 덧셈, 곱셈, 뺄셈, 나눗셈, 나머지 연산이며, 저장공간에서 두 값을 뽑아낸 다음 둘을 연산한 값을 저장공간에 저장한다. 순서가 있는 연산자의 경우 나중에 꺼낸 값이 연산자의 왼쪽에 온다. 여기에 오는 받침은 모두 무시한다. * '받밞라'는 3 mod 9 이므로 3을 저장하지만 '밞받라'는 9 mod 3 이므로 0을 저장한다. ㅁ: 뽑기, ㅇ 받침이 오면 뽑아낸 값을 10진수로 출력, ㅎ 받침이 오면 뽑아낸 값에 해당하는 코드포인트의 유니코드 문자를 UTF-8로 출력한다. 다른 받침이 오면 뽑아낸 값을 버린다. *밣발따밞발밟받따따따따'''망'''했다 : 48600 *밣발따밞발밟받따따따따'''맣'''했다 : 뷘(48600은 16진법으로 BDD8 이고, U+BDD8 값에 해당되는 문자) ㅂ: 집어넣기. 지금 저장공간이 스택이라면 맨 위에, 큐라면 맨 뒤에 값을 집어넣는다.(push) 통로라면 값을 하나 보낸다. ㅇ 받침이 오면 표준 입력에서 정수 문자열을 받아 이에 해당하는 값을 지금 저장공간에 집어넣고, ㅎ 받침이 오면 표준 입력에서 UTF-8로 유니코드 문자를 받아 이에 해당하는 유니코드 코드포인트를 지금 저장공간에 집어넣고, ㅇ이나 ㅎ이 아닌 받침에 대해서는 각각 상수를 저장공간에 집어넣는다. {|class="wikitable" |입력값 |출력값 |입력값 |출력값 |- |ㄱ,ㄴ,ㅅ |2 |ㄷ,ㅈ,ㅋ |3 |- |ㅁ,ㅂ,ㅊ,ㅌ,ㅍ,ㄲ,ㄳ,ㅆ |4 |ㄹ,ㄵ,ㄶ |5 |- |ㅄ |6 |ㄺ,ㄽ, |7 |- |ㅀ |8 |ㄻ,ㄼ,ㄾ,ㄿ, |9 |} 1은 바로 입력할 수 없고, 3-2(받반타) 나 2/2(반반나) 식으로 구현한다. *방망희: 숫자를 입력받아 출력한다. *밯망희: 문자를 입력받아 유니코드 값을 저장한다. 감을 입력하면 44048(AC10)이 출력된다. *박망희: ㄱ이 2에 해당하므로 2를 출력한다. ㅃ: 중복 명령. 지금 저장공간이 스택이라면 맨 위의 값을 그 값 위에 하나 더 집어넣고, 큐라면 맨 앞의 값을 앞에 하나 더 덧붙인다. *발빠닥망했다: 10 → 발로 5를 집어넣고(5), 빠로 5를 또 넣고(5 5), 다로 두 값을 더하고(ㄱ 무시, 5+5 =10) 망으로 숫자출력. ㅎ으로 종료. ㅍ: 교환 명령. 스택이라면 맨 위 값과 그 바로 아래 값을, 큐라면 맨 앞의 값과 그 바로 뒤 값을 바꾼다. *발박받으로 5,2,3을 저장했는데, 파를 넣어서 발박받파라고 하면 5,3,2가 된다. {{작성중}} ===홀소리=== == 예시 == {|class="wikitable" |입력 |출력 |- |<pre> 밤밣따빠밣밟따뿌 빠맣파빨받밤뚜뭏 돋밬탕빠맣붏두붇 볻뫃박발뚷투뭏붖 뫃도뫃희멓뭏뭏붘 뫃봌토범더벌뿌뚜 뽑뽀멓멓더벓뻐뚠 뽀덩벐멓뻐덕더벅 </pre> |Hello, world! |- |발받악에 땀 망희 났어<ref>http://comic.naver.com/webtoon/detail.nhn?titleId=678499&no=15</ref> |15 |- |<pre> 밣밟따밗다빠맣아웄 붉멓뻐더벘더떠벌벌 타빡맣밤밤따다빠뭏 붐더버멓뻐터더벌벓 나밝다빠맣받따밞투 뭏뻫뻫덜떰벅벎멓뻐 박달맣맣희망리부래 </pre> |Libre Wiki |} == 구현체 == * [http://puzzlet.org/doc/aheui/jsaheui_ko.html 자바스크립트로 된 아희 처리기] * [https://github.com/aheui/caheui Aheui in C] * [https://github.com/aheui/aheui.aheui 아희아희 aheui.aheui] - 아희로 구현한 아희 인터프리터 * [https://github.com/aheui/rpaheui 알파희 - 알파희썬(rpython)으로 만든 엔터프라이즈급 고성능 아희] * [http://yoo2001818.github.io/AheuiChem/ AheuiChem] - 아희 실행 흐름을 시각적으로 보면서 코드를 편집하도록 돕는 개발 도구 == 바깥 링크 == * [http://aheui.github.io 아희 - 한글로 쓰는 난해한 프로그래밍 언어] * [http://aheui.github.io/aheuicon 국제 아희 개발자 대회] {{각주}} {{프로그래밍}} [[분류:난해한 프로그래밍 언어]] 요약: 리브레 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포됩니다(자세한 내용에 대해서는 리브레 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 글이 직접 작성되었거나 호환되는 라이선스인지 확인해주세요. 리그베다 위키, 나무위키, 오리위키, 구스위키, 디시위키 및 CCL 미적용 사이트 등에서 글을 가져오실 때는 본인이 문서의 유일한 기여자여야 하고, 만약 본인이 문서의 유일한 기여자라는 증거가 없다면 그 문서는 불시에 삭제될 수 있습니다. 취소 편집 도움말 (새 창에서 열림) | () [] [[]] {{}} {{{}}} · <!-- --> · [[분류:]] · [[파일:]] · [[미디어:]] · #넘겨주기 [[]] · {{ㅊ|}} · <onlyinclude></onlyinclude> · <includeonly></includeonly> · <noinclude></noinclude> · <br /> · <ref></ref> · {{각주}} · {|class="wikitable" · |- · rowspan=""| · colspan=""| · |} {{lang|}} · {{llang||}} · {{인용문|}} · {{인용문2|}} · {{유튜브|}} · {{다음팟|}} · {{니코|}} · {{토막글}} {{삭제|}} · {{특정판삭제|}}(이유를 적지 않을 경우 기각될 가능성이 높습니다. 반드시 이유를 적어주세요.) {{#expr:}} · {{#if:}} · {{#ifeq:}} · {{#iferror:}} · {{#ifexist:}} · {{#switch:}} · {{#time:}} · {{#timel:}} · {{#titleparts:}} __NOTOC__ · __FORCETOC__ · __TOC__ · {{PAGENAME}} · {{SITENAME}} · {{localurl:}} · {{fullurl:}} · {{ns:}} –(대시) ‘’(작은따옴표) “”(큰따옴표) ·(가운뎃점) …(말줄임표) ‽(물음느낌표) 〈〉(홑화살괄호) 《》(겹화살괄호) ± − × ÷ ≈ ≠ ∓ ≤ ≥ ∞ ¬ ¹ ² ³ ⁿ ¼ ½ ¾ § € £ ₩ ¥ ¢ † ‡ • ← → ↔ ‰ °C µ(마이크로) Å °(도) ′(분) ″(초) Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η Θ θ Ι ι Κ κ Λ λ Μ μ(뮤) Ν ν Ξ ξ Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ Φ φ Χ χ Ψ ψ Ω ω · Ά ά Έ έ Ή ή Ί ί Ό ό Ύ ύ Ώ ώ · Ϊ ϊ Ϋ ϋ · ΐ ΰ Æ æ Đ(D with stroke) đ Ð(eth) ð ı Ł ł Ø ø Œ œ ß Þ þ · Á á Ć ć É é Í í Ĺ ĺ Ḿ ḿ Ń ń Ó ó Ŕ ŕ Ś ś Ú ú Ý ý Ź ź · À à È è Ì ì Ǹ ǹ Ò ò Ù ù · İ Ż ż ·  â Ĉ ĉ Ê ê Ĝ ĝ Ĥ ĥ Î î Ĵ ĵ Ô ô Ŝ ŝ Û û · Ä ä Ë ë Ï ï Ö ö Ü ü Ÿ ÿ · ǘ ǜ ǚ ǖ · caron/háček: Ǎ ǎ Č č Ď ď Ě ě Ǐ ǐ Ľ ľ Ň ň Ǒ ǒ Ř ř Š š Ť ť Ǔ ǔ Ž ž · breve: Ă ă Ğ ğ Ŏ ŏ Ŭ ŭ · Ā ā Ē ē Ī ī Ō ō Ū ū · à ã Ñ ñ Õ õ · Å å Ů ů · Ą ą Ę ę · Ç ç Ş ş Ţ ţ · Ő ő Ű ű · Ș ș Ț ț 이 문서에서 사용한 틀: 틀:Skin (원본 보기) (준보호됨)틀:각주 (원본 보기) (준보호됨)틀:둘러보기 상자 (원본 보기) (보호됨)틀:둘러보기 상자/중첩 (원본 보기) (준보호됨)틀:둘러보기 상자/핵심 (원본 보기) (보호됨)틀:인용문 (원본 보기) (준보호됨)틀:틀바 (원본 보기) (준보호됨)틀:프로그래밍 (편집)