마우스(프로그래밍 언어)

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 의 숫자 정사각형을 인쇄하고 반복 루프를 반복합니다.

메모들

  1. ^ 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=(도움말)
  2. ^ Lane, Tom; Grogono, Peter (June 1980). "Comment and Correction for Mouse". BYTE. Retrieved 18 October 2013.
  3. ^ a b c d 그로고노, 피터마우스: 마이크로컴퓨터를 위한 언어. 151페이지.페트로셀리 북스 주식회사: 1983년ISBN 0-89433-201-5.

외부 링크