HP 시간 공유 BASIC
HP Time-Shared BAS패러다임 | 필수적 |
---|---|
개발자 | 마이크 그린 |
처음 등장한 | 1969년 | ; 전 (
OS | HP 2100 |
영향을 받다 | |
다트머스 바스IC | |
영향받은 | |
Cf. SDS BASIC, Integer BASIC, Atari BASIC, 기타 다수 |
HP TSB(Time-Shared BASIC)는 Hewlett-Packard의 HP 2000 시리즈 미니컴퓨터 기반의 시분할 컴퓨터 시스템용 BASIC 프로그래밍 언어 인터프리터입니다.TSB는 역사적으로 스타 트렉의 첫 번째 공개 버전을 출시한 플랫폼으로 유명하다.
시스템은 BASIC의 방언과 여러 사람이 동시에 시스템을 사용할 수 있는 기본적인 사용자 계정 및 프로그램 라이브러리를 구현합니다.이 시스템은 1970년대 초반부터 중반까지 주요 세력이었으며 많은 프로그램을 만들었다.HP는 투고된 프로그램의 데이터베이스를 유지 보수하고, 고객은 적은 비용으로 천공 테이프로 주문할 수 있었습니다.
1970년대의 BASIC은 대부분 1960년대의 오리지널 Dartmouth BASIC으로 거슬러 올라가지만, 초기 버전의 Dartmouth는 문자열 변수를 다루거나 문자열 조작 기능을 제공하지 않았습니다.벤더는 독자적인 솔루션을 추가했습니다.HP는 Fortran 및 어레이 슬라이싱과 유사한 시스템을 사용했고, DEC는 나중에 이 솔루션을 도입했습니다.MID/LEFT/RIGHT
기능들.
1970년대 중반 마이크로컴퓨터가 시장에 등장하기 시작하면서 DEC 또는 HP의 구문을 기반으로 한 많은 새로운 BASIC이 등장했습니다.Microsoft BASIC이 된 오리지널 버전인 Altair BASIC은 DEC의 BASIC-PLUS에 패턴화되어 있습니다.애플의 Integer BASIC, Atari BASIC, North Star BASIC을 포함한 다른 제품들은 HP 스타일을 본떠 만들어졌다.이로 인해 문자열 처리가 발생했을 경우 이들 플랫폼 간의 변환이 다소 어려웠습니다.
명명법
이 소프트웨어는 HP 2000C Time-Shared BASIC과 같은 하드웨어 버전과 연계된 버전 이름으로도 알려져 있으며 운영체제는 2000A, 2000B, 2000C, High-Speed 2000C, 2000E, 2000F 등 다양한 종류가 있습니다.
HP는 또한 일부 출판물에서 이 언어를 "Access BASIC"이라고 언급했습니다.이는 일부 출판물에서는 "2000/Access"로 알려진 실행 대상 머신의 이름과 일치합니다.이 용어는 플랫폼이 처음 시작되었을 때 잠깐 사용되었을 뿐입니다.
플랫폼 상세
2000A 및 2000E 시스템을 제외하고 시스템은 듀얼 프로세서 아키텍처를 사용하여 구현됩니다.시스템 코드와 모든 사용자 코드의 실행에 완전히 구성된 HP 2100 시리즈 프로세서를 1개, 시분할 사용자가 접속한 RS-232 시리얼 회선을 처리하기 위해 작은 HP 2100 시리즈 프로세서를 2개 사용합니다.시스템은 하드웨어 구성에 따라 최대 16명 또는 최대 32명의 동시 리모트 사용자를 지원합니다.
TSB 시스템의 일반적인 단말기는 Teletype Model 33 ASR로 I/O 프로세서에 직접 연결되거나 모뎀 또는 음향 커플러를 통해 연결되었습니다.어카운트명은, 1개의 영문자와 그 다음에 10진수(예: B001)를 조합한 것입니다.권한 있는 계정은 문자 "A"로 시작하며 몇 가지 추가 명령 및 프로그램 스토리지 기능을 가지고 있습니다.Superuser 계정은 A000입니다.이 방식은 최대 26,000개의 사용자 계정을 허용합니다.
실행 중에 사용자 프로그램은 고정 헤드 드라이브(물리적으로는 디스크이지만 자기 드럼처럼 동작)로 스왑됩니다.실행하지 않을 경우 사용자 프로그램은 이동 헤드 카트리지 또는 팩이 장착된 디스크 스토리지에 저장됩니다.특권 사용자는 훨씬 빠른 드럼에 프로그램을 저장할 수도 있습니다.하드 디스크(HDD)는 자기 테이프에 백업되어 있었다.
프로그램명과 파일명은, 최대 6 문자의 알파벳 문자(A-Z)와 숫자(0-9)가 혼재하고 있습니다.프로그램은 SAVE 명령을 사용하여 토큰화된 형식으로 저장됩니다.또한 CSAVE 명령을 사용하여 세미 컴파일 형식으로 저장할 수도 있습니다.이 명령어를 사용하면 보다 빠르게 시작할 수 있습니다.시스템은 일반적으로 이용 가능한 텔레프린터의 사용과 밀접하게 관련되어 있기 때문에 파일의 행 엔딩은 캐리지 리턴 문자(ASCII CR, 0D 16진수)와 이어서 라인 피드 문자(ASCII LF, 0A 16진수)로 구성됩니다.
구문
베이직의 언어는 상당히 표준 도입 통합된 편집 및 런타임 환경을 제공한다.그들인 다음tokenized 형태로 저장되어 입력하고 보고서 정확한 구문에 분석한다.각각의 베이직 진술은 독특한 번호가 매겨진 라인, 예에 있어야 합니다.
10 인쇄하다 "안녕 월드"
라인 숫자, 및 명세서 자동으로 숫자 순서 상행에 놓여 있다.TSB 전화로 MS베이직은 지원되지 않는 결장에 복수의 진술 체이닝 하나의 문구를 포함 수 있다.다중 변수 연구 과제, e.g.,이 허용된다.20 LET A=B=C=42
. 베이직의 대부분의 버전에서, 그 단어의 사용"LET"은 선택 사항이었다.
가장 이른 형태(2000A)에서, 언어는 다음과 같은 특성을 지지했다.[1]나중에 버전 더 많은 기능이라고 덧붙였다.[2]
- 무조건 프로그램을 통해 flow-control
GOTO
는을 통해 진술, 서브 루틴으로.GOSUB
그리고.RETURN
진술들 - flow-control을 통해 조건부
IF/THEN
진술 - 는을 통해 flow-control 계산하였다.
GOTO/OF
그리고.GOSUB/OF
진술들 - Variable-based 블록 루프
FOR
그리고.NEXT
진술들 - In-code 데이터 저장을 통해
DATA
,READ
,그리고.RESTORE
진술들 - 사용자 또는 디스크 파일과의 입출력
INPUT
,READ #
,PRINT
,PRINT #
,그리고.IF END #
진술들 - 32비트 부동소수점 숫자로 저장된 "A" 또는 "An" 형식의 숫자 변수(A는 단일 문자, n은 단일 옵션 숫자)
- "A$" 형식의 문자열 변수(여기서 A는 단일 문자임)로 0 ~72 문자를 저장합니다.
- "A[x]" 또는 "A[x,y]" 형식의 1차원 또는 2차원 행렬(배열) 변수
- 문을 통한 매트릭스 연산(
MAT READ, MAT INPUT, MAT PRINT, MAT=
및 조작(+, -, *, ZER, CON, IDN, INV, TRN
) - 부울 연산자(
AND, OR, NOT
및 관계 연산자(<, <=, =, #, <>, >=, and >
) - 삼각함수를 포함한 내장 수학 함수(
SIN, COS, TAN, ATN
), 로그 (LOG, EXP
제곱근(SQR
, 난수 발생기(RND
기타 ( )ABS, INT, SGN, MIN, MAX)
및 사용자 정의 함수 - Teletype Model 33 전기기계식 텔레프린터 리모트 터미널을 사용한 천공 테이프 조작
문자열 처리
TSB의 문자열은 단일 다중 문자 개체가 아닌 문자 배열로 취급됩니다.디폴트로는 메모리 내에서1개의 문자가 할당되어 있어 긴 길이의 문자열이 필요한 경우 사용하기 전에 이들 문자를 지정해야 합니다.예를 들어.DIM A$[10]
는 최대 10글자를 포함할 수 있는 문자열을 설정합니다.TSB 의 문자열의 최대 길이는 72 [3]문자입니다.
문자열 내의 하위 문자열에는 "슬라이싱" 표기를 사용하여 액세스합니다.A$(L,R)
또는A$[L,R]
여기서 하위 문자열은 인덱스 L에서 지정된 왼쪽 끝 문자로 시작하여 인덱스 R에서 지정된 오른쪽 끝 문자로 이어집니다.또는A$[L]
하위 문자열이 색인 L로 지정된 맨 왼쪽 문자로 시작하여 문자열의 끝까지 이어지는 형식입니다.TSB는 () 또는 []를 번갈아 사용할 수 있습니다.배열 및 하위 문자열 색인은 1로 시작합니다.
이는 다음과 같은 기능을 사용하는 DEC 패턴을 따르는 BASIC과 뚜렷한 대조를 보입니다.LEFT$()
,MID$()
,그리고.RIGHT$()
ANSI BASIC은 Hewlett-Packard에 의해 도입된 것과 유사한 서브스트링 구문을 계속 사용합니다.HP의 표기법은 LET 또는 INPUT 문의 수신처측에서도 사용할 수 있습니다.예를 들어, 또는 LEFT/MID/RIGHT의 초기 실장에서는 할 수 없는 기존 문자열 값의 일부를 변경할 수 있습니다.
이 스타일의 문자열 액세스의 주된 장점은 문자열 길이가 변경될 때 필요한 복잡한 메모리 관리가 필요하지 않다는 것입니다.MS BASIC에는 시스템 메모리가 부족할 때 문자열 힙의 데드스페이스를 제거함으로써 메모리 압축을 처리하는 긴 라이브러리가 있었습니다.또한 속도가 느리기로 악명 높았고 성능을 향상시키거나 [4]버그를 수정하기 위해 수명 동안 여러 번 수정되었습니다.TSB 스타일의 단점은 내부의 문자열이 비어 있어도 문자열이 항상 DIM 영역을 모두 차지한다는 것입니다.또한 연결과 같은 간단한 작업은 처음에 큰 크기로 설정되지 않는 한 문자열에 오버플로우가 발생할 수 있습니다.
이후 버전의 Dartmouth BASIC은 BASIC-PLUS 및 MS BASIC에서 발견된 동일한 패턴을 기반으로 문자열 변수를 포함했습니다.단, 이 버전에서는 문자열 조작에 LEFT/MID/RIGHT 함수는 사용하지 않고 대신 REFT/MID/RIGHT 함수를 사용했습니다.CHANGE
명령어를 사용하여 문자열을 동등한 ASCII 값으로 변환하거나 변환합니다.HP에는 동일한 기능이 포함되어 있으며 이름만 변경되어 있습니다.CONVERT
또한 단일 따옴표를 사용하여 숫자 상수를 ASCII 문자로 변환할 수 있습니다.따옴표를 사용하여 일부 문자열을 작성할 수 있습니다.[5][a]A$='23 '64 '49 "DEF"
스트링 'ABCDEF'를 생성했습니다.CHR$()
기능합니다.[6]
MAT 명령어
Dartmouth BASIC의 최신 버전에는 다음과 같은 제품군이 포함되어 있습니다.MAT
하나의 스테이트먼트로 전체 어레이에 대한 작업을 가능하게 하는 명령어입니다.이것들은 TSB의 최신 버전에서도 사용할 수 있었습니다.가장 간단한 형태로는MAT
의 대체 형식처럼 사용됩니다.LET
배열 내의 모든 요소에 식을 적용합니다.예:
100 DIM A(20),B(20) ... 200 매트. A=A+B
다음과 같은 방법으로 B의 모든 값을 A의 모든 엔트리에 추가합니다.
100 DIM A(20),B(20) ... 200 위해서 I=1 로. 20 210 A[I]=A[I]+B[I] 220 다음 분. I
이러한 명령어는 코드를 더 짧고 명확하게 만들 뿐만 아니라 FOR/NEXT를 [7]쉽게 능가하는 고도로 최적화된다는 이점도 있습니다.추가 함수 및 문장이 수정됨PRINT
그리고.INPUT
, 어레이 반전 및 빌드 ID 매트릭스 등을 하나의 [8]스테이트먼트로 정리합니다.
기타 차이점
TSB에는 다른 방언과의 작은 차이도 다수 포함되어 있습니다.가장 중요한 것은 다음과 같습니다.
#
는 생략 가능한 비교 형식으로, 다음과 같습니다.<>
[9]- computed-goto를 사용하여
ON...GOTO/GOSUB
구문은 지원되지 않습니다.대신,GOTO expression OF 1,2,3...
는, 순서 위치에 근거해 리스트로부터 회선 번호를 선택하는 것으로, 같은 기능을 실행합니다.예를 들어.GOTO 1 OF 10,20,30
항상 10행으로 갑니다만,GOTO A OF 100,200,300
A의 값이 1, 2, 또는 [10]3일 경우 다른 행으로 분기합니다. - 부울 연산자 및 관계 연산자는 임의의 수학식으로 사용할 수 있으며 false의 경우 0, true의 경우 1을 반환합니다.이것은 당시의 BASIC 언어에서는 드물었지만 C와 같은 언어에서는 널리 사용되고 있습니다.예를 들어.
IF C+D THEN 1600
C 또는 D 중 하나가 0보다 크면 1600행으로 분기합니다.이거는 표현식이C+D
'참'으로 평가합니다.IF
C와 D가 모두 제로일 경우IF
는 그것을 「false」라고 평가해, 브랜치는 취득되지 않습니다. - TSB에는 다음이 포함됩니다.
ENTER
, 규격의 변형INPUT
시간 제한에 도달한 후에도 계속됩니다.ENTER
에는 시간 제한(초 단위), 실제 경과된 시간을 포함하는 반환 변수(또는 상태 코드) 및 마지막으로 사용자 입력의 3가지 입력이 있습니다.예를 들어.ENTER 15,T,A$[1,1]
는 사용자가1글자를 입력할 때까지 15초 동안 기다립니다.T에는 실제 소요된 시간(타이머가 만료된 경우 -256), [11]단말기의 문제를 나타내는 -257 또는 -258이 포함됩니다. - 문자열 상수(리터럴)를 인쇄할 때는 줄 내에 세미콜론이 필요하지 않습니다.예를 들어.
PRINT "THE NUMBER IS"A", TRY A LARGER VALUE."
는 문자열 상수와 변수 A [12]사이에 세미콜론을 필요로 하지 않습니다.MS를 포함한 다른 BASIC도 이 구문을 지원했습니다.아타리나 Integer 같은 다른 사람들은 그렇지 않았다. - 콤마 입력
PRINT
use 탭은 15자마다 중지되며 행 끝에 12는 총 [13]72가 됩니다. - 그
LIN
수직 대응으로서 기능하다TAB
.LIN(3)
는 세 개의 캐리지 리턴을 삽입합니다.따라서 후행 세미콜론 또는 콤마가 활성화되어 있는 경우 기존 행에 삽입할 수 있습니다.특수 대소문자는 삽입할 수 없습니다.LIN(-1)
항상 다음 [14]행으로 넘어갑니다.Integer BASIC에는 다음과 같은 기능이 있습니다.VTAB
.
「 」를 참조해 주세요.
- Rocky Mountain BASIC은 휴렛패커드에서 만들어진 베이직의 또 다른 사투리입니다.
메모들
레퍼런스
인용문
- ^ HP 2000A - 유저즈 가이드, 1969년 8월 부품 번호 02000-90002, [1]2016-05-09 취득
- ^ HP 2000/Access BASIC - 참조 매뉴얼 부품 번호 22687-90001, [2]2016-05-09 취득
- ^ 참고 문헌 1976, 페이지 4-3
- ^ "Create your own Version of Microsoft BASIC".
- ^ 참고 문헌 1976, 페이지 4-6
- ^ 참고 문헌 1976, 4-2페이지
- ^ 참조: 1976, 페이지 11-50
- ^ 참조: 1976, 페이지 11-49, 11-55.
- ^ 참고 문헌 1976, 2-5페이지
- ^ 참고 문헌 1976, F-4 페이지
- ^ 참조: 1976, 페이지 2-15
- ^ 참고 자료 1976, 페이지 2-10.
- ^ 참조: 1976, 페이지 2-9
- ^ 참조: 1976, 페이지 2-11
참고 문헌
- HP 2000/Access BASIC Reference Manual (PDF). Hewlett Packard. May 1976., 부품 번호 22687-90001
- HP 2000/Access Learning Timeshare BASIC (PDF). Hewlett Packard. May 1976., 부품 번호 22687-90009
외부 링크
- www.bitsavers.org - HP 문서 아카이브 완료 (PDF 형식)
- HP 2000 호환 베이직 인터프리터
- HP 컴퓨터 박물관
- BTI 컴퓨터 시스템 이력