GW 베이직
1. 개요
GW-BASIC은 1980년대 마이크로소프트에서 개발한 BASIC 프로그래밍 언어의 인터프리터 버전이다. MBASIC 5.x를 기반으로 IBM PC 하드웨어 기능을 추가했으며, `WHILE...WEND` 루프, 최대 40자 길이의 변수 이름, `OPTION BASE` 문 등을 지원한다. GW-BASIC은 `PEEK`/`POKE` 문을 사용하지 않는 BASIC-80 프로그램을 실행할 수 있으며, IBM PC의 사운드, 그래픽 기능을 활용한다. 명칭 'GW'는 'Gee-Whiz', '그래픽 및 윈도우', '게이츠, 윌리엄' 등 다양한 설이 존재한다.
이미지 준비중입니다.
| 개발 연도 | 1983년 |
|---|---|
| 개발자 | 마이크로소프트 |
| 최신 버전 | 3.23 |
| 최신 버전 출시일 | 1988년 |
| 영향을 받은 언어 | IBM 카세트 베이직 IBM 디스크 베이직 IBM BASICA |
| 영향을 준 언어 | QBasic QuickBasic MSX 베이직 |
| 운영 체제 | 도스 |
| 라이선스 | 독점 소프트웨어 |
| 라이선스 상세 | MIT 라이선스 (v1.0) |
| 웹사이트 | 마이크로소프트 GW-BASIC 오픈 소스 발표 |
-
1983년 개발된 프로그래밍 언어 -
Occam
Occam은 1980년대에 개발된 동시성 프로그래밍 언어이며, 들여쓰기와 채널을 통한 통신을 특징으로 하며, `SEQ`, `PAR`, `ALT` 등의 명령어를 사용하고 여러 버전으로 발전했다. -
1983년 개발된 프로그래밍 언어 -
C++
C++는 비야네 스트롭스트룹이 개발한 다중 패러다임 프로그래밍 언어로, C를 기반으로 객체 지향 프로그래밍과 제네릭 프로그래밍을 지원하며 다양한 분야에 사용되고, 꾸준한 표준 업데이트를 통해 기능이 확장되었지만 복잡한 문법으로 높은 학습 곡선을 가진다. -
베이직 인터프리터 -
비주얼 베이직
비주얼 베이직은 1991년 마이크로소프트에서 출시된 GUI 기반 응용 프로그램 개발에 강점을 가진 프로그래밍 언어이며, 윈도우용 응용 프로그램 및 데이터베이스 조작 프로그램 개발에 주로 사용되었고, 2005년 표준 지원이 중단되었다. -
베이직 인터프리터 -
큐베이직
큐베이직은 GW-BASIC을 대체하기 위해 개발된 퀵베이직 컴파일러 기반의 인터프리터로, MS-DOS, 윈도우, IBM PC DOS 등에서 사용되었으며, 4개의 예제 프로그램과 이스터 에그를 제공한다. -
마이크로소프트 베이직 -
비주얼 베이직
비주얼 베이직은 1991년 마이크로소프트에서 출시된 GUI 기반 응용 프로그램 개발에 강점을 가진 프로그래밍 언어이며, 윈도우용 응용 프로그램 및 데이터베이스 조작 프로그램 개발에 주로 사용되었고, 2005년 표준 지원이 중단되었다. -
마이크로소프트 베이직 -
알테어 베이직
알테어 베이직은 빌 게이츠와 폴 앨런이 알테어 8800 컴퓨터를 위해 개발한 BASIC 인터프리터로, 마이크로소프트의 초기 성공에 기여하고 소프트웨어 저작권 논쟁을 촉발했으며 MS-DOS로 전환될 때까지 핵심 사업으로 남았다.
2. 기능
GW-BASIC은 다음과 같은 기능을 가지고 있다.
* `WHILE...WEND` 루프
* 최대 40자 길이의 변수 이름
* 배열 변수의 시작 인덱스를 0 또는 1로 설정하는 `OPTION BASE` 문
* 동적 문자열 공간 할당
* 쉼표와 같은 필드 구분 문자를 무시할 수 있는 `LINE INPUT`
* 기계어 루틴을 실행하기 위한 `CALL` 문
* `CHAIN` 및 `MERGE` 명령어
* 토큰화된 바이너리 형식 또는 ASCII 텍스트 형식으로 프로그램 저장 가능
* 매개변수 없이 `RND` 함수 실행 가능
* `LIST`되지 않도록 프로그램 "보호" 가능
* `COS`, `SIN`, `ATN`과 같은 수학 및 삼각 함수에 배정밀도 숫자 사용 가능 (시작 시 `/D` 매개변수 필요)
* 구조적 프로그래밍 지원 부족
* `IF`/`THEN`/`ELSE` 조건문은 한 줄에 작성
* `WHILE`/`WEND` 문은 여러 줄 그룹화 가능
* 함수는 단일 줄 `DEF FNf(x)=` 문으로 정의
* 변수 이름 끝 문자로 데이터 유형 지정 (예: `A$`는 문자열, `A%`는 정수)
* `DEFINT`, `DEFSTR` 등으로 변수 그룹의 기본 유형 설정 가능
* 선언되지 않은 변수의 기본 유형은 단정밀도 부동 소수점(32비트 MBF)
* 조이스틱 및 광선 펜 입력 장치 사용 가능
* 파일과 COM 포트에서 읽고 쓰기, 포트 이벤트 트래핑 가능
* 카세트 테이프 포트 인터페이스 미지원
* `PLAY` 문으로 간단한 음악 재생 (예: `PLAY "edcdeeL2edfedL4c"`)
* `SOUND` 문으로 PC 스피커를 통해 단일 채널 삐 소리와 휘파람 출력 가능
* Tandy 1000용 GW-BASIC은 `SOUND` 및 `PLAY` 명령에 대해 최대 3개 사운드 채널 허용
3. 명칭
"GW"가 무엇을 의미하는지에 대한 몇 가지 이론이 있다. 마이크로소프트의 BASIC 컴파일러 라인 표준을 개발한 초기 직원인 그레그 휘튼은 빌 게이츠가 GW-BASIC이라는 이름을 선택했다고 말한다. 휘튼은 이를 지휘즈 베이직(Gee-Whiz BASIC)이라고 부르며 게이츠가 자신의 이름을 따서 프로그램 이름을 지었는지 여부는 확실하지 않다고 한다. 마이크로소프트 프레스의 마이크로소프트 사용자 설명서에서도 지휘즈 베이직(Gee-Whiz BASIC) 이름으로 참조된다. 수많은 그래픽스 명령으로 인해 지휘즈(Gee-Whiz)라는 애칭이 붙었을 수도 있다. 이니셜의 기원에 대한 다른 일반적인 이론으로는 "그래픽 및 윈도우", "게이츠, 윌리엄"(당시 마이크로소프트 사장), 또는 "게이츠-휘튼"(프로그램의 두 주요 설계자) 등이 있다.
4. 헬로 월드 예제
gwbasic
10 PRINT "Hello, World!"
RUN
```
이 코드는 GW 베이직에서 "Hello, World!"를 출력하는 간단한 예제이다.