창조유저그룹-커즈닷컴
Window close
ID :     PASS :   
   
  처음으로
  창조
  창조 소개
창조 다운로드
CUGz.com 소개
온라인 도움말
  커뮤니티
  가입인사
자유게시판
Q/A게시판
TIP/TECH
열린강좌
자주하는질문
아이디어게시판
  자료실
  소스자료실
프로그램자료실
기타자료실
명예의 전당
이미지 자료실
  지원/기타
  표준용어재정
구글 웹서치  
관리자 전용


기타자료실
- '창조'로 제작하지 않은 프로그램이나, '창조'와 관련된 프로그램들을 올리는 곳입니다.
- 첨부가능 확장자는 *.zip,*.rar,*.exe,*.jpg,*.gif,*.png 입니다.


LIST ALL
Posted by 김제형2008-11-30 14:35:13, Hit : 5251
난해한 프로그래밍 언어 2
Homepage : http://www.김제형.je.ro
Post URL : http://cugz.sjworks.net/bbs/zboard.php?id=pds_etc&no=858

재가 쓸게 별로 없어서 해석을 했거든요.
잘 봐 주시기 바랍니다.

Whirl 프로그래밍언어


1.이 프로그래밍 언어에서 주어진 것은, 오퍼레이션 링과 그에 달린 하나의 숫자(모든 정수 다 됨), 수학 링과 그에 달린 하나의 숫자(모든 정수 다 됨), 무한한 메모리(하나의 메모리 칸에는 하나의 정수를 넣을 수 있다.) 그리고 두 개의 명령어 1과 0이다.


2.명령어
 휠에는 두 가지 명령어가 있다. 1과 0이다.
 1 => 정해진 방향으로 정해진 링을 1칸 돌린다.
 0 => 링을 돌리는 방향을 반대로 한다. 만약 뒤에 0이 있다면, 지금 링의 명령어를 실행하고, 링을 교체한다.(수학 링이면 오퍼레이션 링으로, 오퍼레이션 링이면 수학 링으로)
 처음에는 오퍼레이션 링이 선택 되어 있고 밑 방향으로 돌린다.(시계방향) 그리고 수학 링과 오퍼레이션 링은 Noop명령어로 설정 되어 있다. 만약 1과 0 이외에 명령어가 오면 무시 한다.(PAdd할 때도 무시하는 걸로 알고 있음) 그렇다면 주석을 다는 것은 간편하다. 다만 0과 1만 조심하면 된다.


3.링


오퍼레이션 링


Noop => 아무 일 안함.
Exit => 프로그램을 끝낸다.
One => 오퍼레이션 링에 달린 숫자를 1로 만든다.
Zero => 오퍼레이션 링에 달린 숫자를 0으로 만든다.
Load => 오퍼레이션 링에 달린 숫자를 현재 가르키고 있는 메모리 안의 숫자로 만든다.
Store => 현재 가르키고 있는 메모리 안의 숫자를 오퍼레이션 링에 달린 숫자로 바꾼다.
PAdd => 현재 가르키고 있는 프로그램 포인터에 오퍼레이션 링에 달린 숫자를 더한다.(점프 같지요.JMP)
DAdd => 현재 가르키고 있는 메모리 포인터(메모리 포인터가 가르키는 숫자가 아님)에 오퍼레이션 링에 달린 숫자를 더한다.(브레인
퍽에서는 >혹은 <명령어와 비슷)
Logic => 만약 현재 메모리 포인터가 가르키고 있는 메모리 방 안의 숫자가 0이라면 링에 달린 숫자(뭔지 알겠지?)를 0으로 바꾼다. 아니면 링에 달린 숫자와 1을 AND연산(1&1=1 1&0=0 0&1=0 0&0=0)한다.
If => 만약 현재 메모리 포인터가 가르키는 방의 숫자가 0이 아니면 링에 달린 숫자를 프로그램 포인터에 더한다.(PAdd 비슷)
IntIO => 만약 링에 달린 숫자가 0이라면 숫자를 받아 현재 메모리 포인터가 가르키는 방에 숫자를 넣는다. 아니면 현재 메모리 포인터가 가르키는 방의 숫자를 출력한다.
AscIO => 만약 링에 달린 숫자가 0이라면 문자를 받아 현재 메모리 포인터가 가르키는 방에 문자의 아스키 코드 값을 넣는다. 아니면 현재 메모리 포인터가 가르키는 방의 아스키 코드 값과 일치하는 문자를 출력한다.


수학 링


Noop => 아무 일도 않 함
Load => 수학 링에 달린 숫자를 현재 메모리 포인터가 가르키는 방 안의 숫자로 바꾼다.
Store => 현재 메모리 포인터가 가르키는 방 안의 숫자를 링에 달린 숫자로 바꾼다.
Add => 링에 달린 숫자에 메모리 포인터가 가르키는 방의 숫자를 더한다.
Mult => 링에 달린 숫자에 메모리 포인터가 가르키는 방의 숫자를 곱한다.
Div => 링에 달린 숫자를 메모리 포인터가 가르키는 방의 숫자로 나누어 몫을 링에 달린 숫자에 넣는다.
Zero => 링에 달린 숫자를 0으로 만든다.
< => 만약에 링에 달린 숫자가 메모리 포인터가 가르키는 방의 숫자보다 작다면 링에 달린 숫자를 1로 바꾼다. 아니면 링에 달린 숫자를 0으로 바꾼다.
> => 만약에 링에 달린 숫자가 메모리 포인터가 가르키는 방의 숫자보다 크다면 링에 달린 숫자를 1로 한다. 아니면 링에 달린 숫자를 0으로 한다.
= => 만약 링에 달린 숫자와 메모리 포인터가 가르키는 방의 숫자와 같다면 링에 달린 숫자로 1로 한다. 아니면 링에 달린 숫자를 0으로 한다.
Not => 만약 링에 달린 숫자가 0이 아니면 0으로 바꾼다. 아니면 1로 바꾼다.
Neg => 링에 달린 숫자에 마이너스를 붙인다.(-1을 곱한다. 0 => 0, 1 => -1, 2 => -2, -3 => 3...)


4. 설명
1+1을 출력하는 예제이다.
00 => 오퍼 링의 Noop명령을 실행하고 수학 링으로 바꾼다.
0 => 수학 링의 방향을 시계 반대로 바꾼다.
11 => 수학 링의 Not명령으로 링을 돌린다.
00 => 수학 링의 Not명령을 실행하고 오퍼 링으로 바꾼다.
00 => 오퍼 링의 Noop명령을 실행하고 수학 링으로 바꾼다.
1 => 수학 링의 Add명령으로 링을 돌린다.
00 => 수학 링의 Add명령을 실행하고 오퍼 링으로 바꾼다.
00 => 오퍼 링의 Noop명령을 실행하고 수학 링으로 바꾼다.
0 => 수학 링의 방향을 시계 방향으로 바꾼다.
1 => 수학 링의 Store명령으로 링을 돌린다.
00 => 수학 링의 Store명령을 실행하고 오퍼 링으로 바꾼다.
11 => 오퍼 링의 One명령으로 링을 돌린다.
00 => 오퍼 링의 One명령을 실행하고 수학 링으로 바꾼다.
00 => 수학 링의 Store명령을 실행하고 오퍼 링으로 바꾼다.
0 => 오퍼 링의 방향을 시계 반대 방향으로 바꾼다.
1111 => 오퍼 링의 IntIO명령으로 링을 돌린다.
00 => 오퍼 링의 IntIO명령을 실행하고 수학 링으로 바꾼다.
그럼 소스는 어떻게 만들가요?
위의 소스를 합치면
0001100001000001001100000111100
가 됩니다.
가끔씩 보기 좋도록 같은 크기를 정해 뛰어쓰기도 합니다.
00011000
01000001
00110000
0111100


5. 예제
Hello, World!를 출력 하는 예제.
110011100111000001111100000001000011111000011111100000000010
000011001111100001100010000010011111000100000000000001001111
100000111110001000000000000000001000111110010000001100001111
100011000000000100111110011100111000111000001000111000001111
100000111110010000011111000110011111100001111000001111000001
110011111100001111000110011100000111000100011111000001111100
100000110000000111000001110001111100011111000111000001000001
000011000111110001000001000000011100000111001000111110001111
000001111000011111100001111110000011110000000000000000011110
000011100111000011110011111000111110001111100000100000000000
000000000000111110001110000001110000011100011100111110001000
100000000011100001111100110000000010011111000111100000111100
111100010011100000111110000011111001100111100010001111000000
000001000111110010000010011110011001110001000111110001100000
100011111000011110011100111111000111100000111100011111000000
011110000011100100001111000100011111001100011111000111100000
111001110001100111100100000000000000011111000001111100010010
000011100001111100100000100011100000111000110011110001001111
110001100000111100011111000111100000111001000011110001001111
100000111110000000011110000011110000000000000000111000001110
000011000001100000111000111000001100111110000111111001001110
000011111000001100011000001001111110000011100110011111000000
000111000001110000111100001100


손상진   2008-11-30 PM 8:13:19  
뭐 기계어도 짜면 0010011101011
LIST ALL               GO TO THE TOP


N
Category
   Subject
Posted by
Date
H
597 기타
   난해한 프로그래밍 언어 3 [1]
김제형 2008/11/30  5979
기타
   난해한 프로그래밍 언어 2 [1]
김제형 2008/11/30  5251
595 창조관련
   창조를 편리하게 실행해주는 레지... [2]
한수훈 2008/11/29  5633
594 기타
   쓸만한 배치화일 kill.bat
한수훈 2008/11/23  6377
593 기타
   난해한 프로그래밍 언어 [4]
김제형 2008/11/10  12585
592 기타
   VB그룹박스(밑판_둥글게~ ㅎㅎ) ...
한수훈 2008/11/07  5636
591 기타
   아이콘좀 모아봤습니다. ^^; [1]
한수훈 2008/11/01  5551
590 창조관련
   현재 제작중인 배치화일 제작기. [2]
한수훈 2008/10/05  6046
589 기타
   가짜로 만들어본 cmd ...
한수훈 2008/08/19  6022
588 기타
   스팩트럼을 가능하게 하는 소스..
박재성 2008/08/03  5141
587 창조관련
   블루컴 거희 다 완성! [1]
한수훈 2008/07/29  5733
586 창조관련
   탄성가진 버튼 예제 [1]
성인e 2008/06/14  5000
585 기타
   [한글] Recuva 1.12.291
김동민 2008/03/29  5771
584 창조관련
   창조 온라인 도움말 [4]
김동민 2007/12/31  5939
583 기타
   일명 '문상네토 프로그램'이라는 ... [5]
박종훈 2007/12/17  5921
582 기타
   png그림파일을 ico그림파일로 바... [1]
김제형 2007/11/17  5495
581 기타
   [자료]다중클립보드복사 - 멀티클... [6]
김환욱 2007/08/11  5060
580 창조관련
   CreateCOM (창조에서 COM/ActiveX... [2]
지상현 2007/07/09  5490
579 창조관련
   가짜 창조 2002 -_-; [7]
지상현 2007/06/22  5643
578 기타
   올리는 김에 재미있는 자료 하나 ... [2]
바람 2007/06/20  5209
577 기타
   무거운 포토샾 대신 이거 ... [3]
바람 2007/06/20  5503
576 창조관련
   Flickr open api를 이용한 사진 ... [1]
자수 2007/05/14  5657
575 기타
   CTFMON.exe Killer !! [1]
김동민 2007/05/02  5600
574 기타
   여기다 올릴게요^^* (만우절특집,...
서든어택 2007/04/26  4868
573 창조관련
   건반게임 만드려고하는데 너무 어... [1]
성인e 2007/04/07  5018
LIST ALL   Prev [1][2][3][4] 5 [6][7][8][9][10]..[28] Next
Copyright 1999-2024 Zeroboard / skin by reedyfox in miniwini style
로그인
지우개 Expert 3.0
제작자 : 천호성 님 [LINK]
로그인
대박로또2005
제작자 : 최재일 님 [LINK]
로그인
1박종훈15292 점
2지상현8809 점
3손상진7388 점
4권선중6060 점
5이진백5174 점
로그인
가입일닉네임
05/31김동률
03/31홍형기
09/01o00pp99oo
12/27이재민
11/20이희철
로그인