작은 BASIC

Tiny BAS
작은 BAS
설계자데니스 앨리슨
처음 등장한1975
구현 언어인터프리터티브 언어(IL)
면허증.퍼블릭 도메인
사투리
덴버 Tiny BASIC, 확장 6800 Tiny BASIC, MINOL, 국가산업기본언어, Palo Alto Tiny BASIC, 6800 Tiny BASIC, TBI68K, Tiny BASIC 확장
영향을 받다
다트머스 베이직, 8008 베이직
영향받은
아스트로 베이직, 아타리 베이직, 레벨 I BASIC

Tiny BASIC은 4KB 이하메모리에 들어갈 수 있는 BASIC 프로그래밍 언어의 방언 패밀리입니다.Tiny BASIC은 게이츠가 150달러판매된 Altair BASIC을 불법복제하는 것에 대해 불평한 공개 서한에 대응하여 디자인되었다.Tiny BASIC은 같은 초기 마이크로컴퓨터에서 동작하는 BASIC의 완전 무료 버전입니다.

Tiny BASIC은 구현이 아닌 사양으로 발표되었으며, People's Computer Company(PCC) 뉴스레터 1975년 9월호에 게재되었습니다.이 기사에서는 프로그래머가 머신에 실장하고 어셈블러 언어 실장 결과를 반환하여 일련의 계획된 뉴스레터에 포함시키도록 요청했습니다.Palo Alto Tiny BASIC의 저자인 Li-Chen Wang 박사는 이 개념을 설명하기 위해 "카피레프트"라는 용어를 만들었습니다.커뮤니티의 반응이 너무 커서 이 뉴스레터는 마이크로컴퓨터 소프트웨어에 초점을 맞춘 최초의 정기 간행물인 돕스 저널(Dobb's Journal)로 재발행되었습니다.Dobb 박사는 34년 동안 인쇄 형태로 유지되었고 2014년까지 온라인 상태로 유지되었으며, 그 후 웹사이트는 정적 아카이브가 되었습니다.

RAM이 비싸고 일반적인 메모리 크기가 4~8KB에 불과했던 1970년대 중반 마이크로컴퓨터 초창기에는 작은 크기와 무료 소스 코드가 이러한 구현을 매우 유용하게 만들었습니다.Microsoft의 Altair BASIC의 최소 버전은 4KB 머신에서도 실행되지만 BASIC 프로그램에서는 790바이트만 사용할 수 있습니다.Tiny BASIC은 여유 공간이 더 많다는 것이 큰 장점이었다.이러한 엄격한 크기 제한을 충족하기 위해 Tiny BASIC 방언에는 일반적으로 다른 방언에서 볼 수 있는 다양한 기능이 결여되어 있습니다.예를 들어 대부분의 버전에는 문자열 변수가 없고 부동 소수점 산술이 없으며 단일 문자 변수 이름만 사용할 수 있습니다.

Arduino와 같은 마이크로 컨트롤러 프로그래밍에는 오늘날에도 작은 BASIC 구현이 사용되고 있습니다.

역사

알테어 BASIC

확장판 8k 버전의 Micro-Soft BASIC이 들어 있는 종이 테이프.

MITS Altair 8800과 같은 초기 마이크로컴퓨터에는 일반적으로 전면 패널 스위치와 LED 램프 외에 I/O(입출력)가 내장되어 있지 않았습니다.유용한 작업에는 일반적으로 I/O 확장 카드를 추가하고 어떤 형태의 터미널을 사용해야 했습니다.그 당시 비디오 기반 단말기는 컴퓨터 자체보다 훨씬 더 비쌌기 때문에 많은 사용자들이 텔레타입 모델 33과 같은 기계 장치로 눈을 돌렸다.당시 대부분의 텔레프린터와 마찬가지로 Model 33은 사용자가 메시지를 미리 녹음한 다음 메시지를 실시간으로 입력하는 것보다 더 빠르게 "고속"으로 재생할 수 있도록 하는 펀치 테이프 시스템을 포함하고 있습니다.초기의 마이크로컴퓨터에 있어서, 이것은 편리한 컴퓨터 스토리지 포맷을 제공했고, 사용자는 프로그램을 종이 테이프에 쓰고 다른 [1]사용자에게 배포할 수 있었다.

Homebrew Computer Club은 1975년 3월에 처음 모임을 가졌고 회원들은 곧 회의를 이용해 펀치 테이프의 소프트웨어를 교환했다.6월 회의에서 Altair BASIC의 프리 릴리즈 버전이 담긴 테이프가 사라졌다.이 테이프는 스티브 돔피어에게 건네졌고, 그는 그것을 댄 소콜에게 넘겨주었고, 그는 고속 테이프 펀치에 접근할 수 있었다.다음 회의에서는 종이 테이프의 Altair BASIC 50부가 골판지 [2]상자에 들어 있었습니다.MITS 창업자인 에드 로버츠는 이를 알았을 때 "미쓰 베이직의 도난당한 사본을 사용하는 사람은 누구나 자신을 [3]도둑이라고 밝혀야 한다"고 말했다.빌 게이츠는 취미생활가들에게 공개 서한을 쓰면서 "대부분의 취미생활자들이 알고 있듯이,[4] 당신은 당신의 소프트웨어를 훔치고 있다"고 불평하면서 이것을 더 격식을 차렸다.

작은 BASIC

그 항의는 받아들여지지 않았다.많은 응답 중에서, 또 다른 홈브루의 멤버이자 People's Computer Company(PCC)의 창립자인 Bob Albrecht는, 누구라도 완전하게 자유롭게 사용할 수 있는 BASIC을 직접 제작하는 것이 가장 좋은 응답이라고 생각했습니다.그는 스탠포드 대학의 컴퓨터 과학 교수인 Dennis Allison에게 2-3킬로바이트의 [a]메모리에 맞는 BASIC 버전의 사양을 써달라고 요청했습니다. 설계는 인터프리터의 인터프리터인 Intermediate Language(IL; 중간 언어)에 기초하고 있었습니다.즉, 전체 코드의 극히 일부만 포팅할 필요가 있었습니다.

앨리슨의 초기 디자인은 인텔 8080 버전의 IL 인터프리터와 함께 PCC 뉴스레터 1975년 9월호에 게재되었습니다.이 기사에서는 프로그래머들에게 컴퓨터에 설계를 구현하고 그 결과 만들어진 어셈블리 언어 버전을 PCC로 돌려보내라고 요구했습니다.이들은 사용자가 제출한 버전, 버그 수정, 새로운 BASIC으로 작성된 프로그램, 제안 및 개선 사항과 함께 3개의 특별 뉴스레터를 발행할 계획이라고 밝혔다.이 개념은 ACM Programming [5]Languages Special Interest Group on Programming Languages 1976년 1월호에 재게재되면서 더욱 주목을 받았다.제출이 쇄도했다.주목할 만한 초기 버전은 딕 위플과 존 아놀드의 Tiny BASIC Extended로 3K RAM에서 실행되었으며 FOR...NXT가 루프하여 단일 숫자 배열을 허용합니다.IL의 사용을 피하고 옥탈을 사용하여 [6]기계어로 직접 작성했습니다.

"Dobb 박사의 컴퓨터 교정 및 교정 저널, 오버바이트 없이 달리는 빛"이라는 제목으로 계획된 세 개의 뉴스레터 중 첫 번째가 1976년 [6]1월에 발행되었습니다.이 책은 "용"이라는 필명으로 알브레히트가 보낸 메모로 시작되며, 세 판으로는 충분치 않을 것이라는 것을 암시하며 독자들에게 계속하고 싶은지 물었다.또한 PCC의 Tiny BASIC에 대한 원본 기사를 전재하고 확장 TB의 전체 목록을 포함하며,[7] 앨리슨의 힌트 앤 트릭을 포함한 다수의 소규모 BASIC 프로그램을 포함했습니다.첫 번째 호에 대한 반응은 매우 인상적이어서 두 번째 호 서론에서는 이미 새로운 뉴스레터를 Dobb's Journal이라는 간단한 이름으로 계속 발행하기로 결정했다고 밝혔습니다.다음 몇 가지 호에서 언어의 추가 버전이 발표되었고, 인터페이스 시대와 같은 다른 잡지에 비슷한 기사가 실리기 시작했습니다.

퍼지다

Monospaced font reads "Tiny basic for Intel 8080, version 2.0 by Li-Chen Wang, modified and translated to Intel mnemonics by Roger Rausklob, 10 October 1976. @ Copyleft, All Wrongs Reserved."
1976년[8] "Copyleft; All Wrongs Reserved"의 사용

1976년 중반까지 Tiny BASIC 인터프리터는 인텔 8080, Motorola 6800 및 MOS 테크놀로지 6502 프로세서에 사용할 수 있게 되었습니다.이는 인터넷을 통해 파일 전송이 쉬워지기 전에 자유 소프트웨어 커뮤니티가 공동 개발한 선구자였으며, 자유 소프트웨어 [9]운동 이전의 자유 소프트웨어 프로젝트의 한 예였다.컴퓨터 애호가들은 종이 테이프나 카세트를 교환하거나 심지어 인쇄된 [10]목록에 있는 파일을 다시 타이핑하기도 했다.

Dobb's의 편집자인 Jim Warren은 1976년 7월 ACM Programming Language 뉴스레터에서 이 성공적인 프로젝트의 동기와 방법에 대해 썼다.그는 이렇게 시작했다. "빌 게이츠가 컴퓨터 애호가들에게 보낸 '바가지 벗기기' 소프트웨어에 관한 분노에 찬 편지에서 제기한 문제에 대한 실행 가능한 대안이 있다.소프트웨어가 무료이거나 너무 저렴해서 복제하는 것보다 비용을 지불하는 것이 더 쉬우면 '도둑질'이 되지 않을 것입니다.빌 게이츠의 편지는 소프트웨어를 제품으로 만들기 위해 쓰여졌다.다른 방법은 경험이 풍부한 전문가에게 전체적인 설계를 시킨 후 구현 전략을 개략적으로 설명하는 것이었습니다.지식이 풍부한 아마추어는 다양한 컴퓨터 시스템을 위한 설계를 구현합니다.워렌은 이 전략이 지속되고 [10]확대될 것이라고 예측했다.

1976년 5월호 돕스 박사는 8080년판 리첸 왕의 팔로 알토 타이니 베이직을 실었다.이 목록은 통상적인 제목, 저자 이름, 날짜로 시작되었지만 "@COPILEFT ALL WORTS RESERVED"[11]도 포함되어 있습니다.Homebrew Computer Club 멤버인 Roger Rauskolb는 Li-Chen Wang의 프로그램을 수정하고 개선했으며, [8]이는 Interface Age 매거진 1976년 12월호에 게재되었습니다.Roger는 자신의 이름을 추가하고 COPYLEFT 공지를 보존했다.

묘사

기본 개념

Tiny BASIC은 가능한 한 적은 메모리를 사용하도록 설계되었으며, 이는 인터프리터 시스템의 세부 사항뿐만 아니라 기능의 부족에도 반영되어 있습니다.초기 마이크로컴퓨터에는 BASIC 컴파일러용 RAM과 세컨더리 스토리지가 부족했는데, 이는 시분할 시스템의 전형적인 형태였다.

당시의 대부분의 BASIC과 마찬가지로, Tiny Basic은 사용자가 명령행에 문장을 입력하는 대화식이었습니다.당시의 마이크로컴퓨터는 텔레타이프 기계나 "덤" 단말기와 함께 자주 사용되었기 때문에 기존 텍스트를 직접 편집할 수 없었고 편집자는 사용자가 기존 텍스트를 편집하기 위해 백업한 위치를 표시하기 위해 테이크아웃 문자(종종 백슬래시)를 사용했습니다.

사용자가 명령행에 명령문을 입력한 경우 시스템에서 해당 명령문을 검사하여 숫자로 시작하는지 여부를 확인합니다.그렇지 않으면 회선이 즉시 해석되어 동작하고, 다음에 의해 출력이 생성될 가능성이 있습니다.PRINT이것을 「다이렉트 모드」라고 부릅니다.

행에 선두의 번호를 입력했을 경우, 그 번호는 「50」과 같은 10진수 형식에서 변환되어 8비트 값으로 변환됩니다.이 경우, $32 소수점이 숫자는 배열과 같은 스토리지 영역에 대한 인덱스로 사용되었으며, 나머지 행은 입력된 형식 그대로 저장되었습니다.사용자가 입력했을 때LIST시스템은 어레이를 루프하고 행 번호를 10진 형식으로 변환한 후 행의 나머지 텍스트를 출력합니다.

프로그램이 메모리에 있고 사용자가 메모리에 입력한 경우RUN명령어를 실행하면 시스템이 "syslog 모드"가 됩니다.이 모드에서는 포인터가 프로그램의 첫 번째 줄을 가리키도록 설정됩니다(예: 10달러hex 0A).그런 다음 스토어에서 해당 행의 원본 텍스트가 검색되고 사용자가 직접 모드에서 입력한 것처럼 실행됩니다.그런 다음 포인터가 다음 행으로 이동하고 프로세스가 계속됩니다.

형식 문법

이 문법은 디자인 [12]노트에 명시된 것과 거의 동일한 Backus-Naur 형식으로 아래에 나열되어 있습니다.리스트에는 아스타리스크(")가 표시되어 있습니다.*" )는 왼쪽에 있는 오브젝트의 0 이상을 나타냅니다.단, 정의의 첫 번째 아스타리스크는 제외합니다.term"는 곱셈 연산자, 괄호는 그룹 객체 및 엡실론("")입니다.ε" )는 빈 세트를 나타냅니다.컴퓨터 언어 문법 표기법에서 흔히 볼 수 있듯이 세로 막대("") " )는 다른 행에 기재되어 있는 것과 같이 대체안을 구별합니다.기호 "CR"는 캐리지 리턴을 나타냅니다(보통 키보드의 "Enter" 키에 의해 생성됩니다).콘솔에서 BREAK가 발생하면 프로그램 실행이 중단됩니다.

 line ::= number statement CR statement ::= PRINT expr-list IF expression relop expression THEN  GOTO expression INPUT var-list LET var = expression GOSUB expr-list :: (문자열 표현식) , (문자열 표현식) ): var: var: var: ( , )요인((* /) 요인)* 요인::= 변수 번호(분열) 변수::= A B C...Y Z 번호 ::= digit* digit ::= 0 1 2 3 ...8 9 relop : : : = < ( > = ε) ) > ( < = ε) ) = string ::= " ( ! # $ ... - . / digit : ... ) @ A B C... X Y Z)*"

설계 노트에 문자열이 정의되어 있지 않습니다.

이 구문은 단순하지만 혁신이 하나 더 추가되었습니다.GOTO그리고.GOSUB단순한 회선번호가 아닌 식을 사용할 수 있습니다.이 경우, GOTO할당되어[13] 있습니다.GOTO/GOSUB ... OF ...그 후 HP Time-Shared BASIC에서 지원되는 구조이며,ON ... GOTO. 구문은IF-THEN statement(브런치하는 회선 번호와는 달리)는, 이번과 같이 Dartmouth BASIC에서는 아직 서포트되고 있지 않지만[14], Digital에 의해서 도입되어 있습니다.

가상 머신에서의 구현

설계 노트에서는 Tiny BASIC 인터프리터가 가상 시스템 인터프리터에서 실행되는 가상 시스템을 지정했습니다.애플리케이션 가상 머신을 사용하기 위한 설계자의 아이디어는 Val Schorre(META II, 1964년)와 Glennie(Syntax Machine)로 거슬러 올라갑니다.가상 머신의 선택은 메모리 용량과 구현 노력을 절약하지만 BASIC 프로그램이 실행되는 속도는 다소 [15]느렸습니다.

가상 머신을 사용한 방언에는 Tiny BASIC Extended, Tom Pittman의 Tiny[16] BASIC 및 NIBL이 있습니다.덴버 타이니 베이직(DTB)과 팔로 알토 타이니 베이직과 같은 다른 방언들은 직역이었다.DTB의 Fred Greeb과 같은 일부 프로그래머는 IL(Interpretive Language) 프로그램을 어셈블리 언어로 구현하기 위한 알고리즘의 의사 코드로 취급했습니다.Denver Tiny BASIC은 가상 머신을 사용하지 않았지만 IL 프로그램을 엄밀하게 따랐습니다.

다음은 120행 IL 프로그램의 대표적인 발췌입니다.

S1:  TST     S3,'GO'       GOTO 또는 GOSUB?      TST     S2,'종료'       ;네...종료, 또는...후보선수      불러    EXPR          ;라벨      다 했어요.                  CR이 다음 번이 아닌 경우 오류      XFER                  셋업 및 점프 S3:  TST     S8,'인쇄'    인쇄. 

프로그램의 일반적인 패턴은 키워드 또는 키워드의 일부를 테스트한 후 해당 정보에 따라 행동하는 것입니다.각 테스트는 회선 버퍼 내의 다음 항목에 대한 어설션입니다.어설션이 실패하면 컨트롤은 후속 라벨로 점프합니다(통상은 새로운 키워드 또는 토큰을 찾습니다).여기서 시스템은 버퍼 커서를 임의의 공간으로 이동하여 GO를 테스트하고, 찾지 못하면 S3행으로 점프합니다.검출되면 다음 IL 명령으로 실행이 계속됩니다.이 경우 시스템은 다음으로 TO를 테스트하고 실패하면 S2행으로 건너뜁니다(SUB용 테스트, 대신 이것이 GOSUB 명령인지 확인합니다).통과하면 제어가 계속됩니다. 경우 라벨 EXPR에서 시작하는 IL 서브루틴을 호출하여 식을 해석합니다.Tiny BASIC에서는GOTO X*10+100(계산된 GOTO)는 다음과 같이 합법적입니다.GOTO 100는 대규모 BASIC 구현의 ON-GOTO를 대체하는 것입니다.서브루틴 EXPR은 식 결과를 산술 스택(이 경우 회선 번호)에 푸시합니다.DONE은 식 뒤에 다른 텍스트가 없는지 확인하고 식 뒤에 오류가 있으면 오류를 표시합니다.XFER는 스택에서 번호를 팝하여 대응하는 회선번호(존재하는 경우 GOES TO)를 전송합니다.

다음 표에는 첫 번째 Tiny BASIC 인터프리터가 [17]작성된 가상 시스템의 32개 명령의 일부 목록이 나와 있습니다.

TST lbl, 문자열
문자열이 BASIC 행과 일치하면 커서를 문자열 위로 이동하고 다음 IL 명령을 실행합니다.테스트에 실패하면 라벨 lbl에서 IL 명령을 실행합니다.
lbl
lbl부터 IL 서브루틴을 실행하여 컨트롤 스택의 CALL 뒤에 IL 주소를 저장합니다.
다 했어요.
선행 공백을 삭제한 후 커서가 캐리지 리턴에 도달할 수 있는 위치에 있지 않으면 구문 오류를 보고합니다.
XFER
AE 스택 상단의 값이 범위 내에 있는지 테스트합니다.그렇지 않으면 오류를 보고합니다.이 경우 해당 라인에 커서를 배치해 보십시오.존재하는 경우는, 거기서 해석을 개시해, 존재하지 않는 경우는 에러를 보고합니다.
점프
지정된 라벨에서 IL 실행을 계속합니다.
RTN
제어 스택의 맨 위에 지정된 IL 위치로 돌아갑니다.
PRS
BASIC 텍스트에서 끝 따옴표를 포함하지 않고 끝까지 문자를 인쇄합니다.
PRN
표현식 스택의 맨 위를 팝업하여 얻은 인쇄 번호
SPC
인쇄 헤드를 다음 영역으로 이동하기 위한 공백 삽입
N라인
프린터에[18] CRLF를 출력합니다.

IL에 대해 논의하는 Tom Pittman은 다음과 같이 말합니다.TINY BASIC 인터프리터는 Dennis Alison에 의해 재귀적인 하강 파서로 설계되었습니다.이 디자인의 우아한 단순함 중 일부는 언어에 구문설탕을 첨가하면서 사라졌지만, 기본적인 형태는 남아있다.IL은 절차의 일반적인 재귀적 특성과 TINY BASIC 토큰의 단순성 때문에 TINY BASIC의 재귀적 하강 구문 분석에 특히 적합합니다.IL 언어는 TINY의 해석에 효과적으로 최적화되어 있습니다.경험에 따르면 언어에 새로운 기능을 추가하는 것은 모두 기능의 특성과 비례하지 않습니다.일반적으로 새로운 기능을 지원하려면 기계어 서브루틴을 추가해야 합니다.종종 어려움이 [19]장점보다 더 중요합니다."

설계로부터의 편차

Pittman은 Homebrew Computer Club의 Tiny BASIC을 정의하면서 "Tiny BASIC은 Dartmouth BASIC의 적절한 서브셋으로, LET, PRINT, INPUT, IF, GOTO, GOSUB, RETURN, END, CLEAR, LIST, RUN 연산자는 16비트 정수로만 구성되어 있습니다.26개의 단일 문자 변수 이름 A, B, ...Z만 있고 함수는 없습니다.문자열이나 배열이 없습니다...Tiny BASIC은 [20]256보다 작은 회선 번호를 지정합니다."그는 이어 "이 언어는 RND, USR, PEEK 및 POKE 기능을 포함하도록 강화되어 사용자가 BASIC 프로그램에서 6800의 모든 시스템 컴포넌트에 액세스할 수 있게 되었습니다."라고 자신의 구현에 대해 설명했습니다.

많은 구현자가 HP Time-Shared BASIC 또는 DEC BASIC-PLUS를 사용한 경험을 설계에 도입하여 정식 Tiny BASIC 언어 사양을 완화했습니다.1977년까지 발표된 7가지 주요 구현 중:

  • 모두 어떤 종류의 난수 함수(일반적으로 RND)를 추가했습니다.사양에는 포함되어 있지 않지만, Tiny BASIC의 Design Note 이전 뉴스레터 기사에서는 이 기능만을 요청했습니다.
  • 활성화된 모든 LET는 옵션이며 할당문의 대부분의 표현식에는 관계 연산자가 포함됩니다.
  • 6800을 제외한 모든 것TB가 지원하는 문 구분 기호(일반적으로 :)는 $ 및 PATB가 사용되었습니다.
  • IF 에서는 MINOL을 제외한 모든 문에서 표현식에 관계 연산자를 포함할 필요가 없어졌습니다(예:IF X THEN LET Y=X유효했습니다).구현은 완전히 삭제되거나 옵션화되거나 암시적인 GOTO에 대해서만 지원되었습니다.
  • 프린트 존을 서포트하기 위해서, 많은 변경 PRINT,,다음 구역으로 가서;커서를 이동하지 않도록 합니다.
  • 6800을 제외한 모든 것TB 및 DTB가 새로 추가되었습니다.
  • 6800을 제외한 모든 것TB 및 MINOL에 메모리 크기를 반환하는 기능이 추가되었습니다.TBX는 SZE, DTB 및 PATB는 Size, L1B는 MEM, NIBL은 TOP입니다.
  • PATB 및 L1B의 단일 비확장 어레이 또는 TBX 및 DTB의 DIMensionable 어레이 등 4개의 구현으로 어레이가 추가되었습니다.
  • 4개의 구현에서 REMark 스테이트먼트가 추가되었습니다.
  • FOR 루프가 추가된 4가지 구현: PATB, NIBL 및 L1B는 FOR-TO-STEP/NEXT를 제공하지만 TBX는 지원하지 않습니다.STEP키워드를 사용해서NXT루프를 종료합니다.
  • BASIC의 문제에 대해 2호에서 앨리슨이 한탄했음에도 불구하고 DO/UNTIL과 함께 구조화된 프로그래밍에 동의한 사람은 NIBL뿐이었습니다.

토큰화 대신 RAM, TBX,[21] DTB [22]및 MINOL[23] 잘린 키워드(PRINTPRINT, INPUT은 IN, RET은 RET)를 저장합니다.전체 기존 키워드는 허용되지 않았습니다.반면 PATB에서는 기존의 키워드를 받아들일 수 있지만 임의의 키워드를 후행기호를 붙여 최소 하나의 문자열로 생략할 수도 있습니다.를 들어 PRINT는 P.로 입력할 수 있지만 PRINT와 다른 변형도 작동합니다.이 시스템은 PATB를 사용한 TRS-80Level I BASIC에서 유지되었으며, 이후 Atari BASIC과 다양한 샤프 포켓 컴퓨터의 [24]BASIC에서도 발견되었다.

사투리

Tiny BASIC의 가장 두드러진 방언은 오리지널 디자인 노트, Tiny BASIC Extended, Palo Alto Tiny BASIC, 6800 Tiny BASIC이었다.하지만 많은 다른 버전의 Tiny Basic이 존재했다.

주요 방언 목록

Tiny BASIC은 People's Computer Company의 뉴스레터에 처음 게재되었으며, 이 뉴스레터는 오래 지속되는 컴퓨터 잡지인 Dobb's Journal이 되었습니다.그 잡지는 약 10개의 버전이 출판되었다.

Tiny BASIC의 저명한 방언 (Dobb's Journal)
발행일 쟁점. 사투리 작가. 프로세서 크기
1975년 12월 1개[25] 설계 노트 데니스 앨리슨
1976년 2월 2개[21] TBX(Tiny Basic Extended) 딕 휘플 & 존 아놀드 8080 29만
1976년 3월 3개[22] Denver Tiny BASIC (DTB) 프레드 그리브 8080 2.75,000
1976년 3월 3개[26] 6800 소형 베이직 (6800 TB) 톰 피트먼 6800 2K[27]
1976년 4월 4개[23] 미노 에릭 T. 뮬러 8080 1.75,000
1976년 5월 5개[28] Palo Alto Tiny BASIC (PATB) 왕리첸 8080 1.77,000
1976년 11월 10개[29] National Industrial Basic Language(NIBL) 마크 알렉산더 & 스티브 라이닝어 SC/MP 4K
1980년 10월 49[30] 확장 6800 Tiny BASIC 로버트 허드슨 6800
1985년 2월 [31] TBI68K 고든 브랜들리 68000
2006년 1월 351[32] Tiny BAS 반환IC 톰 피트먼 - (C)

TBX는 Texas Tiny [33]BASIC으로도 알려져 있습니다.

SCELBAL[34] 6800 Tiny BASIC 모두 잡지에 발표되었지만 소스 코드는 공개되지 않았다.

팔로알토 타이니 바스IC

팔로알토 타이니 바스
개발자리첸왕
처음 등장한1976
면허증.퍼블릭 도메인
사투리
3K 컨트롤 베이직
영향을 받다
작은 베이직 디자인 노트, 작은 베이직 확장
영향받은
Astro BASIC, 레벨 I BASIC, 샤프 PC-1211 BASIC

Tiny BASIC의 많은 버전 중 가장 인기 있는 것은 Li-Chen Wang의 Palo Alto Tiny BASIC, 줄여서 PATB입니다. PATB는 1976년 5월 Dobs 박사의 Dobs에 처음 등장했는데, Dobs는 비표준 니모닉을 가진 커스텀 어셈블러 언어로 작성되었습니다.이것에 의해,[24] 8080에서는 기존의 어셈블러로 동작하는 포토가 한층 더 증가했습니다.인터프리터의 첫 번째 버전은 1.77킬로바이트의 메모리를 사용하고, 유저의 입출력Teletype Machine(TTY; 텔레타입 머신)을 사용하는 것을 전제로 하고 있습니다.닥터 돕스(Vol.1, No.6) 6/7월호에 오리지널 기사에 대한 오류가 실렸다.이 문서에는 프로세서 테크놀로지VDM 비디오 디스플레이용 코드를 예로 사용하여 I/O 디바이스를 추가하는 방법도 기재되어 있습니다.

왕은 카피레프트라는 단어를 처음 사용한 사람 중 한 명이었다.Palo Alto Tiny BASIC의 배포 공지에 "@COPYLEFT ALL WORTS RESERVED"[35]라고 적혀 있었다.Tiny BASIC은 카피레프트 배포 용어의 형식적인 형태로 배포되지 않았지만 소스 코드가 공유되고 수정되는 상황에서 제공되었습니다.사실, Wang은 자신의 [21]통역사를 쓰기 전에 Tiny BASIC Extended에 편집 기고를 한 적이 있습니다.Interface [8]Age에서 출판된 Roger Rauskolb의 PATB 버전처럼, 그는 다른 사람들에게 자신의 소스 코드를 수정하고 각색한 내용을 공개하도록 장려했다.PCC의 퍼스널 및 홈 컴퓨팅 [36]레퍼런스 북에 세 번째 버전을 게재했습니다.

PATB의 가장 주목할 만한 변화 중 하나는 FOR의 추가입니다.다음 루프원래 TB에서는 루프를 구현하려면IF그리고.GOTOMicrosoft BASIC과 마찬가지로 루프의 상한과 하한은 루프 엔트리에 설정되어 루프 중에 변경되지 않았습니다.따라서 경계 중 하나가 변수식에 기반하고 있는 경우에는 변수를 변경해도 경계가 변경되지 않습니다.STEPmodifier는 [24]MS와 마찬가지로 옵션입니다.

또 다른 중요한 변화는 한 줄에 여러 개의 문장을 배치할 수 있다는 것입니다.설명되지 않은 이유로 PATB는 세미콜론을 사용했습니다.;이미 일반적인 결장이 아닌 문장을 분리한다.:.

기타 변경 사항으로는 변수 이름을 가진 단일 숫자 배열이 추가됨@,STOP에 더하여END, 및 의 사용방법#와는 대조적으로 비교되지 않는 경우<>를 클릭합니다.[24][b]

PATB는 오류 메시지에 숫자 대신 단어를 사용했습니다.필요한 메모리의 양을 줄이기 위해 메시지는 3개뿐이었고 그것들은 하나의 단어로 구성되었다.시스템은 다음과 같이 응답합니다.WHAT?구문 오류의 경우,HOW?존재하지 않는 회선으로의 GOTO나 수치 오버플로와 같은 런타임 에러의 경우,SORRY메모리 부족 [24]문제에 대해 설명합니다.

왕 씨는 1976년 7월 피플스 컴퓨터 컴퍼니 [37][38]뉴스레터 Tiny BASIC에 STARTREK 프로그램을 쓰기도 했습니다.

그는 나중에 언어를 Cromemco용 3K Control Basic으로 수정하여 문자 번호 형식의 변수 이름(예:A0로.Z9로직 기능(AND(),OR(),XOR()), a.CALL기계어 루틴을 실행하는 명령어, 상세PRINT- 포맷 옵션 등 (GET()그리고.PUT()대신PEEK그리고.POKE; I/O 포트 기능).[39]

Palo Alto Tiny BASIC은 Level I BASIC(1977), BASIC(1980), Astro BASIC(1982 by Jamie Fenton)[40]많은 구현에 적합하게 적용되었습니다.

미노

고등학교 2학년이 작성한 MINOL은 전체 설계 노트를 지원하지 않는 유일한 구현으로, 운영자 우선 순위가 부족하고, 3개의 재접속(<, =, #)만 있으며, 이 중 제외되었습니다.GOSUB그리고.RETURN. 서명되지 않은 8비트 정밀도(기타 모든 구현에 대해 서명된 16비트 정밀도와 달리)와 0 ~ 254의 행 번호만 지원했습니다.

문자열 이외에는 공백이 허용되지 않습니다.!랜덤 번호를 반환합니다.$표현식이 해당 주소에 문자열을 로드하기 전에OSOS로 돌아갑니다.메모리는 하이바이트와 로우바이트의 2차원 배열(예: "0,0" ~ "(255,255))인 것처럼 주소가 지정 가능했다.CALL는 머신 언어 서브루틴을 [23]실행합니다.

기타 방언

많은 사투리가 다양한 다른 출판물에 등장했습니다.

1977년 5월호에서는 MICRO-BASIC이 포함된 플로피 ROM이 실렸습니다.

PCC의 Tiny BASICs에 대한 요구에 자극받아 Robert Uiterwyk는 SWTPC 6800 시스템용 MICRO BASIC 1.3)을 작성했습니다.SWTPC는 SWTPC 뉴스레터 1976년 6월호에 게재했습니다.Uiterwyk는 합법적인 태블릿에 손으로 그 언어를 썼다.이후 언어를 4K로 확장하여 부동소수점 지원을 추가하였습니다. 이 구현은 BASIC 인터프리터들 사이에서 유일하게 BISIC 인터프리터들 사이에서 사용되었으며 범위는 최대99 10자리까지이며 "플로피 ROM" 매거진 삽입물로 무료로 발행되었습니다.8K 버전에는 문자열 변수와 삼각함수가 추가되었습니다.4K 버전과 8K 버전 모두 SWTPC에 의해 판매되었습니다.1978년 1월 Uiterwyk는 소스 코드의 권리를 [41][42]Motorola에 매각했다.

토마스 F.Waitman은 1976년에 Hewlett-Packard HP-2640 및 HP-2645 터미널(인텔 8008 및 8080 프로세서 사용)용 Tiny BASIC을 작성하여 Hewlett-Packard Journal에 게재했습니다.

LLL(Lawrence Livermore Laboratory) BASIC(1976년 12월호)은 LLL(Lawrence Livermore Laboratory) BASIC으로, Leininger가 National Semiconductor를 떠나 Tandy Corporation으로 가기 전에 Alison의 사양에 따라 초안을 작성했습니다.최종 통역사는 LLL과 계약을 맺고 아이다호 대학의 존 디킨슨, 제리 바버, 존 테터에 의해 개발되었습니다.5K로 David Mead, Hal Brand, Frank Olken이 개발한 부동소수점 패키지가 포함되어 있습니다.이 프로그램은 미국 에너지 연구 [43]개발국의 후원으로 시스템을 개발한 LLL에 의해 공개되었다.

4K 베이직

Altair BASIC, 4K BASIC은 4kB RAM 머신 내에서 실행할 수 있으며, 프로그램 [44][45]코드를 위해 약 790바이트만 사용할 수 있습니다.Tiny BASIC 이니셔티브는 Altair 4K BASIC의 150달러 요금에 대응하여 시작되었습니다.

1975년 스티브 워즈니악은 새로 결성된 홈브루 컴퓨터 클럽에 가입했는데, 이 클럽에는 동료 멤버인 리첸 왕(Palo Alto Tiny BASIC)과 톰 피트먼(6800 Tiny BASIC)이 있었다.Wozniak은 자신의 컴퓨터가 MOS Technology 6502 프로세서를 위한 최초의 BASIC을 가져야 한다고 결론지었다.이 언어에는 4kB RAM이 필요하기 때문에 [46]설계에 필요한 최소한의 메모리를 만들었습니다.Integer BASIC은 원래 1976년에 콤팩트 카세트에 출판되었습니다.

1977년, Radio Shack은 4kB ROM에 레벨 I BASIC을 탑재한 Z80 시스템인 첫 컴퓨터 TRS-80을 출시했다.탠디 직원 스티브 라이닝어는 SCMP에서 채용된 동안 NIBL(National Industrial Basic Language)의 초안을 작성했다.[29] 소스코드를 가지고 갈 수 없었기 때문에, 그는 TRS-80 모델 I의 오리지널 프로토타입에 Li-Chen Wang의 Palo Alto Tiny BASIC을 개조했습니다.그는 인터프리터를 광범위하게 수정하여 부동소수점 지원, 단순한 흑백 그래픽 및READ/DATA/RESTORE스테이트먼트를 [47]참조해 주세요.

1979년에 개발된 Sinclair 4K BASIC은 1978년 ANSI(American National Standards Institute) Minimal BASIC 표준 언어 정의로 사용되었지만, 그 자체는 정수 산술만으로 [48]불완전한 4Kb 구현이었습니다.

마이크로컨트롤러 방언

Tiny BASIC 구현은 프로세서 제어 및 Arduino와 같은 마이크로 컨트롤러에 맞게 조정되었습니다.

  • 스테판 ANess는 1977년에 Mark Williams Company의 4K 정수 구현 XYBASIC을 작성했습니다.이 언어는 프로세스 제어 애플리케이션에 [49]자주 사용되었습니다.
  • Arduino BASIC - Gordon Brandly의 68000 Tiny BASIC을 Mike Field에서 C로 이식.
  • Tiny Basic Plus - Scott [50]Lawrence가 Arduino BASIC을 개작.
  • 하프바이트 Tiny Basic - Arduino [51]BASIC에서 채택.
  • Tiny Basic on the Micro: 비트 - Palo Alto Tiny [52]BASIC에서 채택.

이후의 실장

2002년, Emmanuel Chailloux, Pascal Manouly 및 Bruno Pagano는 Tiny BASIC(부족)을 발표했습니다.GOSUB/RETURN오브젝티브 Caml 어플리케이션의 [53]로서 Objective Caml을 사용하는 어플리케이션의 개발」을 참조해 주세요.

2013년에 Alex Yang은 [54]Python에 구현한 것을 발표했습니다.

2019년에 세르게이 쿠즈넷소프는 [55]루비로 버전을 출판했다.

또한 2019년에는 오스카 톨레도 구티에레즈가 bootB를 발행했습니다.ASIC: 8086/8088 머신의 부트 섹터의 512 바이트에 들어가, 지금까지의 BASIC 실장 중 가장 작은 것이 됩니다.이를 실현하기 위해 언어에서는 관계 연산자(IF 문이 0이 아닌 값으로 동작하는 경우)를 폐기하고 코드 행을 19자 이하로 제한하며 백스페이스를 [56]눌렀을 때 표시를 업데이트하지 않습니다.또한 GOSUB와 RETURN은 없지만 RND 함수는 포함되어 있습니다(인수가 없으면0 ~ [57]255의 값을 반환합니다).이 언어에서는 배열을 사용하여 프로그램 행을 저장합니다.[58]그러기 위해서는 20,000바이트가 필요합니다.

방언 비교

다음 표에 Tiny BASIC 구현 언어 기능을 이전의 다른 주요 BASIC과 비교합니다.

BASIC 구현 비교 - Tiny BASIC
날짜.
출판된
사투리
프로그래머 프로세서 유형 입력 허락하다 인쇄하다 에 가다 만약...그렇다면 GOSUB 돌아가다 끝. 달려. 목록. 분명한 신규 대상/다음 읽기/데이터/복원 BASIC 명령어가 추가되었습니다. 커스터마이즈 표현. 재기동하다 기능들 RND 메모리 기능 회선 번호 문 구분 기호 에러 정확 산술 변수 어레이 줄들
10월,
1964
DTSS 다트머스 BASIC
(버전 [59]2)
(다트머스 학생) GE-225 컴파일 앤 고 — [!] LET var = 식 PRINT expr-list { , / ; / } 번호로 이동 IF 식 relop 식 THEN 라인 번호 GOSUB 번호 돌아가다 끝. 달려. 리스트-시작 신규 [프로그램명 프롬프트] 대상/목적/스텝/다음 판독, 데이터 이제 그만 우선 순위, ^ <==>=> <> INT, SIN, COS, TAN, ATN, EXP, LOG, ABS, SQR, DEF FN RND(0) 0..1 1~99999 없음. 22 정의 9자리 ±999,999,999;E 표기법 베이스 2 -256 ~+255 (E±76) A-Z, A0-Z9 DIM (1글자 이름, 2차원). 생략 시 0 ~ 10으로 상정.모든 어레이에서 최대 1500개의 요소 없음.
2월,
1970
DEC BASIC-8[60]
(DEC 스태프) PDP-8 컴파일 앤 고 입력 변수 목록 LET var = 식 PRINT expr-list { , / ; / } 번호로 이동 IF expression relop expression [THEN/GO TO] 행 번호 GOSUB 번호 돌아가다 끝. 달려. LIST (첫 번째, 마지막) 신규 [프로그램명 프롬프트] 대상/목적/스텝/다음 읽기, 데이터, restore 중지, 이전, 저장, 저장 안 함 DELETE(첫 번째, 마지막), BYE 우선 순위, ^ <==>=> <> INT, SGN, SIN, COS, TAN, ATN, EXP, LOG, ABS, SQR, DEF FN RND(0) 0..1 1 ~ 2045 없음. 23 정의 ? ±134,217,727,14E-38 < N < 1 . 7E38 A-Z, AA-Z9 DIM(문자 이름 1개, 치수 2개) 없음.
6월.
1974
UIUC[61] 베이직
알프레드 위버, 마이클 틴달, 로널드 다니엘슨 8008 통역사 입력 <변수> {, <변수>}* LET var = 공식 PRINT <string > / < formula > {, <string > / < formula > } * 번호로 이동 IF 식 THEN 행 번호 GOSUB 번호 돌아가다 끝. 달려. 문서화되어 있지 않다 문서화되어 있지 않다 문서화되어 있지 않다 대상/목적/스텝/다음 DEF FN, 정지 우선 순위, ^ <==> == > # 및 없음 FNA..Z, SIN, COS, 로그, SQR, EXP, ATN 0 ~ 999 없음. 문서화되어 있지 않다 4바이트 가수 및 1바이트 지수 [데이터포인트 2200 부동소수점 연산 패키지] 문서화되어 있지 않다 A-Z, A0-Z9 DIM(문자 이름 1개, 3차원) 없음.
1975
Altair 4K BASIC[62]
빌 게이츠, 폴 앨런, 몬테 다비도프 8080 통역사 INPUT("string",) 변수 목록 (LET) var = 식 PRINT expr-list { , / ; } GOTO 번호 IF 식 THEN 행 번호/문 GOSUB 번호 돌아가다 끝. 달려. 리스트(시작) 신규 대상/목적/스텝/다음 읽기, 데이터, restore 이제 그만 우선 순위 <==>=> <> ABS, INT, SGN, SQR, TAB, USR RND(X) <0, 시드로 X를 사용하여 신규, =0, 반복, >0, 다음 1~65535 : 12 정의 40비트 오퍼랜드 플로팅 ? ? DIM (일차원) 없음.
12월,
1975
설계[63] 노트
데니스 앨리슨 통역사 입력 변수 목록 LET var = 식 PRINT expr-리스트 GOTO 표현 IF 식 relop 식 THEN 문 GOSUB 표현 돌아가다 끝. 달려. 목록. [eq. to NEW] 우선 순위 <==>=> <> <> 없음. 없음. 1~255 없음. 8 정의 16비트 ± 32767 A~Z 없음. 없음.
2월,
1976
작은 베이직[64] 확장
딕 휘플 & 존 아놀드 8080 통역사 입력 (LET) var = 식 ;} 에 가다 IF 식 [no THEN]문 GO SUB 리트 끝. 달려. LST(첫 번째, 마지막) 신규 FOR-NXT (스텝 없음) DTA(어레이 LET) 우선 순위 <==>=> <> <> 인쇄 시 TB() 공백 RN (랜덤 0 ~10000) 스즈 1~65535 $ 14 정의 16비트 ± 32767 A~Z DIM, 1차원 또는 2차원, 최대 255x255 없음.
3월,
1976
덴버 타이니 바스IC[65]
프레드 그리브 8080 통역사 입력 (LET) var = 식 ;} 에 가다 IF 식 [no THEN]문 GOSUB 리트 끝. 달려. 목록(첫 번째 마지막) [eq. to NEW] 테이프 [저장], 로드 CLRS [CLS] 우선 순위 <==>=> <> <> RND(0), RND(1) 크기 2 ~ 255 : 20 정의 16비트 ± 32767 A~Z, A1~A6~Z6 DIM, 1차원 없음.
3월,
1976
6800 Tiny BASIC[65]
톰 피트먼 6800 통역사 INPUT(식) 변수 목록 LET var = 식 PRINT expr-list { , / ; } GOTO 표현 IF 식 relop 식 THEN 문 GOSUB 표현 돌아가다 끝. 달려. 목록(첫 번째 마지막) [eq. to NEW] 우선 순위 <==>=> <> <> USR() RND() 1~65535 없음. 53 정의 16비트 ± 32767 A~Z 없음. 없음.
4월,
1976
미노[66]
에릭 T. 뮬러 8080 통역사 입력 (LET) var = expression PR expr-list {;} [GOTO 0직접 발언의 선두로 돌아가다] IF expression relop expression ; statement 끝. 달려. 목록. CLEAR [변수만] 신규 문자열 이외에는 공백이 허용되지 않습니다. 연산자 우선 순위 없음 < = # $ [CHR$] ! [RND] 1~254 : 6 정의 8비트 0 ~ 255 A~Z (H,L) 메모리 위치 단일 문자
그럴지도 모른다,
1976
팔로알토 타이니 바스IC[67]
왕리첸 8080 통역사 INPUT [(식) var]* (LET) var = 식 PRINT expr-리스트 GOTO 표현 IF 식 [no THEN]문 GOSUB 표현 돌아가다 이제 그만 달려. 리스트(시작) 신규 대상/목적/스텝/다음 이제 그만 우선 순위 <==>=># ABS() RND() 크기 1~32767 ; 3 정의 16비트 ± 32767 A~Z @(1차원 어레이 1개) 없음.
11월,
1976
니블[68]
마크 알렉산더 & 스티브 라이닝어 SC/MP 통역사 입력($) 변수 (LET) var = 식 PR/PRINT expr-리스트 GOTO 표현 IF 식(THEN)문 GOSUB 표현 돌아가다 끝. 달려. 리스트(시작) CLEAR [변수와 스택] 신규 대상/목적/스텝/다음 실행/끝까지 메모리 주소 지정(@ [PEEK / POKE ], STAT, PAGE) 우선 순위 <==>=> <> MOD() 및 또는 아님 RND(A, Z) 정상 0 ~ 32767 : 13 4 문자 정의 16비트 ± 32767 A~Z 메모리 어드레싱 INPUT$, PRINT$, $exp=exp
8월,
1977
레벨 I BASIC[69]
스티브 라이닝어 Z80 통역사 INPUT (#digit) [(식) (LET) var = 식 PRINT (#digit) expr-list GOTO 번호 IF 식 THEN 문 GOSUB 번호 돌아가다 끝. 실행(시작) 리스트(시작) 신규 대상/목적/스텝/다음 읽기, 데이터, restore 정지, 계속, ON-GOTO/GOSUB CLOAD, CSAVE, CLS, SET, 리셋, 우선 순위 <==>=> <> <> ABS(), INT(), MEM, POINT(X,Y) RND() 메모리 1~32767 : 3 정의 16비트 ± 32767 A~Z A(1차원 배열 1개) A$, B$
6월.
1976
마이크로[70] 베이직 1.3
로버트 위터윅 6800 통역사 입력 변수 목록 (LET) var = 식 PRINT expr-list { , / ; } GOTO 표현 IF 식 relop 식 THEN 문 GOSUB 표현 돌아가다 끝. 달려. LIST (첫 번째, 마지막) 신규 대상/종료/다음 (스텝 없음) 탭() 우선 순위 <==>=> <> <> 크기 RND [반환 1-32762] SIZE(사용 바이트를 인쇄하고 빈 바이트를 인쇄하는 문장) 1~65535 없음. 17 정의 16비트 [나중에 BCD!] ± 32767 A~Z DIM(2차원, 최대 255사이즈) 없음.
6월.
1976
과학 ELequarentary
BaaS 언어
(SCELBAL)[71]
마크 아놀드와 냇 워즈워스 8008 통역사 입력 변수 목록 (LET) var = 식 PRINT expr-list {, /; / } GOTO 번호 THEN 문 GOSUB 번호 돌아가다 끝. 달려. 목록. SCR[액치] 대상/목적/스텝/다음 저장, 로드 UDF [USR] 우선 순위, ^ <==>=> <> INT, SGN, ABS, SQR, CHR [PRINT에서만 사용 가능], 탭 RND(0) 0..1 1~99999 없음. 18 정의 32비트 오퍼랜드 부동소수점 또는 고정소수점 ±134,217,727,14E-38 < N < 1 . 7E38 ? DIM (문자명 1개, 치수 1개, 총 64개의 엔트리로 이루어진 최대 4개의 어레이) 없음.
10월,
1976
애플 I BASIC[72]
스티브 워즈니악 6502 통역사 INPUT("string",) 변수 목록 (LET) var = 식 PRINT expr-list { , / ; } GOTO 표현 IF 식 relop 식 THEN 행 번호/문 GOSUB 표현 돌아가다 끝. 실행(시작) LIST (첫 번째, 마지막) 스크래치 대상/목적/스텝/다음 자동, DEL, POCKE 탭(명령어), 호출 우선 순위 <==> = > <> # 및 모드 SGN, ABS, PEEK(), LEN() RND(X) 0..X(또는 X)0!) 히엠, 로엠 1~32767 없음 [이전 버전, 그 후 :] 16 정의 16비트 ± 32767 A~Z 뒤에 임의의 수의 영숫자가 붙습니다. DIM (일차원) 치수의
12월,
1976
LLL[73] 베이직
(아이다호 대학교 직원) 8080 통역사 입력 변수 목록 (LET) var = 식 PRINT expr-list { , / ; } 번호로 이동 IF expression relop expression(THEN) 문 GO SUB 번호 돌아가다 끝. 달려. 목록. 스크래치 대상/종료/다음 (스텝 없음) 이제 그만 콜, GET(), PUT() 우선 순위 <==>=> <> <> RND는 없어요? 0 ~ 32767 : 14 정의 32비트 오퍼랜드 부동소수점 ? A-Z, A0-Z9 DIM(정수만, 문자 이름, 치수, 최대 크기 255) 없음.

「 」를 참조해 주세요.

메모들

  1. ^ 그 당시 8080의 가장 일반적인 메모리 크기는 4kB로 수백 달러의 비용이 들었다.
  2. ^ 해시는 HP Time-Shared BASIC에서 동일하지 않은 경우에도 사용되었습니다.

레퍼런스

인용문

  1. ^ Lancaster, Don (1976). "TV Typewriter Cookbook" (PDF). pp. 210–211.
  2. ^ 메인과 앤드류스 1994, 페이지 81
  3. ^ Roberts, H. Edward (October 1975). "Letter from the President". Computer Notes. Albuquerque NM.: MITS. 1 (5): 3–4. Archived from the original on March 23, 2012.
  4. ^ 메인과 앤드류스 1994, 페이지 91
  5. ^ Allison, Dennis (July 1976). "Design notes for TINY BASIC". SIGPLAN Notices. ACM. 11 (7): 25–33. doi:10.1145/987491.987494. S2CID 18819472.
  6. ^ a b "TB Code Sheet". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte. 1 (1). December 1975.
  7. ^ 돕스 1976, 5페이지
  8. ^ a b c Rauskolb, Roger (December 1976). "Dr. Wang's Palo Alto Tiny BASIC". Interface Age. 2 (1): 92–108. 소스 코드는 다음 9행으로 시작합니다.
    *********************; 인텔 8080; 버전 2.0; 리첸왕; 수정 및 번역; 인텔 니모닉스; 1976년 10월 10일 ROGER RAUSKOLB; 모든 복사;
  9. ^ "Open hardware: How and why it works". The open software movement was founded by Dennis Allison in his release of Tiny BASIC in 1975
  10. ^ a b Warren, Jim C. (July 1976). "Correspondence". SIGPLAN Notices. ACM. 11 (7): 1–2. ISSN 0362-1340.
  11. ^ Wang, Li-Chen (May 1976). "Palo Alto Tiny BASIC". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte. 1 (5): 12–25. 소스 코드는 다음 6줄로 시작합니다.
    Tiny Basic for Intel 8080 Version 1.0 by Li-chen Wang, 1976년 6월 10일 @copyleft All Wrongs Reserved
    5월호의 6월 날짜가 맞습니다.잡지는 예정보다 늦었고, 6월과 7월호가 합쳐져 따라잡았다.
  12. ^ Allison, Dennis (1976). "Build Your Own BASIC". Dr. Dobb's Journal. Vol. 1, no. 1. p. 9.
  13. ^ Allison, Dennis (1976). "Quick Reference Guide for Tiny BASIC". Dr. Dobb's Journal. Vol. 1, no. 1. p. 6.
  14. ^ BASIC-PLUS Language Manual (PDF). Maynard, Massachusetts: Digital Equipment Corporation. 1972. pp. 3–13.
  15. ^ Allen, Dennis. "TINY BASIC". People's Computer Company. 4 (3).
  16. ^ Veit, Holger. "Tom Pittman's 6800 tiny BASIC". Retrieved 2 May 2017.
  17. ^ 박사의 일기, 제1권, 1976년, 12페이지
  18. ^ CRLF는 캐리지 리턴과 라인 피드를 나타냅니다.
  19. ^ Pittman, Tom. "Tiny BASIC Experimenter's Kit". Retrieved August 9, 2020.
  20. ^ "TINY BASIC 6800" (PDF). Retrieved 13 Aug 2020.
  21. ^ a b c "Tiny BASIC Extended". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte. 1 (2). February 1976.
  22. ^ a b "Denver Tiny BASIC". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte. 1 (3). March 1976.
  23. ^ a b c "MINOL". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte. 1 (4). April 1976.
  24. ^ a b c d e Rauskolb, Roger (December 1976). "Dr. Wang's Palo Alto Tiny BASIC" (PDF). Interface Age. pp. 92–108.
  25. ^ "Design Note". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte. 1 (1). December 1975.
  26. ^ "6800 Tiny BASIC". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte. 1 (3). March 1976.
  27. ^ "TINY BASIC User Manual+".
  28. ^ Wang, Li-Chen (May 1976). "Palo Alto Tiny BASIC". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte. 1 (5): 12–25.
  29. ^ a b "NIBL". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte. 1 (10). November 1976.
  30. ^ "Enhanced & Modified 6800 Tiny BASIC". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte. October 1980.
  31. ^ "TBI68K". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte. February 1985.
  32. ^ "Return of Tiny BASIC". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte. January 2006.
  33. ^ "Texas Tiny BASIC (TBX) Marries TV-Cassette Operating System (TVCOS)". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte. 1 (5): 28–31. May 1976.
  34. ^ Arnold, Mark; Wadsworth, Nat (February 1976). "SCELBAL - A Higher Level Language for 8008/8080 Systems". Dr. Dobb's Journal. pp. 30–53.
  35. ^ Wang, Li-Chen (May 1976). "Palo Alto Tiny BASIC". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte. 1 (5): 12–25. (NB. 소스 코드는 다음 6줄로 시작합니다."인텔 8080용 타이니 베이직 버전 1.0, LI-CHEN Wang, 1976년 6월 10일, @copyleft, 모든 잘못된 예약"5월호의 6월 날짜가 맞습니다.잡지는 예정보다 늦었고, 6월과 7월호가 합쳐져 따라잡았다.)
  36. ^ McCabe, Dwight [editor] (July 1, 1977). PCC's Reference Book of Personal and Home Computing (1st ed.). Menlo Park, CA: People's Computer Company. p. 248. ISBN 0-918790-02-6. {{cite book}}: first1=범용명(도움말)이 있습니다.
  37. ^ "People's Computer Company" (PDF). Retrieved 25 December 2019.
  38. ^ Turnbull, Pete. "Startrek.asc". Retrieved 25 December 2019.
  39. ^ "3K Control Basic Instruction Manual" (PDF). Cromemco. Archived from the original (PDF) on 2013-12-22. Retrieved 2013-02-18.
  40. ^ Ainsworth, Dick (1982). Astro BASIC. Astrocade, Inc. p. 3.
  41. ^ "Robert Uiterwyk's BASIC".
  42. ^ "Robert Uiterwyk's Micro Basic".
  43. ^ "Part 1 Of LLL 8080 BASIC Interpreter" (PDF).
  44. ^ "4 Altair Language Systems". Altair BASIC.
  45. ^ Altair BASIC (PDF). MITS. 25 August 1975.
  46. ^ Wozniak, Steven (1 May 2014). "How Steve Wozniak Wrote BASIC for the Original Apple From Scratch". Gizmodo.
  47. ^ Welsh, David; Welsh, Theresa (2007). Priming the Pump: How TRS-80 Enthusiasts Helped Spark the PC Revolution. p. 7.
  48. ^ "ZX80 – 8K BASIC ROM UPGRADE".
  49. ^ Ness, Stephen. "XYBASIC". Ness Software. Retrieved 4 August 2020.
  50. ^ "TinyBasicPlus". GitHub.
  51. ^ "It's here! Half-Byte Tiny Basic 2 for Arduino and compatibles".
  52. ^ "Running Tiny Basic on the Micro: Bit".
  53. ^ Chailloux, Emmanuel; Manoury, Pascal; Pagano, Bruno (2002). Developing Applications with Objective Caml. France: O'Reilly. ISBN 2841771210.
  54. ^ "aleozlx/tinybasic". GitHub. Retrieved 2020-09-20.
  55. ^ "PaloAltoTinyBasic". Retrieved 2020-09-20.
  56. ^ Williams, Al. "bootBASIC Fits Your Favorite Language in the Boot Sector". Hack A Day. Retrieved 26 March 2022.
  57. ^ Gutierrez, Oscar Toledo. "bootBASIC is a BASIC language in 512 bytes of x86 machine code". Github. Retrieved 26 March 2022.
  58. ^ Gutierrez, Oscar Toledo. Programming Boot Sector Games. Lulu. p. 155. ISBN 978-0-359-76262-0.
  59. ^ "BASIC" (PDF).
  60. ^ "TSS/8 TIME-SHARING SYSTEM USER'S GUIDE".
  61. ^ "A BASIC LANGUAGE INTERPRETER FOR THE INTEL 8008 MICROPROCESSOR".
  62. ^ "MITS ALTAIR BASIC REFERENCE MANUAL" (PDF).
  63. ^ "Dr. Dobb's Journal of Computer Calisthenics and Orthodontia: Running Light Without Overbyte" (PDF).
  64. ^ "Dr. Dobb's Journal of Computer Calisthenics and Orthodontia: Running Light Without Overbyte" (PDF).
  65. ^ a b "Dr. Dobb's Journal of Computer Calisthenics and Orthodontia: Running Light Without Overbyte" (PDF).
  66. ^ "Dr. Dobb's Journal of Computer Calisthenics and Orthodontia: Running Light Without Overbyte".
  67. ^ "Interface Age".
  68. ^ "Dr. Dobb's Journal of Computer Calisthenics and Orthodontia: Running Light Without Overbyte" (PDF).
  69. ^ "Help for TRS-80 Level I BASIC".
  70. ^ "Robert Uiterwyk's MICRO BASIC".
  71. ^ "SCELBAL - A HIGHER LEVEL LANGUAGE FOR 8008/8080 SYSTEMS" (PDF).
  72. ^ "PRELIMINARY APPLE BASIC USERS MANUAL". October 1976.
  73. ^ "Interface Age" (PDF).

참고 문헌

외부 링크