사우샘프턴 베이직 시스템

Southampton BASIC System

Southampton BASIC System(SOBS)은 1960년대 후반과 1970년대 초반에 ICT 1900 시리즈 컴퓨터용으로 개발되어 사용된 BASIC 프로그래밍 언어의 방언으로, Southampton[1] 대학MINIMOP 운영 체제에서 증분 BASIC 인터프리터로 구현되었으며 MAXIMOP에서도 실행되었습니다.

Teletype 터미널에서 작동했지만 CRT 터미널도 사용할 수 있었습니다.

언어 특성

BASIC의 많은 초기 구현과 마찬가지로 SOBS는 사용자가 원하는 장소에서 프로그램에 새로운 행을 추가할 수 있도록 하기 위해 회선 번호를 가질 필요가 있었습니다.GOTO그리고.GOSUB진술들.aRENUMBER프로그램 중간에 더 많은 공간을 확보하기 위해 기본적으로 코드 섹션의 번호를 10씩 다시 매길 수 있는 기능을 사용할 수 있었습니다.

라인 번호를 제외한 모든 숫자 값은 내부적으로 부동 소수점으로 표현되었습니다.

진술들

이 언어는 현대 프로그래밍 언어에 비해 비교적 적은 문장이 있었다.

진술 목적
DATA 저장된 데이터:READ실행 시 변수에 입력
DIM var(size)... 어레이의 치수를 지정합니다.1차원, 2차원 및 3차원 어레이가 지원되었습니다.
END 프로그램 실행을 중지합니다.
FOR var=start TO end [STEP incr] var의 다양한 값에 대해 일련의 문장을 반복적으로 수행합니다.
GOSUB line 주어진 선 수에;a흐름은 다음 입출금 내역서에 복귀한 서브 루틴을 불러 주세요RETURN처형되었다.
GOTO line 주어진 선 수에 무조건 가지.
IF expr THEN line [ELSE line] Conditionally 분야이다.THEN그리고.ELSE부품만 줄 번호로 가를 줄 수 있다.
INPUT var 입력 데이터에 대한 사용자인지.
LET var=expr 변수를 나타내는 값을 할당한다.BASIC,의 많은 현대적인 방언들과는 달리,LET있지 않은 선택적 단어이다.
NEXT var a의 다음 반복을 하다.FOR고리.
PRINT 그 Teletype도록 출력
READ var... 에서 데이터 읽기DATA변수에 진술
REM 에게는 짧은REM방주, 이것은 댓글 라인에 설치할 수 있는 것을 감안했습니다.
RESTORE [line] 의 리셋READ다시 읽기 위한 포인터DATA
RETURN 다음 행으로 돌아가다GOSUB.

특히, 의 결여에 주의해 주세요.WHILE- like 스테이트먼트FOR프로그래머가 사용할 수 있는 유일한 루프 구조였습니다.

변수

숫자 값의 변수 이름은 단일 문자 또는 단일 문자 뒤에 단일 숫자가 이어지므로 총 286개의 개별 변수를 사용할 수 있습니다.문자열이 지원되었습니다.문자열 변수 이름에는 같은 제한이 있지만 그 뒤에 파운드(pound)가 붙습니다.£) 기호.

기능들

제한된 수의 숫자 기능이 제공되었으며, 모두 하나의 숫자 파라미터를 사용했습니다.

기능. (x { x )가 반환되었습니다.
SIN
COS
ATN
SQR
LOG
EXP
INT x x 의 최대 정수
SGN x x 0보다 작거나 같거나 여부에 따라 -1, 0 또는 1
ABS 음수인 x(-x(x)이고, 그렇지 않은 경우 x)

문자열 지원은 한 가지 기능만으로 제한되었습니다.LENstring 파라미터의 길이를 반환했습니다.각 괄호로 서브스트링이 지원되었기 때문에A£[2,3]문자열의 하위 문자열 참조두 번째 글자부터 세 번째 글자까지가 있으니까

10 허락하다 A£ = "푸" 20 인쇄하다 A£[2,3] 

인쇄하다OO

이 구문은 할당의 좌측에서도 지원되었습니다.

10 허락하다 A£ = "푸" 20 허락하다 A£[2,2] = "바" 30 인쇄하다 A£ 

인쇄하다FBARO

어레이

데이터 어레이 처리에 대한 지원은 비교적 강력하여MAT어레이 전체를 읽을 수 있는 스테이트먼트DATA그리고 행렬 덧셈, 행렬 빼기, 행렬 곱셈, 제곱 행렬의 역행렬 찾기 의 유용한 행렬 연산을 수행합니다.

예:

10 DIM A(3,3) 20 매트. 읽어주세요 A 30 데이터. 1,1,2,1,0,2,0,2,1 40 DIM B(3,3) 50 매트. 읽어주세요 B 60 데이터. 0,0,1,0,1,0,1,0,0 70 DIM C(3,3),D(3,3) 80 매트. C=A*B 90 매트. D=INV(C) 100 매트. 인쇄하다 D, 
A처음부터 읽다DATA진술
B두 번째부터 읽는다DATA진술
C곱셈을 통해 계산됩니다.A그리고.B
D의 역수로 계산된다.C

출력은 2 2 1 1 - 1 0 4 - 3 - 2 입니다.

디버깅

SOBS는 기본 디버깅 기능을 가지고 있으며, 이는 주로TRACE진술. TRACE ON그러면 인터프리터는 실행 시 각 행 번호를 인쇄합니다.

레퍼런스

  1. ^ Rees, M.J.; Oppenheimer, A.W. (21 January 1977). "SOBS – an incremental BASIC system". Software: Practice and Experience. Wiley InterScience. 7 (5): 631–643. doi:10.1002/spe.4380070508. Archived from the original on 5 January 2013. Retrieved 18 May 2009.