아희

 

1. 개요
2. 동작
2.1. 자료구조
2.2. 문법
3. 예제
3.2. 구구단
3.3. 1부터 입력값까지 더하기
3.4. 밑이 2인 로그의 근사값 구하기
3.5. 저장방법
3.6. 문자의 UTF-8코드 출력
3.8. A+B
3.9. 1부터 N까지 출력
3.11. 아희아희
3.12. "한글날"
3.13. "Trick or Treat!"
3.14. 소인수 분해
3.15. 한글출력보조
3.16. 미로찾기
3.17. 별찍기
3.18. 최대공약수
4. 기타
5. 외부 링크
6. 관련 문서


1. 개요


오직 한글로만 프로그래밍되는 한글 프로그래밍 언어로, 한글로 된 프로그래밍 언어 중에서 첫 번째로 발표된 난해한 프로그래밍 언어다. 난해한 프로그래밍 언어의 제작 이유 중에서는 '어떤 개념의 증명' 정도가 적당할 것이다. 아희는 한글 낱자의 디자인을 살릴 수 있는 프로그래밍 언어라는 목적을 가지고 고안되었다. 다만 '''한글'''로 프로그래밍을 하는 거지 '''한국어'''로 프로그래밍을 하는 게 아니므로 모르고 본다면 '''외계어가 따로 없다.''' 제작자는 한국어 위키백과의 관리자이자 엔하위키 미러 운영자'''였'''던 Puzzlet Chung.
어원은 오감도에서도 볼 수 있는 '아이'를 뜻하는 옛 국어 낱말인 '아희'. '아희' 자체가 유효한 아희 코드이기도 하며, 실행하면 아무 동작 없이 종료된다.
JavaScript로 구현한 아희 컴파일러.

2. 동작


아희의 기본 개념은 비펀지와 비슷하다. '화살표' 명령을 사용해서 명령의 흐름을 이리저리 조종하는 것으로, 비펀지와 다른 점은 그 화살표를 포함해서 모든 명령이 순 한글이라는 것이다. 한글 낱자는 초성, 중성, 종성으로 나눌 수 있는데, 이때 중성은 커서가 이동할 방향을 지정하고, 초성은 수행할 명령을 지정한다. 종성은 초성의 명령을 보조하는 인자로서, 예를 들자면 저장공간을 선택하거나, 숫자를 결정하거나 하는 일이다.
그 외에 코드 공간의 맨 첫 줄 첫번째 칸에서 시작하는 것은 비펀지와 동일하나, 기본 방향은 아랫쪽으로 이동하는 것이 비펀지(오른쪽)와 다른 점이다. 그 외에 코드 공간의 한쪽 끝에 다다르면 커서가 반대편 끝으로 이동하는 점은 Funge-98[1]과 동일하다.

2.1. 자료구조


26개[2]스택과 1개의 [3]를 저장공간으로 사용한다.
그 외에 외부 확장기능과 데이터를 주고 받을 수 있는 '통로'[4]라는 것이 있는데 아직 미구현이다. 아희 개발이 사실상 없으니 앞으로도 구현된 것을 볼 일은 없을 듯 하다.
그리고 최근에 통로를 구현한 아희++이 개발되고 있다!.[5]

2.2. 문법


  • 초성
    • ㄱ, ㅇ 묶음
      • ㅇ, ㄱ, ㅋ: 아무 일도 하지 않는다.[6]
      • ㅎ: 프로그램을 종료한다. 종료 시 선택된 저장 공간에 값이 하나 이상 남아 있다면 하나만 뽑아내 운영체제에 반환하고 비어있다면 0을 반환한다.
    • ㄷ 묶음 - 셈
      • ㄷ, ㄸ, ㅌ, ㄴ, ㄹ: 각각 덧셈, 곱셈, 뺄셈, 나눗셈, 나머지 연산(modulo).
      • 모두 공통적으로 저장공간에서 두 값을 뽑아낸 다음 둘을 연산한 값을 저장공간에 저장한다. 순서가 있는 연산자의 경우 나중에 꺼낸 값이 연산자의 왼쪽에 온다.
    • ㅁ 묶음 - 저장공간
      • ㅁ: 뽑기. 지금 저장공간에서 자료 구조의 형태에 맞게 하나 꺼내온다. 종성으로 ㅇ이 오면 숫자로, ㅎ이 오면 문자로 출력하고 나머지 종성이면 뽑아내서 그냥 버린다.
      • ㅂ: 집어넣기. 지금 저장공간에 값을 하나 넣는다. 종성이 ㅇ,ㅎ이면 각각 숫자와 문자로 사용자에게 입력을 받고, 나머지는 글자의 선의 수가 집어넣을 값이 된다. ㅅ→2, ㄹ→5,... 이런 식으로. 1을 곧바로 넣을 수가 없는데, 3 - 2(받반타, 밬밧타 등)를 하면 된다. 종성이 없으면(바, 보 등) 0을 넣는다.
      • ㅃ: 중복. 지금 저장공간이 스택이라면 맨 위의 값을 그 값 위에 하나 더 집어넣고, 큐라면 맨 앞의 값을 앞에 하나 더 덧붙인다. 통로라면 아까 보낸 값을 한 번 더 보낸다.
      • ㅍ: 바꿔치기. 지금 저장공간이 스택이라면 맨 위 값과 그 바로 아래 값을, 큐라면 맨 앞의 값과 그 바로 뒤 값을 바꾼다. 통로일 때의 동작은 미정.
    • ㅅ 묶음 - 제어, 저장공간 확장
      • ㅅ: 선택. 종성을 통해 상술한 자료구조에서 선택 가능.
      • ㅆ: 이동. 지금 저장공간에서 값 하나를 뽑아내서 받침이 나타내는 저장공간에 그 값을 집어넣는다.
      • ㅈ: 비교. 저장공간에서 값 두 개를 뽑아 내서 비교한다. 나중에 뽑아낸 값이 더 크거나 같으면 1을, 아니면 0을 지금 저장공간에 집어넣는다.
      • ㅊ: 조건. 저장공간에서 값 하나를 뽑아내서 그 값이 0이 아니면 진행해야 할 방향대로, 0이면 그 반대 방향대로 간다.
  • 중성
    • ㅏ,ㅓ,ㅗ,ㅜ: 중성의 방향이 커서의 방향이 된다. 각각 우,좌,상,하.
    • ㅑ,ㅕ,ㅛ,ㅠ: 위와 같으나 2칸 옮긴다.
    • ㅣ,ㅡ,ㅢ: ㅣ는 커서가 세로 방향으로 들어오면 그대로 통과, 가로로 돌아오면 전 자리로 옮기고 방향을 뒤집는다. ㅡ도 가로가 통과이고 세로가 뒤집을 뿐이지 ㅣ와 같다. ㅢ는 어느 방향으로 들어오든 방향을 뒤집는다.
    • 나머지 중성(ㅘㅚㅐㅙㅝㅟㅔㅞ)은 정의되지 않은 동작을 한다.
  • 이외의 종성은 기능 없음.
  • 한글이 아닌 모든 글자는 빈칸으로 처리된다. 즉 무시된다.
  • 종성별 선의 수
2
3
4
5
6
7
8
9
ㄱ, ㄴ, ㅅ
ㄷ, ㅈ, ㅋ
ㅁ, ㅂ, ㅊ, ㅌ, ㅍ, ㄲ, ㄳ, ㅆ
ㄹ, ㄵ, ㄶ

ㄺ, ㄽ

ㄻ, ㄼ, ㄾ, ㄿ

3. 예제



3.1. "Hello, world!"


뱔뿌둬뱺쀠더빠뚜
터벚봃떠빠뷹붏뼤
나퍄따쀄븈뵳두받
붏타볻뚜벓탸볐밢
떠볽뻐뷦투희맣어
[7]
다음은 같은 기능의 프로그램을 1차원으로 만든 것. 반드시 한 줄에 붙여 써야 한다.
발다빠빠따빠밪나파빠밣다빠밦다빠밪타빠밣다밣밤따밞밤따밣다빠밝타밪따빠밪타빠빠밝타밞밣따아멓희

3.2. 구구단


숛숛멍빠빠싼싼산뱐뺘뉴뭏
벊뿌따또볔번벐석떠쇇볏
숟멓묳쑤써순떠뿌처모두샊
빠뿌몽쉐쎼뿌솨쀄토더북무
쑦써뫃멍솎써쏘썪밣봇투무
삭빠쒺섈뷐벳타대뽀숟슏셜
무차쇡뼤썎살밪박토받반투
희토되벅뱷쐬쏶뺴뺴뻐번뎌
아희 코드작성 시 저장공간에서 수의 연산을 할 경우 수가 하나뿐일 시 연산을 할 수가 없기에 코드의 진행 방향이 뒤집혀 숫자를 다시 받은 후 연산이 진행된다.
(ex. 악 저장공간에 아무것도 없는 상태에서 "삭발다"를 할 시 "삭"에서 "악" 저장공간으로 이동 후 "발"에서 "악" 저장공간에 5를 넣고 "다"에서 덧셈을 할 수 없어 다시 "발"로 돌아가 5를 다시 넣고 "다"를 수행에 "악" 저장공간에는 10이 남게된다.)
이런 꼼수를 최대한 활용하면 구구단 코드를 64자로 줄일 수 있다.
부맣슉더벌섡떠벖
샨희밣따받타삮볽
자초반다빠발밖따
쥬사반다빠발밖따
냐뫃먕뼈섡삭따밤
처삭쀼나뮹맣슈츄
나망싹산빠묳빠반
삱뿌빠뵨삮뾰뽀반

3.3. 1부터 입력값까지 더하기


등차수열의 합 공식 이용
방빠받반타다따박나망해

ㅊ을 이용한 재귀법 사용
삭받받타사붕
투터번벋썩뻐
삭다사빠아초
붸에엙희멍석
[8]

3.4. 밑이 2인 로그의 근사값 구하기


밧받타방뿌너벅퍼더
ㅇ희멍머차파받밧토

3.5. 저장방법


이걸 하면 코드의 디버그판에서 저장이 된다.
밯이카츼


3.6. 문자의 UTF-8코드 출력



딱히 크게 대단한 코드는 아니지만, 제대로 작동하는 코드 주제에 적절한 발음을 가져 꽤나 유명하다.
사실 밯망히,밯맣히,방맣히도 된다. 직접 해보라.밯망히 설화

3.7. 99병의 맥주


산발발밥따따빠빠빠빠빠빠빠빠빠뿌
쑱썴썳썲썱썰썯썮썭뻐뻐뻐뻐뻐뻐뻐
쌆쌇쌈쌉쌊쌋쌌쌎반타삱발밦다다숞
뚜벌벋섥더너벅벅설더벓섣더떠벆벆
다삶박다삷밝반따다삸발반따다삹불
숨더더벋떠범범섫더범섪터떠번더벖
받타삽밞밪따반다타삿밪발따반다두
쑼뻐떠범더벐범섳더벑섲더떠벋벍섰
샄반다샅밣밨따수박지민제작붸에엙
아아아아아아유붊다뚜샤먕뿌아아아아아
뿌섢멓뻐섡빠몋발봆숙오뽀처삭뿌뚫맣숮
빠맣맣삳뿌손야몋우바오ㅇㅇ숥차숤뽀뿌
뿌서멓뻐맣셜뷁뽀섵모오ㅇㅇ빠뭏뻐솥뭏
싺삮반반나타우쀼오속여ㅇㅇ어삱빠뫃숝
숢멓뻐섡멓우차솕훍ㅇ요ㅇㅇ오멓뭏뻐뿌
뿌빠맣순뽀섵어멓슓오ㅇ어ㅇㅇ뽀설솗멓
맣솥먛뻐살빠빠맣뫃ㅇ오ㅇㅇㅇㅇ어지민
뉴번번섞썪뻐석멓뻐맣숨오ㅇㅇㅇㅇㅇ어
뺘섵맣삱빠맣삸빠뭏뽀뿌ㅇㅇㅇ맣ㅇ불오
타초숦멓뻐섢멓뻐섵솛뭏ㅇ숙멓뽀ㅇ뿌초
뿌섴빠맣살빠맣샅빠뫃삳빠뽜뫃솤ㅇ두회
맣발반따맣삭마반수아숯어바타초ㅇ뭏툐
숱멓뻐섡멓섭차붌뼈ㅇ뿌노번번머ㅇ수소
빠맣삲빠뭏뚜떠반볎ㅇ맣샅빠맣아오뿌쏘
뿌섵멓뻐섡맣삼빠뭏ㅇㅇㅇㅇㅇㅇㅇ숨도
맣삵빠맣숞숛썫뻐섪오ㅇㅇㅇㅇㅇ어빠본
뭏뻐섡멓뻐받다맣술맣술맣불맣숝오ㅇ어ㅇㅇㅇㅇㅇㅇㅇㅇ어
삷빠맣살뿌뿌섵멓뻐뽀뿌뽀뿌또뿌맣숪토맣사마밡밡반다따오
숨멓뻐섵멓맣삱빠맣솘맣솥밤또뭏뽀뿌노뽀설멓뻐섧멓뻐섡멓
빠맣삸빠뭏숨멓뻐섵멓뻐섨멓뻐섫솘뭏뽀맣살빠맣샅빠맣샂뽀
뿌섵멓뻐섮빠맣삸빠맣발빠밤따뚜뫃사본뽀섲멓뻐섡멓뻐섥멓
맣산빠맣숫숨멓더번뻐섨멓뻐섵멓뽀섯멓뻐섡멓뻐섧멓뻐섬뽀
멓뻐섰멓뻐빠맣삵빠빠맣맣샅빠맣삾빠발다맣삲빠맣샅빠뫃솥


3.8. A+B


방방다망함

5글자로 이루어지는 아주 짧은 소스다. 사실 방다망희도 된다. 바리에이션으로
방방타망함
(A-B),
방방따망함
(A*B),
방방나망함
(A÷B)가 있다.

3.9. 1부터 N까지 출력


붕야나무위키
빠추희망반불
토빠붘오멓떠
오터번


3.10.


분해여
뿌빠뿌
빠뽀묭

실행부터 해보자.[9]
밧멍
최소한으로 글자 수를 줄이게 되면 이렇게 된다. [10]

3.11. 아희아희


밯빪반발땊툼바품맔부삿붏웈찴뿞붛첦붖부쌵쎨뱌분쌵쳔얌부않모버윲옆엄엺퓴옆헐였촎몄썭엸억
쏭벗썽버멒찲뽂잢촢쑹봆술밤얎뱚얖졾얌쌸온춢뱌셙앾솔얂았욚푼츌덠턒뾸첚맞촒앖얒뭀싽보바쏝
똝둥벉떷벒벎벓벓벓부볶붒밦죢뷼봀뼠볾챂뵳분옦엌헐춦묦뼠섯찮반퍚볶뻖춀쟐다옴욘첞땋쏝쏝욯
둅딳땃땇턁부뻢땈뿒쑹손붏퉀벎잪춘톨욢헐볎살츎춠뵨셙춨댜벐됺볐뵨뻦처몪쓜쌀벼챯서싽바쏝옫
뵭벛먹찫뺛젻밣볹뚮부보뚶뾰촢젔뺨볾밦죢촠팠쌵셔솑붏뻐앞쌰챲샤뱐푾슈앖얒먁첣욯쏘뻗섯바쏝
됻뱕촉뚥졏떷벍턹벝쌍숙반툰빮뵨잚초욮버별얖윢았욨툸뚆않춮옾반셜부툔벞쌀바쑬몭척뭏총쏝뵤
똗봅뻛랑빥밟쟑뿕찫붍뵤뱐쁎분헐봂쁖뼐럸죢뗞벐벆멀챂빤뷴반삱촊썰풐벗강성훈맓욧옷엹푩농촟
똙뿓척뮻졋벅뻟첩뮧탉뿕푥벅분쟔벌앾욦츆헐숄수밬밮딸툘숄차숁쌀보붑댥뿋첧먑륝촍뚳벑욡룛펁
똣밫쟟뮳창빷밙줍뷱버붋뵥촣북붙뻤천봉빴뵳쏠펌뽘뻠넒떴붆뽔뿓턱덟벍봅희뱕벇똙폃툩욙춥푫묱
볽벍맛뷰챻뿕뿏쳧븉못쥭솑멏숭쟙뾻첰뵨옲만뱛뱜퍘뱛타슈뚢솟밣턓쁋첯먏몱첟폅뺟뮥찿뵫뮽춧춣
볽밝뚣볏좁벍밣쥻툹벋밟탃쁓뿗맟밭뷹탹먚춢맚몲맢밣푼뵭탇촑뱍쁕떵양뾹얏량얇뱍얓뷷욯푧엿엷
뱍뵻벋엋옅덝엻텁영헉촛부멑쓔충땇뉽탑춛빩밮탈춪풍턱볻서뭃압먑챷촓옫수써뻡섯몽뗡벅박욣욯
뵧턑보옱밣봁멹찱맟뵷뿝뱟춥뷵빡붃뗝뵫뻡툿벍붆뻣밣팗탏폯붗룥슛뱏펗뱕툽뚕브맑수탏퐃맋뷰촛
묯첯몳젿툡벗눁벼뵤먹찻뿑뿑사뿉뵭뿕뵥쟗뼡촐앞턌묟챃맟욟밝똛싾숫펋썮뻣브쌙촙빷바잗춛묩멁
뵫뵥버볽밗줓뼙첥뭇졁븉볃북뜏몫퍿받붉뿚텈뺠뿐첪맞맠먁복법쑤뻕뺥숞찭숞쌙춝샬브븃숫썻픁욡
쁏첡몷뽛욙쳕뵷묫볏맟보챣적쀿축춭뼢뚦뵲봃먖뱦먐투밦밤욮버사툝뱍붓샬뿍춗엯죥쌜뱓뻟튳탇퓵
욣졽엯엏옷엳엱엵뗣영볓역버톃풄앞퐂룺잘촢모불뻚첲맢묶봆바붐몉촏섡풏버삲욣보춥섡쓚퓳톁툥
뷹뿟잡쳣줏먍볍볻뼉톹쳡젓몿볔묺욮뻪쑨봃빺춮턐뭌찼먖먖욤뵴여헐쌚숝잛챹뷱앛뽇샪뎙벅촕뵶볻
욛뵶볹뻙첫맏바받밝똩상썅텰뺦변싸소산뽒뱐뻢튦먘먚먆먈뵸반봈묦브뱐뵤샬솒첧쌙비뿕쑩멽뽇펁
쟏뭅착뿙튵벅첟맓삭팖빶싸팚송빪쑹챶썽뻢성써맊맘맊밣밨욢멆첰몾부썭뽐섢텳볃붓쎥챯벼수쑩톧
욯벅줋벑빹쌍쳫상쑹싸수뼜쑤뻨순찮사뱐송덨뽖춨탺묜찺빪뱞얎톮얀쌵초싽뱌수쌵쎨욿버쎥엱벼똝
보멋첡뭅송뺝뾲쏘셔뮶앢속슈톸뿘빠쑹상쁐뎒속빮봄푾벓뿌섯헐뼈찼얒쌸윮뱌엮쑬며얿벼첛팛툓봆
툫벋수벼삭폴버숙처속졒촌젒봎쑥옦첢운찬수촞텆벘튲퐂쌰퍐쇼뱌옼슈뱌뭎썭뱌썰쏠닰탸몳챃빣볻
팣먅쟘퍘촊욜먺엺폂벼셕썩보돊석촖썽뻐쏭뵨삭푸퍚벓톲폂본첰싸샤뷰펔윤댶춀퉆뱒볾튶웄첬싹삭
뺮셔쑈쎠샥뼞묬텪범덜석펌썩뻞펐선샹써뽈텸번뻞뾲선맔손열옺엸묚분쑍밦봀몮참뽚봃뻒얆존샥벼
아희로 짜여진 아희 인터프리터다. 네이밍은 파이썬 인터프리터 PyPy로부터 영감을 받은 듯하다. 깃허브 페이지에 가보면 아희아희로 또 아희 인터프리터를 구현한 '아희아희아희'를 만들고서는 속도가 느리기 때문에 컴파일 시간을 늘려서 놀 시간을 만들 수 있다[11]고 자랑하고 있다.

3.12. "한글날"


발박땁빠땁빠땁발뚭
뚭떱벓벌떱뻐떱벅벌
답발박땁빠땁반밪뚭
둡어떱번떱벅벌덥떱
뭏
발박땁빠땁빠땁밥뚭
뚭떱벓벌떱뻐떱벅벌
답발박땁빠땁반받둡
둡어떱범떱벅벌덥떱
붐
둡
뭏
발박땁빠땁빠땁밥뚭
뚭떱벅벌떱뻐떱벅벌
발땁답발박땁빠땁분
뚭벚번덥떱번벌덥떱
둡
뭏
희
#

3.13. "Trick or Treat!"


아    밟뿏       희
      딶붇
     땄퉃닶뿕
    밚봆맣쀼맣밦뿛
  딿딵뫃HAPPY딺닦붒
 밤복팮 밞턑몋밭퉆 텞탆뿘
 봋핮   라지우   핥뭏
빥뫃땼밬닫맣훁 튟빸맣밗툯밡툷
뽊뮹뮿덨덭벜   떥뻟벛빰몋뿠
돆벚뵶HALLOWEEN탖붒멓
 뫃볼 뀂  쎿  뺚 퓬툺
 뽆덠떑  삠 띇  쁀뭏뻒
  봎멓떭떣벘번벆멓뻢덙벓
#


3.14. 소인수 분해


사방삭반사빠쑦민
뿌석붘석숛썫숚어
뭉노분초러뽀뿌규
붏솎탸숙듀속썫요
붐쏚인뼈빠반자초
땨소먛수솎분해하
어떤 값을 넣으면 소인수 분해 해준다. 영 할 숫자가 없으면 30030 이나 510510등을 넣거나 아무렇게나 치자.
원리는 입력값을 2로 나눈후 나누어지면 2를 출력하고 나누어지지 않으면 2를 +1하고 입력값이 1이 될때까지 반복하는데 입력값이 1이 되면 종료한다.
아래는 단축 및 고속 버전.
밯뺘속싺샥슊번
븀라초셗썫뻐석
봃멍샥뼈뻐빠쏛
뚜뺘석쌲주섞와
뭏나뽀허차유샌
싺솎밬반타듀즈

3.15. 한글출력보조


밣밣밣밦밝따반따반다따따따빠싹빠싺마삮밣밬밝밝따따뚜
분섡썭뻐서썭뻐더선썬뻐서썬뻐더너번섟썫뻐서썫뻐더써뻐
나다빠싾사빠싾삲반나다빠싿사빠싿삳다빠쌀사빠쌀살다뿌
쑰뻐더너번섧썳뻐서썳뻐더섦썲뻐서썲뻐더너번섥썱뻐서썱
사빠쌄삸반나다빠쌅사빠쌅삹반나다빠쌆사쌆삺반나다사술
두벑벓범서써뻐설멓뻐더떠떠더더벑벌벌벍범서써뻐섪멓뻐
따밝따다맣맣발발댜뭏먛몋뱙몋뱔몋땨뼈뺘뼈뺘뼈뺘뼈빠뼈
뭏더벌벌멓멓멓멓멓멓ㅇ아희유희ㅇ한글출력보조프로그램
삺빠밤다맣삭빠밣밣밣따따다맣삶빠밤밬발밦따밬반타다뚜
수뻐섥멓더써뻐떠떠벍범벓뻐섢멓더떠뻐더범벑뻐선멓더떠
쌁삵다맣삹빠밣밡밝따따다맣산빠밣밤밝따따다맣삭빠밣붍
이위에거만든놈이만듦ㅇ불멓더떠더벍범범뻐선멓더떠떠벍
뱕벌뱕뼈뱜셚댜몋땨뎌땨별다맣살빠밣밝따다맣삮빠맣삱뿌
뚜떠벍벌범범뻐섧멓더떠떠벍벓벓뻐설멓더떠떠더범벑벍범
따다맣발발다맣삲빠밤밬밝밝따따따다맣삶빠밤밝밤밡다뚜
붐뻐섢멓더떠벜벍뻐섡멓더떠떠더더벌벌벑범벍뻐섪멓더떠
다맣빠밤밬밦발따밬반타다따따다맣발발다맣삸빠밣밤밝뚜
뭏더떠터벜떠떠범벌벌범뻐멓더떠떠떠범벜벍벍뻐섢멓더떠
살빠밣밤밝따따다맣삱빠발밤따밝따밬반타타다맣삯빠밤불
뚜벍범범뻐섨멓더떠떠벍범벓뻐설멓더벌벌멓더떠떠떠벍벌
따다맣삲빠밤밦발따밬반타타따다맣하나무위키ㅇ고마워요
저장고에 가부터 하까지 넣어주는 프로그램.
이대로 실행하면 이 위의 1부터 N까지 출력의 코드가 출력된다.

3.16. 미로찾기


밣밤밝밝발따밣다따따뚜ㅇ상하좌우로ㅇ이동합니다ㅇ의의몋쎵선샹의썬샨의멓하ㅇ위에거만든놈뮿
분섟번섞더터번벜석썩뻐ㅇPH6♡님이름삭제요청부탁한분과많은분들감사합니다200716또
삮빠반주빠맣삮빠밬주빠맣삮빠밤주빠맣삮빠발주빠맣삮빠밦주빠맣삮빠밝주빠맣삮빠밣주빠맣우아
바주뼈차소어반주뼈차소어밬주뼈차소어밤주뼈차소어발주뼈차소어밦주뼈차소어밝주뼈차소어ㅇ뵨
숛처야야오요숛처야야오요숛처야야오요숛처야야오요숛처야야오요숛처야야오요숛처야야오요ㅇ볼
빠반쟈쀼차요빠반쟈쀼차요빠반쟈쀼차요빠반쟈쀼차요빠반쟈쀼차요빠반쟈쀼차요빠반쟈쀼차요ㅇㅇ
후처야요요여후처야요요여후처야요요여후처야요요여후처야요요여후처야요요여후처야요요여ㅇㅇ
뱛조땨벼아오뱛조땨벼아오뱛조땨벼아오뱛조땨벼아오뱛조땨벼아오뱛조땨벼아오뱛조땨벼아오ㅇㅇ
우멓떠번벌ㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇ어ㅇ
삮빠반주빠맣삮빠밬주빠맣삮빠밤주빠맣삮빠발주빠맣삮빠밦주빠맣삮빠밝주빠맣삮빠밣주빠맣우ㅇ
바주뼈차소어반주뼈차속어밬주뼈차속어밤주뼈차속어발주뼈차속어밦주뼈차속어밝주뼈차소어ㅇㅇ
숛처야야오요숛처야야오요숛처야야오요숛처야야오요숛처야야오요숛처야야오요숛처야야오요ㅇㅇ
빠밬쟈쀼차요빠밬쟈쀼차요빠밬쟈쀼차요빠밬쟈쀼차요빠밬쟈쀼차요빠밬쟈쀼차요빠밬쟈쀼차요ㅇㅇ
후처야요요여붏처야요요여붏처야요요여붏처야요요여붏처야요요여붏처야요요여후처야요요여ㅇㅇ
뱛조땨변아오뱛조땨변아오뱛조땨변아오뱛조땨변아오뱛조땨변아오뱛조땨변아오뱛조땨변아오ㅇㅇ
우멓떠번벌ㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇ어ㅇ
삮빠반주빠맣삮빠밬주빠맣삮빠밤주빠맣삮빠발주빠맣삮빠밦주빠맣삮빠밝주빠맣삮빠밣주빠맣우ㅇ
바주뼈차소어반주뼈차소어밬주뼈차소어반주뼈차소어발주뼈차소어밦주뼈차속어밝주뼈차소어ㅇㅇ
숛처야야오요숛처야야오요숛처야야오요숛처야야오요숛처야야오요숛처야야오요숛처야야오요ㅇㅇ
빠밤쟈쀼차요빠밤쟈쀼차요빠밤쟈쀼차요빠밤쟈쀼차요빠밤쟈쀼차요빠밤쟈쀼차요빠밤쟈쀼차요ㅇㅇ
후처야요요여후처야요요여후처야요요여후처야요요여후처야요요여붏처야요요여후처야요요여ㅇㅇ
뱛조땨볔아오뱛조땨볔아오뱛조땨볔아오뱛조땨볔아오뱛조땨볔아오뱛조땨볔아오뱛조땨볔아오ㅇㅇ
우멓떠번벌ㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇ어ㅇ
삮빠반주빠맣삮빠밬주빠맣삮빠밤주빠맣삮빠발주따맣삮빠밦주빠맣삮빠밝주빠맣삮빠밣주빠맣우ㅇ
바주뼈차소어반주뼈차속어밬주뼈차속어밤주뼈차붉어발주뼈차소어밦주뼈차속어밝주뼈차소어ㅇㅇ
숛처야야오요숛처야야오요숛처야야오요숛처발뱕뵬뚀숛처야야오요숛처야야오요숛처야야오요ㅇㅇ
빠발쟈쀼차요빠발쟈쀼차요빠발쟈쀼차요빠발쟈쀼차요빠발쟈쀼차요빠발쟈쀼차요빠발쟈쀼차요ㅇㅇ
후처야요요여붏처야요요여붏처야요요여우처야요뵭여후처야요요여붏처야요요여후처야요요여ㅇㅇ
뱛조땨볌아오뱛조땨볌아오뱛조땨볌아오야조야볌아우뱛조땨볌아오뱛조땨볌아오뱛조땨볌아오ㅇㅇ
우멓떠번벌어ㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇ야ㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇ야여유
삮빠반주빠맣삮빠밬주빠맣삮빠밤주빠맣삮빠발주빠맣삮빠밦주빠맣삮빠밝주빠맣삮빠밣주빠맣우ㅇ
바주뼈차소어반주뼈차속어밬주뼈차소어밤주뼈차소어발주뼈차소어밦주뼈차속어밝주뼈차소어ㅇㅇ
숛처야야오요숛처야야오요숛처야야오요숛처야야오요숛처야야오요숛처야야오요숛처야야오요ㅇㅇ
빠밦쟈쀼차요빠밦쟈쀼차요빠밦쟈쀼차요빠밦쟈쀼차요빠밦쟈쀼차요빠밦쟈쀼차요빠밦쟈쀼차요ㅇㅇ
후처야요요여붏처야요요여후처야요요여후처야요요여후처야요요여붏처야요요여후처야요요여ㅇㅇ
뱛조땨별아오뱛조땨별아오뱛조땨별아오뱛조땨별아오뱛조땨별아오뱛조땨별아오뱛조땨별아오ㅇㅇ
우멓떠번벌ㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇ어ㅇ
삮빠반주빠맣삮빠밬주빠맣삮빠밤주빠맣삮빠발주빠맣삮빠밦주빠맣삮빠밝주빠맣삮빠밣주빠맣우ㅇ
바주뼈차소어반주뼈차속어밬주뼈차속어밤주뼈차속어발주뼈차속어밦주뼈차속어밝주뼈차소어ㅇㅇ
숛처야야오요숛처야야오요숛처야야오요숛처야야오요숛처야야오요숛처야야오요숛처야야오요ㅇㅇ
빠밝쟈쀼차요빠밝쟈쀼차요빠밝쟈쀼차요빠밝쟈쀼차요빠밝쟈쀼차요빠밝쟈쀼차요빠밝쟈쀼차요ㅇㅇ
후처야요요여붏처야요요여붏처야요요여붏처야요요여붏처야요요여붏처야요요여후처야요요여ㅇㅇ
뱛조땨볎아오뱛조땨볎아오뱛조땨볎아오뱛조땨볎아오뱛조땨볎아오뱛조땨볎아오뱛조땨볎아오ㅇㅇ
우멓떠번벌ㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇ어ㅇ
삮빠반주빠맣삮빠밬주빠맣삮빠밤주빠맣삮빠발주빠맣삮빠밦주빠맣삮빠밝주빠맣삮빠밣주빠맣우ㅇ
바주뼈차소어반주뼈차소어밬주뼈차소어밤주뼈차소어발주뼈차소어밦주뼈차소어밝주뼈차소어ㅇㅇ
숛처야야오요숛처야야오요숛처야야오요숛처야야오요숛처야야오요숛처야야오요숛처야야오요ㅇㅇ
빠밣쟈쀼차요빠밣쟈쀼차요빠밣쟈쀼차요빠밣쟈쀼차요빠밣쟈쀼차요빠밣쟈쀼차요빠밣쟈쀼차요ㅇㅇ
후처야요요여후처야요요여후처야요요여후처야요요여후처야요요여후처야요요여후처야요요여ㅇㅇ
뱛조땨볅아오뱛조땨볅아오뱛조땨볅아오뱛조땨볅아오뱛조땨볅아오뱛조땨볅아오뱛조땨볅아오ㅇㅇ
ㅇ케모노프렌즈ㅇ우멓떠번벌어ㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇ뱐여다주여ㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇ어ㅇ
ㅇ아라이상페넥ㅇ산밯빠밣밣밬밤밤따빠따밬반타다따따또쟈숛차빠븀쀼뻐뻐뻐뻐뻐뻐뻐서멓떠벓벓
ㅇ아희미로ㅇ분삯볔투번뚜떠분벜분벌붘더쀼처숚븈뚜떠붒뻐뱤야뱐야타텨뺘ㅇ뿌ㅇ뺘ㅇ뿌ㅇ슈아요
ㅇ진짜힘듦ㅇ투초저더봌떠도터또떠또벌봃발볉붘또떠뽀더도범벍범어빠빠뽀뺘뻐삭뽀뺘뻐빠뽀맣수
ㅇ버그천지ㅇ댜샦ㅇ뱤ㅇ뱐ㅇ탸ㅇ탸ㅇ아우봄죠뱐분탸야댜ㅇ아요ㅇ숙ㅇ몋뚜번수멓뭏멓숙멓맣속뭏
우우우우하하하하좌좌좌좌상상우우ㅇㅇ아야도ㅇ텨아오발뚜변멓서맣의소멓볼멓속멓소멓뫃떠번벌

7x7 사이즈의 미로찾기. @를 상하좌우로 이동 할 수 있으며 #에 도착하면 된다.

3.17. 별찍기


벙두뻐
뺘뻐반타빠붉
초뻐초멓떠벖
희뫃마분
뱔도뻐타
사용자에게 수를 입력받아 입력받은 수부터 1까지의 개수대로 별을 개행하며 출력한다.

3.18. 최대공약수


방방뺘쿠차빠쑹
ㅋ해멍머ㅋㅋ루
ㅋㅋ쇼써써성썽
사용자에게 두 정수를 입력받아 두 수의 최대공약수를 구한다.

4. 기타


  • 사실 기본 개념만 알면 그다지 그렇게 어려운 언어는 아니다. 물론 문법이 쉽다는 거지 구조상 조금만 프로그램이 커져도 골치아프다.
  • 메모리를 엄청나게 많이 차지한다. 1~n까지의 합을 구하는 프로그램의 메모리를 보면 C++은[12] 1980KB이지만 아희는[13] 한줄 쳤는데도 무려 31264KB이다.
  • 아희 코드를 트위터에 쓰면 아희 계정이 사찰을 돈다는 설이 있는데, 정말이다! Hello, World를 써주시는 자상함을 지니고 있다.[14][15]
  • 공개 10년만에 아희 컨퍼런스가 열렸다! #
  • 2016년 8월 12일자 웹툰 공대생 너무만화의 타이틀 컷에 아희 언어가 등장했다.# 코드는 '발받악에땀망희났어'. 참고로 실행하면 15가 나온다. 2017년 1월 6일에도 등장했다.# 독자가 헌정해준 문제.
  • 조혜련과 태보의 저주에 수록됐다.

5. 외부 링크



6. 관련 문서



[1] 비펀지의 일종. 업그레이드판이라고 볼 수 있다.[2] ㅇ과 ㅎ을 제외한 쌍자음을 포함한 종성 낱자 14자에 ㄾ같이 합용 병서된 종성 11자, 종성 없을 때의 한 가지까지 총 26개.[3] ㅇ이 큐이다.[4] ㅎ으로 저장공간 고르듯이 쓸 수 있다.[5] Aheuiplusplus[6] ㅇ은 Null로 정의되어 있지만 ㄱ과 ㅋ은 아예 정의 자체가 없다.[7] Hello, world! 문서의 첫 사진에 나오는 코드와는 조금 다르다.[8] 붸에엙 부분은 실행되지 않는 부분이다. 즉, 작성자가 의도하고 넣은 것이다.[9] '받침 없음' 스택 (AVIS에서의 표기는 '아')에 2라는 값을 계속 집어넣는 코드이다. '해'에서 종료될 것 같지만 이 코드의 실행 경로는 분->뿌->빠->뽀->묭->여->분->(무한루프)이기 때문에 '여'까지 오면 2칸 건너 '분'부터 다시 시작하기 때문에 무한 루프가 된다.[10] 박멍 밧먕 등 바의 받침의 선이 두개이고 멍과 같이 중성이 ㅏ가 아니게 하면 똑같이 실행된다. *[11] xkcd에서도 다룬 유명한 개발자 유머 중 하나. 컴파일이 되는 중에는 다른 작업을 하기 어렵기 때문에 딴짓을 해도 이해해준다는 내용이다.[12] #include using namespace std;int main(void){ int a; cin>>a; cout<<(a+1)*a/2<[13] 방빠받반타다따박나망해[14] Hello, World가 아니어도 아희로 작성된 문장이면 실행된 결과를 써준다.[15] 트윗들을 살펴보면 하는말도 여러모로 사차원(?)적인 말들이 많고, 빈창으로 답변을 보내는 일도 허다하다. 공식봇인지 아닌지, 혹은 진짜 사람인지는 불분명하지만 아희 관련 언어들에 다 답글을 달아주고, 유일한 팔로잉이 위에도 언급했다시피 창조자인 Puzzlet Chung이기 때문에 어느 정도 신뢰는 간다.