아희

덤프버전 :

1. 개요
2. 동작
2.1. 자료구조
2.2. 문법
2.2.1. 참고 사항
3. 예제
3.2. 구구단
3.3. 1부터 입력값까지 더하기
3.4. 폭룡의 시 (부제: 밑이 2인 로그의 정수 부분 구하기)
3.5. 저장 방법
3.6. 문자의 UTF-8코드 출력
3.9. A+B
3.10. 1부터 N까지 출력
3.11. 홍진호
3.12. 아희아희
3.13. "한글날"
3.14. "Trick or Treat!"
3.16. 한글출력보조
3.17. 미로찾기
3.19. 최대공약수
3.20. 피보나치 수열
3.21. 소수판별
3.22. 원주율 계산
3.23. n!
3.24. 16진수로 변환
3.25. 7의 배수 + 달에 관한 시
3.26. 선형합동법
4. 기타
5. 외부 링크
6. 관련 문서


1. 개요[편집]


https://aheui.readthedocs.io/ko/latest/ 홈페이지
오직 한글로만 프로그래밍되는 한글 프로그래밍 언어로, 한글로 된 프로그래밍 언어 중에서 첫 번째로 발표된 난해한 프로그래밍 언어다. 난해한 프로그래밍 언어의 제작 이유 중에서는 '어떤 개념의 증명' 정도가 적당할 것이다. 아희는 한글 낱자의 디자인을 살릴 수 있는 프로그래밍 언어라는 목적을 가지고 고안되었다. 다만 한글로 프로그래밍을 하는 거지 한국어로 프로그래밍을 하는 게 아니므로 모르고 본다면 글자 깨짐이나 외계어가 따로 없다. 제작자는 한국어 위키백과의 관리자이자 엔하위키 미러 운영자Puzzlet Chung.

어원은 오감도에서도 볼 수 있는 '아이'를 뜻하는 옛 국어 낱말인 '아희'. '아희' 자체가 유효한 아희 코드이기도 하며, 실행하면 아무 동작 없이 종료된다.

JavaScript로 구현한 아희 인터프리터.

2. 동작[편집]


아희의 기본 개념은 비펀지와 비슷하다. '화살표' 명령을 사용해서 명령의 흐름을 이리저리 조종하는 것으로, 비펀지와 다른 점은 그 화살표를 포함해서 모든 명령이 순 한글이라는 것이다. 한글 낱자는 초성, 중성, 종성으로 나눌 수 있는데, 이때 중성은 커서가 이동할 방향을 지정하고, 초성은 수행할 명령을 지정한다. 종성은 초성의 명령을 보조하는 인자로서, 예를 들자면 저장공간을 선택하거나, 숫자를 결정하거나 하는 일이다.

그 외에 코드 공간의 맨 첫 줄 첫번째 칸에서 시작하는 것은 비펀지와 동일하나, 기본 방향은 아랫쪽으로 이동하는 것이 비펀지(오른쪽)와 다른 점이다. 그 외에 코드 공간의 한쪽 끝에 다다르면 커서가 반대편 끝으로 이동하는 점은 Funge-98[1]과 동일하다.

2.1. 자료구조[편집]


26개[2]스택과 1개의 [3]를 저장공간으로 사용한다.

그 외에 외부 확장기능과 데이터를 주고 받을 수 있는 '통로'[4]라는 것이 있는데 아직 미구현이다. 아희 개발이 사실상 없으니 앞으로도 구현된 것을 볼 일은 없을 듯 하다.

그리고 최근에 통로를 구현한 아희++이 개발되고 있다!.[5]들어가 보면 개발이 중단 되었다고 한다. '아직 개발중인 버전입니다' 라는 부분도 있다. 톡희가 대신 개발 된듯...

2.2. 문법[편집]


  • 초성
    • ㄱ, ㅇ 묶음
      • ㅇ, ㄱ, ㅋ: 아무 일도 하지 않는다.[6]
      • ㅎ: 프로그램을 종료한다. 종료 시 선택된 저장 공간에 값이 하나 이상 남아 있다면 하나만 뽑아내 운영체제에 반환하고 비어있다면 0을 반환한다.
    • ㄷ 묶음 - 셈
      • ㄷ: 덧셈
      • ㅌ: 뺄셈
      • ㄸ: 곱셈
      • ㄴ: 나눗셈
      • ㄹ: 나머지 연산 (modulo)
      • 모두 공통적으로 저장공간에서 두 값을 뽑아낸 다음 둘을 연산한 값을 저장공간에 저장한다. 순서가 있는 연산자(ㅌ, ㄴ, ㄹ)의 경우 나중에 꺼낸 값이 연산자의 왼쪽, 먼저 꺼낸 값이 오른쪽에 온다. 만약 저장공간에 남은 값이 한 개 이하라면 진행방향을 바꾼다. 자세한 동작은 후술.
    • ㅁ 묶음 - 저장공간
      • ㅁ: 뽑기. 현재 선택된 저장공간에서 자료 구조의 형태에 맞게 하나 꺼내온다.
        • 종성으로 ㅇ이 오는 경우: 값을 숫자 형식으로 출력한다.
        • 종성으로 ㅎ이 오는 경우: 해당하는 유니코드의 문자를 출력한다.
        • 나머지 종성이면 뽑아내서 그냥 버린다.
      • ㅂ: 집어넣기. 현재 선택된 저장공간에 값을 하나 넣는다.
        • 종성으로 ㅇ이 오는 경우: 값을 숫자 형식으로 입력받는다. 즉 '8'은 8로 저장된다. 공백이나 개행이 나올 때까지 숫자를 읽어들이며, 앞에 -가 존재하는 경우 음수로 취급한다.
        • 종성으로 ㅎ이 오는 경우: 값을 문자 형식으로 입력받는다. 즉 '8'은 56(아스키 코드 기준)으로 저장된다.
        • 나머지의 경우, 종성의 획 수가 집어넣을 값(리터럴)이 된다. 즉 받침 'ㅅ'는 2로, 받침 'ㄹ'는 5가 된다. 이때 1을 곧바로 넣을 수가 없는데, 3 - 2(받반타, 밬밧타 등)를 하면 된다. 종성이 없으면(바, 보 등) 0으로 평가한다. 전체 목록은 참고 사항 문단의 '종성별 선의 수' 참고.
      • ㅃ: 중복. 현재 선택된 저장공간의 종류에 따라 동작이 달라진다.
        • 스택이라면 맨 위의 값을 그 값 위에 하나 더 집어넣는다.
        • 큐라면 맨 앞의 값을 앞에 하나 더 덧붙인다. 뒤의 값이 아님에 주의하자.
        • 통로라면 가장 마지막으로 보낸 값을 한 번 더 보낸다.
      • ㅍ: 바꿔치기.
        • 스택이라면 맨 위 값과 그 바로 아래 값의 위치를 서로 바꾼다.
        • 큐라면 맨 앞의 값과 그 바로 뒤 값을 바꾼다.
        • 통로일 때의 동작은 미정.
        • 만약 저장공간에 남은 값이 한 개 이하라면 진행방향을 바꾼다.
    • ㅅ 묶음 - 제어, 저장공간 확장
      • ㅅ: 선택. 종성을 통해 상술한 자료구조에서 선택할 수 있다.
        • 종성이 없다면(사 등) 기본으로 선택되는 스택으로 되돌아온다.
      • ㅆ: 이동. 지금 저장공간에서 값 하나를 뽑아내서 받침이 나타내는 저장공간에 그 값을 집어넣는다.
        • 만약 현재 선택된 저장공간에 값이 하나도 없다면 진행방향을 바꾼다.
      • ㅈ: 비교. 저장공간에서 값 두 개를 뽑아 내서 비교한다. 나중에 뽑아낸 값이 먼저 뽑아낸 값보다 더 크거나 같으면 1을, 아니면 0을 지금 저장공간에 집어넣는다.
      • ㅊ: 조건. 저장공간에서 값 하나를 뽑아내서 그 값이 0이 아니면 진행해야 할 방향대로, 0이면 그 반대 방향대로 간다.
  • 중성
    • ㅏ,ㅓ,ㅗ,ㅜ: 중성의 방향이 커서의 방향이 된다. 각각 우,좌,상,하.
    • ㅑ,ㅕ,ㅛ,ㅠ: 위와 같으나 2칸 옮긴다.
      • 만약 끝에 다다르면 반대쪽으로 이동하되, 1칸으로 취급한다. 즉



의 경우 '야' 에서 끝에 다다르면 첫 열로 되돌아가지만, '안'이 아닌 '악'을 실행시킨다. 따라서 마지막 '야'를 '아'로 바꿔도 결과는 같다.
  • ㅣ,ㅡ,ㅢ: ㅣ는 커서가 세로 방향으로 들어오면 그대로 통과, 가로로 돌아오면 전 자리로 옮기고 방향을 뒤집는다. ㅡ도 가로가 통과이고 세로가 뒤집을 뿐이지 ㅣ와 같다. ㅢ는 어느 방향으로 들어오든 방향을 뒤집는다.
  • 나머지 중성(ㅘㅚㅐㅙㅝㅟㅔㅞ)은 정의되지 않은 동작을 한다.
  • 이외의 종성은 기능 없음.
  • 한글이 아닌 모든 글자는 빈칸으로 처리된다. 즉 무시된다.
  • '한글'을 가(U+AC00) 이상 힣(U+D7A3) 이하로만 정의하는 구현체도 있고, ㄱ~ㅎ, ㅏ~ㅣ(U+3131 ~ U+3163)등 한글 낱자도 포함하는 구현체도 존재한다. 아희 명세에 따르면 공식적으로는 U+AC00~U+D7A3 사이의 문자만 한글로 취급한다.[7]

2.2.1. 참고 사항[편집]


  • 종성별 선의 수
2
ㄱ, ㄴ, ㅅ
3
ㄷ, ㅈ, ㅋ
4
ㅁ, ㅂ, ㅊ, ㅌ, ㅍ, ㄲ, ㄳ, ㅆ
5
ㄹ, ㄵ, ㄶ
6

7
ㄺ, ㄽ
8

9
ㄻ, ㄼ, ㄾ, ㄿ
  • 주석을 달 수 있는 기능은 직접적으로 제공되지는 않는다. 다만, 커서가 절대 지나가지 않는 위치에는 어떠한 글자를 써도 프로그램에 영향을 미치지 않으므로, 그런 자리를 활용해 설명을 쓸 수 있다.
    • 아래 나무위키에 등록된 코드들 속에는 제작자의 센스가 돋보이는 말들이 숨어 있으니 찾아보자.
  • 아희 코드를 실행하는 중 수로 연산(ㄷ,ㅌ,ㄸ,ㄴ,ㄹ)하게 되는데, 해당 저장공간에 수가 하나뿐일 시 연산을 할 수가 없다. 따라서, 코드의 진행 방향이 뒤집혀 다른 숫자를 받은 후 연산이 진행된다.
    예를 들어, "악" 저장공간에 아무것도 없는 상태에서 "삭발다"를 할 시 "삭"에서 "악" 저장공간으로 이동 후 "발"에서 "악" 저장공간에 5를 넣는다. 이때 "다"에서 덧셈을 할 수 없으므로 다시 "발"로 돌아가 5를 넣는다. 마지막으로 "다"를 수행하여 "악" 저장공간에는 10이 남게 된다.

3. 예제[편집]



3.1. "Hello, world!"[편집]


모든 프로그래밍 언어의 기본인만큼 다양한 예제가 존재한다.
아희 언어의 명세 문서에는 다음의 코드를 소개하고 있다.
밤밣따빠밣밟따뿌
빠맣파빨받밤뚜뭏
돋밬탕빠맣붏두붇
볻뫃박발뚷투뭏붖
뫃도뫃희멓뭏뭏붘
뫃봌토범더벌뿌뚜
뽑뽀멓멓더벓뻐뚠
뽀덩벐멓뻐덕더벅
아래는 같은 일을 하는 프로그램의 더 짧은 버전이다. 숏코딩의 예시로, 겨우 40글자(124B)로 보통의 코드들보다 짧다.
뱔뿌둬뱺쀠더빠뚜
터벚봃떠빠뷹붏뼤
나퍄따쀄븈뵳두받
붏타볻뚜벓탸볐밢
떠볽뻐뷦투희맣어
동일한 코드를 1차원으로도 쓸 수 있다. 반드시 한 줄에 붙여 써야 한다. 빠따
발다빠빠따빠밪나파빠밣다빠밦다빠밪타빠밣다밣밤따밞밤따밣다빠밝타밪따빠밪타빠빠밝타밞밣따아멓희
Hello, world! 문서에도 또 다른 코드가 있으므로 참고하자. 다만 불필요한 개행이 되어 있다는 오류가 있다.

3.2. 구구단[편집]


숛숛멍빠빠싼싼산뱐뺘뉴뭏
벊뿌따또볔번벐석떠쇇볏
숟멓묳쑤써순떠뿌처모두샊
빠뿌몽쉐쎼뿌솨쀄토더북무
쑦써뫃멍솎써쏘썪밣봇투무
삭빠쒺섈뷐벳타대뽀숟슏셜
무차쇡뼤썎살밪박토받반투
희토되벅뱷쐬쏶뺴뺴뻐번뎌
상단의 참고사항에서 서술한 마지막 꼼수를 최대한 활용하면 구구단 코드를 64자로 줄일 수 있다.
부맣슉더벌섡떠벖
샨희밣따받타삮볽
자초반다빠발밖따
쥬사반다빠발밖따
냐뫃먕뼈섡삭따밤
처삭쀼나뮹맣슈츄
나망싹산빠묳빠반
삱뿌빠뵨삮뾰뽀반
또는, 여러 개의 스택에서 문자와 값을 하나씩 빼 오는 방식으로 다음과 같이 (더 짧고 직관적이다!) 62자 코딩도 가능하다.
삭밤발밦따뚜
뚜떠범벌벋섞
밤받타다삯붏
 붐벌선더벌
 타삱방삲붊
숙썰멍뻐뻐섡
빠맣산빠뭉초
투범벌썰뻐히
두발밤타타뾰
숚솒멓뻐섟
빠맣살따몽


3.3. 1부터 입력값까지 더하기[편집]



파일:CC-white.svg 이 아희 코드의 내용 중 전체 또는 일부는
문서의 r68 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}}에서 가져왔습니다. 이전 역사 보러 가기
파일:CC-white.svg 이 아희 코드의 내용 중 전체 또는 일부는 다른 문서에서 가져왔습니다.
[ 펼치기 · 접기 ]
문서의 r68 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)
문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)



방반따빠쌱여뱐껴타퀘쀄쳐꼐삭더박나망희
또는, 등차수열의 합 공식을 이용할 수 있다.
방빠받반타다따박나망해

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

3.4. 폭룡의 시 (부제: 밑이 2인 로그의 정수 부분 구하기)[편집]



파일:CC-white.svg 이 아희 코드의 내용 중 전체 또는 일부는
문서의 r1 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}}에서 가져왔습니다. 이전 역사 보러 가기
파일:CC-white.svg 이 아희 코드의 내용 중 전체 또는 일부는 다른 문서에서 가져왔습니다.
[ 펼치기 · 접기 ]
문서의 r1 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)
문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)



육체는 단명하고
근성은 영원한것
방산반밧나뿌서어뎐근성
대류…분선창사반나산분
폭룡이탄뭉폭룡의뇨시볏
최고다아하#김끼룩제작
아희에서 무시되는 명령어는 모두 주석으로 처리된다. 다음은 위에서 주석을 #으로 처리한 결과.
육#######
########
방산반밧나뿌서어뎐##
###분선창사반나산분
###탄뭉###뇨#볏
####하######
아래의 코드는, 위 폭룡의 시를 최대한으로 숏코딩해본 것이다.
밧받타방뿌너벅퍼더
ㅇ희멍머차파받밧토


3.5. 저장 방법[편집]


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


3.6. 문자의 UTF-8코드 출력[편집]


밯망히

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

3.7. 99병의 맥주[편집]


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


3.8. cat[편집]


유닉스에서 표준 입력을 표준 출력으로 이어주는 명령어. 다음과 같이 간단하게 구현할 수 있다.
밯빠받다박탸희차맣
[9]
$ [아희 인터프리터] ./[소스 파일명] < ./[소스 파일명] 2>> /dev/null
을 사용하면 자기 자신의 소스 코드를 출력할 수 있다![10]

3.9. A+B[편집]


방방다망함

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

A+B를 말이 되게 만든 코드 #(로그인 필요)
A-B를 시문으로 만든 코드 #(로그인 필요)

3.10. 1부터 N까지 출력[편집]


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

3.11. 홍진호[편집]


분해여
뿌빠뿌
빠뽀묭
해여?
실행부터 해보자.[11]
밧멍
최소한으로 글자 수를 줄이게 되면 이렇게 된다.[12] 줄여도 2글자이다.

3.12. 아희아희[편집]


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

아희로 짜여진 아희 인터프리터다. 작성자는 강성훈씨. 네이밍은 파이썬 인터프리터 PyPy로부터 영감을 받은 듯하다. 깃허브 페이지에 가보면 아희아희로 또 아희 인터프리터를 구현한 '아희아희아희'를 만들고서는 속도가 느리기 때문에 컴파일 시간을 늘려서 놀 시간을 만들 수 있다[13]고 자랑하고 있다.

3.13. "한글날"[편집]


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

3.14. "Trick or Treat!"[편집]


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

3.15. 소인수분해[편집]


사방삭반사빠쑦민
뿌석붘석숛썫숚어
뭉노분초러뽀뿌규
붏솎탸숙듀속썫요
붐쏚인뼈빠반자초
땨소먛수솎분해하
어떤 값을 넣으면 소인수분해를 해준다. 영 할 숫자가 없으면 30030 이나 510510 등을 넣거나 아무렇게나 치자.

입력값을 2로 나눈 후 나누어지면 2를 출력하고 나누어지지 않으면 2를 +1하고 입력값이 1이 될 때까지 반복하는데 입력값이 1이 되면 종료하는 원리이다.



3.16. 한글출력보조[편집]


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

3.17. 미로찾기[편집]


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

3.18. 별 찍기[편집]


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

3.19. 최대공약수[편집]


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

3.20. 피보나치 수열[편집]


순하리맛밤뚜맛밤뚜
븅ㅋㅋㅋ봃뭏뷁봃뭏
고려대잡초숲잡초숲
슢ㅋㅋ복헿큐봌헿큐
ㅋㅋㅋ뽀선뷁뽀선뷁
받반타빠몽빠가몽아아아빠쑥
라붐벓멍뻐썩퍼더섶쎂석뻐섶
뽕따맣산발밤타타빠아받자초
피보나치수열을아희로출력헿
사용자에게 수를 입력받아 입력받은 수를 항의 개수로 가지는 피보나치 수열을 제1항부터 출력한다.고려대잡초숲 순하리맛밤 피보나치수열을아희로출력헿
방삭받반타빠싼빠싿살바숩
수떠뻐떠떠뻐뻐더벌벌섬버ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ쑬퍼섣
빠반라쌑반나뺘숩처숱투터번벋섭커커커커커커커커커커커커커커쏟
소커커커더터번벋ㅋ마삽뺘쿠처산망해ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ코도
쿠커커커커커커커커커커커커ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ코솔
삭빠쌋빠쌋삿따산빠쌋삳빠쌋삿따다산빠쌋삭빠쌋살빠쌋삿다뚜코쏠
두떠섯썻뻐섣썻뻐선떠섯썻뻐썻뻐설떠더섯썻뻐설썻뻐석썻뻐섣코뽀
삼빠쌋삿루삼빠쌋삿루삼빠쌋삿루삼빠쌋삿루샽쿠처카카카카카코솓
ㅋ샬썰퍄켜모샫썯퍄켜모샨썬퍄켜모샥썩퍄켜모삭빠싼산다싹삭파쏜
행렬을 이용하여 [math(O(logN))]만에 N번째 피보나치 수를 1000000으로 나눈 나머지(끝 6자리)를 출력한다.

3.21. 소수판별[편집]


방삭뷋수
쑤뻐쉑뻐꺼서
사루ㅇㅇㅇ도
붇차쇅뱯뱻토
밧타투
헤숙꺼
맹쎄
턔쇄햬
벳쟤멩
봊차보

1~n까지 나누어서 판별하는 방식이다.

3.22. 원주율 계산[편집]


부ㅇㅇㅇㅇㅇㅇㅇ반투ㅇㅇㅇㅇㅇㅇㅇ
삭붱쉰벸밧타쉭뿌봌살밧벸타섺붱숟어
숙뗴뒤뷙벉선커처솓분벶떄붝숴썌뻐고
밪뱩타퇴아짜빠꼬우타다솬빼썌사푸꼬
ㅇㅇㅇㅇㅇ우거커쩌두떠서써뻐설너꼬
ㅇㅇㅇㅇㅇ까카까카삳벸뷕테대솰붓고
ㅇㅇㅇㅇㅇ꾸ㅇㅇ뿌섂썏뼤섣떠터벜꼬
ㅇㅇㅇㅇㅇㅇㅇㅇ싻쉓주ㅇ우ㅇㅇㅇ꼬
ㅇ휘묑떄뱫돼숴써뻐선처카까짜가까쪼
ㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇ
첫ㅇ번째ㅇ입력은ㅇ자릿수ㅇㅇㅇㅇㅇ
두ㅇ번째는ㅇ항에ㅇ개수ㅇㅇㅇㅇㅇㅇ

라이프니츠 공식을 이용하여 [math(10^{n}\pi)]를 계산한다.
매우 비효율적인데... 수렴 속도도 느린...

3.23. n![편집]


방빠싹숙팩여
빡싸수숚토초
토쓔떠붇뭉서
속썩터번해툐
망숙타숙삯쑦
뱓섟본빠쏚쇾

[math(1 < n ≲ 21)]인 [math(n)]에 대하여 [math(n!)]을 계산한다.

3.24. 16진수로 변환[편집]


뷩
빠붟뷏똬럐푸
초쀄너뙤봩법
마빠뱩볞뙤주회
투오뗘뷜봑처뮹
뱛묳뱒뒈댜뗘벊
이요거트쪈나역해

입력 받은 10진수를 16진수로 변환한다.
요거트쪈나역해

3.25. 7의 배수 + 달에 관한 시[편집]


붉은 달은 피로 물들고,
푸른 달은 눈물을 흘린다.
밝은 달은 예쁜가?

7부터 14, 21, 28... 의 숫자를 첫번째 스택에 저장한다.

아희에서 무시되는 명령어는 모두 주석으로 처리된다. 다음은 위에서 주석을 #으로 처리한 결과.
붉## ## ## ###
푸# ## ### ###
밝# 달# #쁜#


3.26. 선형합동법[편집]


벯빠뚜밬붘타붓싼붘빠쑤
빠또뽜벧볰백뱈뛰뷙쉑새
뚜뷇떠쒹봗봦뱾데볮대래
밣똬뷋또뱰떄벶뛰뵛쉐뿨
뚜뗴뛔뙤벍뱬뷐뛔튀쐬뭉
따뛔뱯봭퉤봇뛰돼붼쀠붅
투봑뱈뒤뙈떄떠뚸벶숻분
박봦벧붧뱩데때또뗴뛰뚜
두때둬뷇봚봟턔봰벚숴붘
따되뙤뛰쏃방카샌뼤쏘두
ㅇㅇㅇㅇㅇㅇ코꺼쩌거멓

ANSI C 표준을 따라 시드를 입력 받아 유사 난수를 출력한다

최적화의 여지가 다분하다.

4. 기타[편집]


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

5. 외부 링크[편집]


  • 자바스크립트 버전
  • 아스키 to 아희 변환기
  • 문자열 to 아희 변환기 (한글 지원)
  • 아희켐(AheuiChem)[18]
  • 알파희 - 아희 JIT 인터프리터
  • AVIS - 아희 편집기이다. 일종의 IDE 같은 거라고 보면 된다.
  • 아희 온라인 개발환경

6. 관련 문서[편집]



파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-12-07 19:07:54에 나무위키 아희 문서에서 가져왔습니다.

[1] 비펀지의 일종. 업그레이드판이라고 볼 수 있다.[2] ㅇ과 ㅎ을 제외한 쌍자음을 포함한 종성 낱자 14자에 ㄾ같이 합용 병서된 종성 11자, 종성 없을 때의 한 가지까지 총 26개.[3] ㅇ이 큐이다.[4] ㅎ으로 저장공간 고르듯이 쓸 수 있다.[5] Aheuiplusplus[6] ㅇ은 Null로 정의되어 있지만 ㄱ과 ㅋ은 아예 정의 자체가 없다.[7] Unicode Hangul syllables area consists of code points in hexadecimal number AC00 - D7A3. Incomplete characters like ㄱ, ㅇ, ㅑ, or ㅟ are treated as comments. - Specification of Aheui[8] 붸에엙은 실행되지 않는 부분이다. 즉, 작성자가 의도하고 넣은 것이다.[9] 단, 여기서는 EOF가 -1이라고 가정한다.[10] 표준 입력을 읽는 것 뿐이기에 콰인과는 조금 다르다.[11] '받침 없음' 스택 (AVIS에서의 표기는 '아')에 2라는 값을 계속 집어넣는 코드이다. '해'에서 종료될 것 같지만 이 코드의 실행 경로는 "분->뿌->빠->뽀->빠->뿌->묭->여(->분)"의 반복이기 때문에 무한 루프가 된다.[12] 박멍, 밧먕 등 바의 받침의 선이 두개이고 멍과 같이 중성이 ㅗ, ㅛ, ㅜ, ㅠ가 아니게 하면 똑같이 실행된다.[13] xkcd에서도 다룬 유명한 개발자 유머 중 하나. 컴파일이 되는 중에는 다른 작업을 하기 어렵기 때문에 딴짓을 해도 이해해준다는 내용이다.[14] #include using namespace std;int main(void){ int a; cin>>a; cout<<(a+1)*a/2<[15] 방빠받반타다따박나망해[16] Hello, World가 아니어도 아희로 작성된 문장이면 실행된 결과를 써준다.[17] 트윗들을 살펴보면 하는말도 여러모로 사차원(?)적인 말들이 많고, 빈창으로 답변을 보내는 일도 허다하다. 공식봇인지 아닌지, 혹은 진짜 사람인지는 불분명하지만 아희 관련 언어들에 다 답글을 달아주고, 유일한 팔로잉이 위에도 언급했다시피 창조자인 Puzzlet Chung이기 때문에 어느 정도 신뢰는 간다. [18] 아희와 비슷한 메커니즘을 가진 퍼즐게임 SpaceChem에서 따온 이름으로 보인다.