디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

아희 이거 눈돌아간다.

BTTTS!갤로그로 이동합니다. 2010.12.30 18:40:33
조회 137 추천 0 댓글 2


인터프리터가 아희를 실행하는 방법은 funge와 비슷합니다. 즉, 코드 공간 안에 커서가 있어서 커서가 위치한 곳에 적혀 있는 명령을 수행하고, 또 그 명령에 따라 커서가 움직이는 것입니다. 하지만, 그 코드가 ASCII가 아니라 한글이라는 점이 다릅니다.

한글은 홀소리와 닿소리로 나눌 수 있습니다. 홀소리는 커서가 이동할 방향을 지정하고, 닿소리는 인터프리터가 수행할 명령을 지정합니다. 받침이 있는 글자는 닿소리가 두 개가 되는데, 이 때 받침은 명령을 보조하는 인자로 작용합니다. (사용되지 않는 받침은 모두 무시됩니다.) 커서가 글자 위에 오게 되면 닿소리부터 실행한 다음 홀소리에 따라서 움직입니다.

커서는 코드 공간의 맨 첫 줄 맨 첫번째 칸에서 시작합니다. 맨 처음에 홀소리가 없을 경우 커서는 기본값으로 아랫쪽으로 이동하는데, 이는 #!과 호환시키기 위한 것으로, 기본 방향이 오른쪽인 funge와는 다른 점입니다.

코드 공간의 한 쪽 끝에 다다르면 커서는 반대편 끝으로 이동합니다. 이는 Funge-98의 wrapping algorithm과 동일합니다.

아희에서 쓰이는 저장 공간은 여러 개가 있습니다. 대부분이 스택이고, 큐가 하나 있습니다. 그리고 확장기능과 소통하는 통로가 있는데, 스택과 마찬가지로 씁니다. 집어넣기(push)로 인수를 전달하고 뽑아내기(pop)로 결과를 받아옵니다. 중복 명령을 포함한 모든 뽑아내기를 쓰는 명령에서 저장 공간에 값이 모자랄 경우, 커서는 그 명령을 실행하지 않고 커서가 있는 글자의 홀소리의 반대방향으로 움직입니다.

 

각 홀소리의 기능은 다음과 같습니다.

<ㅏ, ㅓ, ㅗ, ㅜ - 커서를 각각 오른쪽, 왼쪽, 위, 아래로 한 칸 옮깁니다.ㅑ, ㅕ, ㅛ, ㅠ - 커서를 각각 오른쪽, 왼쪽, 위, 아래로 두 칸 옮깁니다.ㅡ - 커서가 가로로 왔으면 그 방향대로, 세로로 왔으면 전에 있던 자리로 옮깁니다.ㅣ - 커서가 세로로 왔으면 그 방향대로, 가로로 왔으면 전에 있던 자리로 옮깁니다.<ㅢ - 커서를 전에 있던 자리로 옮깁니다.기능 없음: ㅐ ㅔ ㅒ ㅖ ㅘ ㅙ ㅚ ㅝ ㅞ ㅟ (커서가 이동하는 방향은 변하지 않습니다.)

 

닿소리

각 닿소리의 기능은 다음과 같습니다.

ㅇ 묶음

ㅇ은 없음 명령으로 아무 일도 하지 않습니다.ㅎ은 끝냄 명령으로 커서의 실행을 끝냅니다. 이 때 스택에서 맨 위 값을 뽑아서 운영체제에 돌려 줍니다.

ㄷ 묶음 - 셈

ㄷ은 덧셈 명령으로 저장공간에서 두 값을 뽑아낸 다음 둘을 더한 값을 저장공간에 집어넣습니다.ㄸ은 곱셈 명령으로 저장공간에서 두 값을 뽑아낸 다음 둘을 곱한 값을 저장공간에 집어넣습니다.ㅌ은 뺄셈 명령으로 저장공간에서 두 값을 뽑아낸 다음 나중 값에서 먼저 값을 뺀 값을 저장공간에 집어넣습니다.ㄴ은 나눗셈 명령으로 저장공간에서 두 값을 뽑아낸 다음 나중 값에서 먼저 값을 나눈 값을 저장공간에 집어넣습니다.ㄹ은 나머지 명령으로 저장공간에서 두 값을 뽑아낸 다음 나중 값에서 먼저 값을 나눈 나머지를 저장공간에 집어넣습니다.

ㅁ 묶음 - 저장공간

ㅁ은 뽑기 명령입니다. 지금 저장공간이 스택이라면 맨 위의 값, 큐라면 맨 앞의 값을 뽑아냅니다.(pop) 통로라면 거기서 값을 하나 뽑아옵니다. ㅁ 명령에는 받침이 올 수 있는데, 이에 대한 설명은 아래에 있습니다.ㅂ은 집어넣기 명령입니다. 지금 저장공간이 스택이라면 맨 위에, 큐라면 맨 뒤에 값을 집어넣습니다.(push) 통로라면 값을 하나 보냅니다. 집어넣거나 보낼 값은 받침이 결정하는데, 이에 대한 설명은 아래에 있습니다.</li><li style="line-height: 2em; ">ㅃ은 중복 명령입니다. 지금 저장공간이 스택이라면 맨 위의 값을 그 값 위에 하나 더 집어넣고, 큐라면 맨 앞의 값을 앞에 하나 더 덧붙입니다. (통로라면 아까 보낸 값을 한 번 더 보냅니다.)</li><li style="line-height: 2em; ">ㅍ은 바꿔치기 명령입니다. 지금 저장공간이 스택이라면 맨 위 값과 그 바로 아래 값을, 큐라면 맨 앞의 값과 그 바로 뒤 값을 바꿉니다. (통로라면?)</li></ul>

ㅁ에 ㅇ받침이 있으면 저장공간에서 뽑아낸 값을 숫자로, ㅎ받침이 있으면 그 값에 해당하는 유니코드 문자로 출력합니다. 나머지 받침은 뽑아낸 값을 그냥 버립니다. ㅂ도 마찬가지로 ㅇ받침이 있으면 입력받은 숫자를, ㅎ받침이 있으면 입력받은 문자의 유니코드 코드값을 저장공간에 집어넣습니다.

단, ㅂ의 경우 나머지 받침이 있으면 그 받침을 구성하는 선의 수에 따른 값을 집어넣습니다. 받침이 없으면 0을 집어넣습니다.

 
 223544234344 
 ㄲ
 4455799799864

 받침 중에는 1획인 것이 없는데, 1은 2/2나 3-2 같은 셈으로 간단하게 만들 수 있습니다. 예: `반밧나`, `밪반타` 등.

ㅅ 묶음 - 제어, 저장공간 확장

ㅅ은 선택 명령으로 저장공간을 선택합니다. 어느 것을 선택하는지는 받침을 따르는데, 이에 대한 설명은 아래에 있습니다.</li><li style="line-height: 2em; ">ㅆ은 이동 명령으로 저장공간에서 값 하나를 뽑아내서 받침이 나타내는 저장공간에 그 값을 집어 넣습니다.</li><li style="line-height: 2em; ">ㅈ은 비교 명령으로 저장공간에서 값 두 개를 뽑아 내서 비교합니다. 나중에 뽑아낸 값이 더 크거나 같으면 1을, 아니면 0을 지금 저장공간에 집어넣습니다.</li><li style="line-height: 2em; ">ㅊ은 조건 명령으로 저장공간에서 값 하나를 뽑아내서 그 값이 0이 아니면 홀소리의 방향대로, 0이면 그 반대 방향대로 갑니다.</li></ul>

ㅅ나 ㅆ으로 선택할 수 있는 스택은 (받침 없음), ㄱ, ㄴ, ㄷ, ㄹ, ㅁ, ㅂ, ㅅ, ㅈ, ㅊ, ㅋ, ㅌ, ㅍ, ㄲ, ㄳ, ㄵ, ㄶ, ㄺ, ㄻ, ㄼ, ㄽ, ㄾ, ㄿ, ㅀ, ㅄ, ㅆ이 있습니다. ㅇ은 큐이며, ㅎ을 선택하면 확장 기능과 소통하기 위한 통로가 선택됩니다.

 처음에 선택되어 있는 스택은 (받침 없음) 스택입니다. ("사" 와 같은 명령으로 선택할 수 있습니다.)

 


코드는 UTF-8로 된 텍스트 형식입니다. 코드는 한글로만 이루어지는데, 여기서 한글은 유니코드 U+AC00에서 U+D7A3까지의 범위에 있는 글자(Hangul Syllable 영역)를 말합니다. 그 밖의 글자나 코드에서 지정하지 않은 나머지 공간은 모두 빈 칸으로 처리되어 커서가 이동하는 방향에 아무 영향을 주지 않습니다.

 

<

다음은 "Hello, world!"를 출력하는 프로그램입니다.


밤밣따빠밣밟따뿌
빠맣파빨받밤뚜뭏
돋밬탕빠맣붏두붇
볻뫃박발뚷투뭏붖
뫃도뫃희멓뭏뭏붘
뫃봌토범더벌뿌뚜
뽑뽀멓멓더벓뻐뚠
뽀덩벐멓뻐덕더벅</li></ol>

더 많은 코드는 코드를 참고하세요.



버그 하나 생기면 처음부터 다시짜는게 낳을듯

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 연예인 안됐으면 어쩔 뻔, 누가 봐도 천상 연예인은? 운영자 24/06/17 - -
230085 프겔에 찾아와서 사업하자고[만들어달라고] 하는 철부지 새끼들의 패턴 [14] 안티푸닭(112.216) 11.01.10 328 3
230083 ==TRUE를 써도되는데 !==를 굳이쓰는이유가뭐야? [10] ddd(61.41) 11.01.10 164 0
230082 쩌는형님들 학원추천좀해줘 [3] 학원;(211.212) 11.01.10 101 0
230081 월향뭐임 영광의비석갤로그로 이동합니다. 11.01.10 36 0
230080 Vnc 서버와 x 서버??? ㅎㅎㅎㅎㅎ(123.215) 11.01.10 49 0
230079 hal.dll 파일 날려버려도 복구가 가능? 영광의비석갤로그로 이동합니다. 11.01.10 96 0
230077 자바 개인지도 학원에서 다니는거 어떰?? [3] 형들(121.165) 11.01.10 99 0
230076 세상엔 여러가지 직업들이 있고 그에 따라 익혀야 할것도 참 많아 [6] DCode(125.7) 11.01.10 189 1
230074 IE 가 뜬 이유 [32] 개쉛기갤로그로 이동합니다. 11.01.10 325 0
230073 그만해... 키즈라엘갤로그로 이동합니다. 11.01.10 117 0
230072 한국만큼 IE에 쩔어있는 나라 또 잇음? [14] 갤러리갤로그로 이동합니다. 11.01.10 273 0
230070 정보처리기사 자격 응시 조건이 뭔가요? [2] 노이영(112.154) 11.01.10 439 0
230062 timt.h에서 asctime 관련 문의 [10] 두사늬(210.107) 11.01.10 96 0
230060 빨리 핵융합 발전이 실용화 되야 할텐데.. [2] 속결자갤로그로 이동합니다. 11.01.10 130 0
230058 병렬처리의 기본개념 [3] 개쉛기갤로그로 이동합니다. 11.01.10 158 0
230054 프로그래밍 하기에 적합한 넷북이나 노트북 추천좀여!! [3] hello world!(110.8) 11.01.10 424 0
230053 으아 쓰레드 너무 어렵다. [6] 꿀레갤로그로 이동합니다. 11.01.10 165 0
230048 내가 더러운 프갤을 정화시켜본다 [2] junon갤로그로 이동합니다. 11.01.10 119 0
230047 프갤 존나더럽네 [7] 개쉛기갤로그로 이동합니다. 11.01.10 174 0
230045 세계적인 SNS 같이 만들어보실 분 없음? [7] ㅇㅇ(211.254) 11.01.10 180 0
230044 인간 고스트가 요기잉네? [3] 꿀레갤로그로 이동합니다. 11.01.10 115 0
230043 윈7에서 작업환경 문제 없나? [4] SODmaster갤로그로 이동합니다. 11.01.10 136 0
230042 저기 자바 기본에 cgi구현도 포함된거야??? [3] 양아치(61.253) 11.01.10 91 0
230041 DC 왜이리 안꺼짐요 ㅡㅡ 미치겠네 [6] BTTTS!갤로그로 이동합니다. 11.01.10 151 0
230039 나 포멧하러감요 [11] BTTTS!갤로그로 이동합니다. 11.01.10 110 0
230038 다가올 미래 [3] 시불라미갤로그로 이동합니다. 11.01.10 139 0
230037 포멧해야 되는데 엑세스 거부나옴. 핸들 풀어버리고 싶은데 BTTTS!갤로그로 이동합니다. 11.01.10 76 0
230036 타입 엡실론, 카오스 [5] BTTTS!갤로그로 이동합니다. 11.01.10 270 0
230034 이력서 위조 [3] 이모군(1.225) 11.01.10 255 0
230033 BTTS! [16] ㅁㄴㅇㄹ(121.130) 11.01.10 124 0
230032 바이러스 만드는법 [10] BTTTS!갤로그로 이동합니다. 11.01.10 727 0
230030 이젠 일자리 구하는게 두렵게 느껴진다 [3] 이모군(1.225) 11.01.10 129 0
230029 IT의 12대 미스터리 [8] 찬양하라.NET갤로그로 이동합니다. 11.01.10 268 1
230027 data driven application 이 뭐지? 이건머지?(168.188) 11.01.10 56 0
230026 소프트웨어 1년 사용권 내고 사용하면 안되나? [1] 이모군(1.225) 11.01.10 75 0
230025 AES 256 암호화 키값이 뭐임? [2] BTTTS!갤로그로 이동합니다. 11.01.10 248 0
230024 그 있잖아 하드부팅 전에시디 넣으면 자동으로 프로그램 켜지는거 어떻게함? [1] BTTTS!갤로그로 이동합니다. 11.01.10 82 0
230023 가끔 도스 프로그램 키면 배경이 파란색인데 그런 색지정 어떻게함? [2] BTTTS!갤로그로 이동합니다. 11.01.10 78 0
230022 MS에 아는 사람 있는 사람 [9] 천회장(211.45) 11.01.10 172 0
230021 점심시간의 마무리는 노래로 [7] 개쉛기갤로그로 이동합니다. 11.01.10 74 0
230020 [축] 리눅스 귀환 [5] 땡칠도사갤로그로 이동합니다. 11.01.10 204 0
230019 시스템 날아간거 같은데 이거 시디롬만 복구 못함? [1] BTTTS!갤로그로 이동합니다. 11.01.10 72 0
230018 형들 C언어 첨시작하려고 책사려고 하는데 [7] fqgwqrt(58.236) 11.01.10 209 0
230017 김시향 정신줄 놓으니까 귀엽네 [2] ㅁㄴㅇㄹ(121.130) 11.01.10 241 0
230015 라면에 삼겹살 넣어서 먹으면 맛있음? [5] 꿀레갤로그로 이동합니다. 11.01.10 123 0
230014 역시 펀더멘탈 C가 진리인듯 [1] BTTTS!갤로그로 이동합니다. 11.01.10 159 0
230013 서울대 컴퓨터공학부 이신 분도 플갤 하시나요?있으시면 손 점 [3] ㅇㅇ(211.254) 11.01.10 216 0
230012 그러면 내가 CEO가 되야지 BTTTS!갤로그로 이동합니다. 11.01.10 62 0
230011 으휴 우리나라 진짜 환경 눈물난다 [6] 꿀레갤로그로 이동합니다. 11.01.10 179 0
230010 윈7 프로페셔널은 울티메이트랑 똑같은데.. BTTTS!갤로그로 이동합니다. 11.01.10 195 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2