마우스(프로그래밍 언어)
Mouse (programming language)마우스 프로그래밍 언어는 1970년대 [1][2][3]후반과 1980년대 초반에 피터 그로고노 박사에 의해 개발된 작은 컴퓨터 프로그래밍 언어이다.그것은 전자 음악 스튜디오에서 디지털과 아날로그 장치를 제어하는 데 사용되었던 MUSYS라고 불리는 초기 언어의 연장선상에서 개발되었다.
마우스는 원래 메모리가 제한된 마이크로컴퓨터를 위한 작고 효율적인 언어였습니다.해석된 스택 기반 언어이며 리버스 폴란드어 표기법을 사용합니다.인터프리터를 최대한 쉽게 구현하기 위해 마우스는 프로그램이 한 번에 한 글자씩 한 글자씩의 문자열로 처리되도록 설계되어 있습니다.
마우스 언어의 요소는 각각 특정 기능을 수행하는 (대부분의) 1글자 기호 세트로 구성됩니다(아래 표 참조).변수 이름은 한 문자로 제한되므로 마우스(A-Z라는 이름)에는 26개의 변수만 사용할 수 있습니다.사용할 수 있는 데이터 유형은 정수와 문자뿐입니다.
이러한 제한에도 불구하고 마우스에는 다음과 같은 비교적 고급 기능이 다수 포함되어 있습니다.
- 조건부 분기
- 루프
- 포인터
- 매크로(서브루틴(재귀적일 수 있음))
- 어레이
- 코드 트레이스
마우스 언어의 디자인은 단순한 통역사의 디자인을 가르치는 데 이상적입니다.마우스를 설명하는[3] 책의 대부분은 두 통역사의 구현을 Z80 어셈블리 언어로, 다른 하나는 파스칼로 기술하는 데 전념하고 있습니다.
세부 사항
여기서 설명하는 언어는 마우스 [3]북에서 설명하는 최신 버전의 마우스입니다.이 버전은 원래 잡지 [1]기사에 기술된 언어의 확장판입니다.
기호
다음 표에서는 [3]마우스가 사용하는 각 기호를 설명합니다.여기서 X는 스택 상단의 번호를 나타내고 Y는 스택 상의 다음 번호를 나타냅니다.
| 기호. | 액션. |
|---|---|
| <스페이스> | 액션 없음 |
| $ | 프로그램 종료 |
| <번호> | <번호>를 스택에 푸시하다 |
| + | 더하다 |
| - | 빼다 |
| * | 곱셈 |
| / | 정수 나누기 |
| \ | 나머지 |
| ? | 입력정수 |
| ?' | 입력문자 |
| ! | 정수 인쇄 |
| !' | 인쇄 문자 |
| ' | 스택에 문자 푸시 |
| " | 인쇄 문자열 |
| <레터> | 변수 주소 가져오기 |
| : | 변수 저장 |
| . | 변수 호출 |
| < > | Y < X이면 1을 반환하고, 그렇지 않으면 0을 반환한다. |
| = | Y = X이면 1을 반환하고 그렇지 않으면 0을 반환합니다. |
| > | Y > X이면 1을 반환하고 그렇지 않으면 0을 반환합니다. |
| [ | 조건문 시작 |
| ] | 조건문의 종료 |
| ( | 루프의 개시 |
| ) | 루프의 끝 |
| ^ | 출구 루프(false인 경우) |
| # | 매크로 콜 |
| @ | 매크로 종료 |
| % | 매크로 파라미터 |
| , | 실제 매크로 파라미터의 종료 |
| ; | 매크로 파라미터 리스트의 끝 |
| { | 트레이스 시작 |
| } | 엔드 트레이스 |
| ~ | 댓글 |
표현.
일반적인 관용구
이러한 표현은 마우스 프로그램에서 자주 나타납니다.
X: ~ 변수 X에 저장합니다. ~ 변수 X X를 불러옵니다.Y: ~ X를 Y N 1 + N: ~으로 복사합니다. N을 1 P씩 증가시킵니다. Q: Q: ~ P와 Q? A: ~의 스왑 값을 입력하고 A: ~ 변수 P에 저장합니다. ! ~
입력
마우스는 정수 또는 문자를 입력할 수 있습니다.문자가 입력되면 자동으로 ASCII 코드로 변환됩니다.
X: ~ 번호를 입력하고 X에 저장합니다.' X: ~ 문자를 입력하고 ASCII 코드를 X에 저장합니다.
산출량
마우스는 다음 예시와 같이 정수, 문자 또는 문자열 상수를 인쇄할 수 있습니다.문자열 상수에 느낌표가 나타나면 새 줄이 인쇄됩니다.
X.! ~ 번호 X를 불러와 인쇄 X.'~ ASCII 코드 X를 불러와 문자 "Hello"~ 문자열 "Hello" "Line 1!"을 인쇄합니다.Line 2" ~ 문자열 "Line 1" 및 "Line 2"를 두 줄로 인쇄합니다.
조건
조건부 스테이트먼트의 일반적인 형식은 다음과 같습니다.
B [ S ] ~ 등가: B일 경우 S
여기서 B는 1(참) 또는 0(거짓)으로 평가되는 식이고 S는 일련의 스테이트먼트입니다.
루프
루프에는 몇 가지 형식 중 하나가 있습니다.가장 일반적인 형식은 다음과 같습니다.
(B ^ S) ~ 동등: B는 S (S B ^) ~ 동등: (B가 아닌)까지 S를 반복합니다.
여기서도 B는 부울값(0 또는 1)이며, S는 일련의 스테이트먼트입니다.
매크로 콜
매크로(서브루틴) 콜의 형식은, 다음의 예에 나타냅니다.이 예의 매크로 A는 메인프로그램에서 전달된2개의 파라미터를 추가하여 스택의 상부에 합계를 반환합니다.
#A,p1,p2; ~ 매크로 A에 메인 프로그램을 호출합니다...$A 1% 2% + @ ~ 매크로 A (파라미터 p1 및 p2 추가)
여기서 p1과 p2는 매크로에 전달되는 파라미터입니다.
프로그램 예시
이 짧은 프로그램은 'Hello world'로 출력된다.
"Hello world" $
이 프로그램은 1부터 10까지의 정수의 제곱을 표시합니다.
1 N: ~N을 1로 초기화(N. N. *! " " ~ 시작 루프, N > = 10 N. 1 + N: ) $ ~10 ~ 0 의 숫자 정사각형을 인쇄하고 반복 루프를 반복합니다.
메모들
- ^ a b Grogono, Peter (July 1979). mii/n197/mode/2up "Mouse / A Language for Microcomputers". BYTE. pp. 198–220. Retrieved 18 October 2013.
{{cite news}}:확인.url=값(도움말) - ^ Lane, Tom; Grogono, Peter (June 1980). "Comment and Correction for Mouse". BYTE. Retrieved 18 October 2013.
- ^ a b c d 그로고노, 피터마우스: 마이크로컴퓨터를 위한 언어. 151페이지.페트로셀리 북스 주식회사: 1983년ISBN 0-89433-201-5.
외부 링크
- 마우스 프로그래밍 언어
- Great Mouse 프로그래밍 언어 부활
- 프렌즈 오브 더 마우스
- 마우스, 언어
- 마우스: 컴퓨터 프로그래밍 언어(마우스 인터프리터용 소스 코드 포함)
- 소스 포지에 대한 정보입니다.그물