BASIC

  SHOW ME THE MONEY 4 우승자에 대한 내용은 베이식(가수) 문서를 참조하십시오.

  다른 뜻에 대한 내용은 베이식 문서를 참조하십시오.

 PRINT "Hello, World!"

1. 개요
2. 상세
3. 방식
3.1. 순차적 프로그래밍 방식
3.2. 구조적 프로그래밍 방식
3.3. 객체 지향 방식
4. 소프트웨어 목록
5. 코드 예제
6. 기타

1. 개요

Beginner's All-purpose Symbolic Instruction Code

(초보자용 다목적 기호명령 코드)[1]

프로그래밍 언어 중 하나로 간단하고 배우기 쉬운 언어로 잘 알려져있다. 본래 영어 단어 base의 형용사형인 basic의 발음을 따온 말로서 1986년에 제정된 외래어 표기법에 따르면 베이이 정확한 표기이지만 한국에서는 베이직이라는 표기가 압도적으로 널리 통용되고 있다.[2] 소싯적에 컴퓨터 좀 만져본 1970~80년대생이라면 추억하는 이가 많은 프로그래밍 언어.

1963년 다트머스 대학교의 존 케메니(John Kemeny)와 토머스 커츠(Thomas Kurtz)가 개발한 꽤 유서깊은 언어이다. 본래는 대화형 메인프레임 시분할 언어로 설계되었으며, 퍼스널 컴퓨터에 채용됨으로써 널리 사용되는 언어가 되었다. 간단한 영어의 어구를 기반으로 한 명령이 쓰이므로[3] 쉽게 배울 수 있다는 장점이 있으며, 이 때문에 요즘에는 대부분 처음부터 C언어Java로 시작하든지, 굳이 쉬운 언어를 고른다면 파이썬으로 시작해서 의미가 퇴색했지만 대표적인 프로그래밍 교육용 언어로 보급되었던 언어이며 오늘날까지도 MS의 푸시로 생명력을 유지하고 있는 언어이다.

일반적으로 사용하는 영어 단어들을 대거 채용해 배우기 쉽고 직관적이다. 따라서 프로그램 제작이 아주 쉽다는 장점이 있다. 상용 소프트웨어 시장이 너무나 작았던 퍼스널 컴퓨터 초창기(1970~1980년대), 많은 사용자들이 스스로 필요한 프로그램을 만들어 쓸 수 있게 해 주는 유용한 도구였다. 게다가 의외로 심오한 면이 있어, 프로그램을 만들며 배우다보면 제법 강력한 기능을 가진 프로그램도 만들 수 있었다. 오늘날에도 BASIC 계열의 언어인 VBA를 통해 MS 오피스매크로 및 프로시저를 작성하여 오피스 사용자를 돕고 있다.

마이크로소프트가 사랑하는 언어로도 유명하다. 아는 사람이 드물지만 마이크로소프트에서는 MS-DOS 시절부터 윈도우 XP까지도 베이직 인터프리터(QBASIC)를 번들로 제공하고 있었으며 오늘날에도 베이직이 생명력을 유지하는 것도 다 MS의 힘이라고 해도 과언이 아닐 정도. 뒤집어말하면 MS가 없으면 BASIC은 완전히 망한다.

공학용 계산기는 보통 프로그래머블 언어로 베이식을 지원하는 경우가 많아 그 쪽에서 목숨을 이어나가고 있다. 특히 Texas Instruments. 이 회사는 TI-BASIC이라고 하는 BASIC 기반의 공학용 계산기용 프로그래밍 언어를 만들어서 사용하고 있다. 휴렛팩커드의 공학용 계산기도 BASIC을 쓸 수는 있는데, 따로 HP에서 지정한 데이터 집합이 없어서 TI용 BASIC 코드를 Ctrl CV 해서 쓴다.

베이식이 망했어요 루트를 타게 된 결정적인 원인은 '교육용으로는 뛰어나지만, 실무 사용률이 낮고, 생산성도 떨어진다'는 점이 가장 크다. 공부하기는 좋은데 공부해서 써먹을 곳이 없다는 소리. 그리고 써먹을 곳에 대한 문제를 심심해서 시간때우기 용으로 만들어 해결한(...) 네덜란드Python이 나오면서, BASIC은 2000년대 중반 이후로 완전히 안습루트를 탔다. MS가 없어진다면 BASIC도 같이 없어질 가능성이 높다.

2. 상세

오늘날 베이직은 과거에 비해 사용범위가 많이 축소되었지만 8비트 PC가 시장의 주류였던 1980년대에는 대부분의 PC에 기본적으로 베이직 인터프리터가 ROM에 수록되어 내장되어 있는 기본 언어였다. 개인용 컴퓨터라는 개념이 막 정착되었던 시기였기 때문에 산업용으로는 상대적으로 적합하지 않아도 교육용으로 가치가 높은 베이직을 내장한다는 것은 합리적인 정책이었다. 비싼 비용으로 인해 플로피 디스크 드라이브 같은 보조기억장치가 별매품인 게 당연했던 시절이니만큼 '컴퓨터 본체만 가지고 뭔가를 할 수 있는 것'은 베이직으로 코딩을 해보는 것이 전부였을 정도로 내장 베이직은 비중이 컸다. 일종의 간이 OS 역할을 했다고 보아도 좋을 것이다. 실제로 당시의 내장 베이직은 간단한 시스템 제어 명령어도 있어서 나름대로 OS의 역할을 하기도 했다. 당시만 해도 "OS=파일 읽을 수 있고 파일 쓸 수 있고 프로그램 실행할 수 있으면 충분" 이라는 개념이었기 때문. 사실 그 이상의 기능이 필요하지도 않았다.

지금은 퍼스널 컴퓨터=인터넷 하는 기계라는 것이 일반인의 인식이고 1990년대 중반까지는 PC(퍼스널 컴퓨터)=게임기, 아래아한글 워드프로세서 또는 PC 통신용 터미널이라는 인식이 강했지만 80년대에는 퍼스컴(퍼스널 컴퓨터)=베이직으로 프로그램 짜는 기계라 인식될 정도로 베이직의 입지는 강력했다.[4] 1980년대 당시 국내에서 판매되던 SPC-1000, SPC-1500, 금성 패미콤 시리즈, MSX, 애플 II 등의 8비트 컴퓨터 중 롬에 베이직이 기본 탑재되지 않은 기계는 없었다.[5]

IBM PC 역시 초기에는 롬에 베이직을 내장하고 부팅시 MS-DOS 디스크를 삽입하지 않으면 롬 베이직 인터프리터가 부팅되는 구조였다. IBM PCjr에 베이직 언어를 추가하기 위한 카트리지는 1980년대 당시에 꽤나 인기있는 품목이었다고 하며 이것도 마찬가지로 나중에는 롬에 내장되었다. 재미있는 사실로 초기 IBM PC 호환기종의 경우 부팅시에 하드 내 파티션에 부트 영역이 존재하지 않는 등의 이유로 MS-DOS를 부팅할 수 없는 경우 NO ROM BASIC SYSTEM HALTED라는 에러 메세지가 떴었는데, 당시에는 왜 부팅 에러 메시지에 뜬금없이 BASIC이 나오나 하는 의문을 가진 유저들도 많이 있었다. 진실은 앞서 말했듯 오리지널 IBM PC(일부 호환기종 포함)는 롬 베이직을 내장하고 있었고 외부 기억장치(플로피나 하드)로 부트에 실패할 경우 베이직 인터프리터 모드로 들어가게 되어 있었지만 대부분의 호환기종에는 라이센스 문제로 롬 베이직이 내장되어있지 않았다. 따라서 이런 기종은 부트 과정에서 DOS 부팅에 실패한 뒤 롬 베이직을 호출하기 위해 체크했더니 이마저 없기 때문에 시스템을 정지한다는 메시지가 나왔던 것. 나중에 베이직을 내장하지 않는 것이 일반적이 되고나서는 메시지가 바뀌어서 그냥 운영체제가 없다는 메시지만 나온다. 덤으로 롬에 저장된 베이직 인터프리터를 호출하는 BASIC.COM과 BASICA.COM(GWBASIC.EXE는 해당 안 된다!)을 써 본 적이 있다면 올드 프로그래머.

배우기 쉽고 대화형 언어라 프로그램의 수정이 간단하고 시스템 롬 내장이라는 특성상 외부기억장치를 필수적으로 요구하지 않는 고로 작은 시스템으로도 이용할 수 있다는 특징은 분명히 장점이지만 단점으로는 한줄한줄씩 번역하는 인터프리터 방식이 가지는 한계, 즉 처리속도가 느리다는 점을 들 수 있다. 오늘날에는 절대적인 컴퓨팅 파워가 월등하게 강력해졌고 인터프리터에도 다양한 기법들이 수용되면서 컴파일러 방식에 비해 크게 느리지 않은 경우도 적지 않게 볼 수 있게 되었지만 겨우 몇 MHz 수준의 CPU와 64K 바이트 남짓한 메모리를 지녔던 1980년대 당시에는 베이직의 느린 속도는 베이직을 전문적인 개발 언어로 사용하기 어렵게 만드는 걸림돌이었다. 그러나 1980년대 후반에 접어들며 터보 베이직, 퀵 베이직 같은 컴파일러 방식의 베이직도 나오기 시작했고 오늘날에는 컴파일러 기반의 베이직 언어가 대다수. (이게 무슨 소리인지 모르겠다면 소스 코드 문서를 참조하자.)

사실 초기에는 베이직을 사용한 게임들도 꽤 많이 있었다. 각종 공모전이나 컴퓨터 잡지에 투고된 게임 소스 코드들은 전부 베이직으로 되어있거나 일부 속도를 요구하는 부분에만 어셈블리어, 혹은 기계어 코드를 조합한 것이 대부분이었다. 상용 게임들에도 베이직을 사용한 게임이 꽤 많았는데 애플 II울티마 1[6]이 대표적. PC-8801삼국지 1, 노부나가의 야망, 현대대전략[7] 등에도 베이직 코드가 들어있었다고 한다. 물론 점점 게임이 복잡해지고 속도를 요구하게 되면서 베이직 코드는 게임에서 제거되기 시작했다.

마이크로소프트빌 게이츠가 본격적으로 유명해진 계기도 당시 PC 중 하나인 알테어용 베이직 인터프리터를 만들면서였다. 알테어 광고를 보고 친구인 폴 앨런과 함께 무작정 베이직을 팔겠다고 만들기 시작하지도 않은 상태에서(...) 납품제의를 했다. 승낙 후 광속의 개발을 거쳐 완성품 천공카드 묶음을 들고 본사로 가는 비행기에 탔는데 그제서야 아직 코딩하지 않은 부분이 있다는 사실을 알아채고[8] 비행기 안에서 손수 천공카드에 구멍을 뚫어가며[9] 코딩하여 도착하기 전에 완성했다고 한다. 천공카드라 가능했던 일화. 이후 본사에서 성공적인 데모 시연을 해보였고 이 프로그램을 계기로 빌 게이츠가 소프트웨어 장사를 해야겠다고 마음먹게 되었다 한다. 당시 소프트웨어 저작권의 개념 자체가 없던 시절이라 매장에서 천공카드를 복사기로 무한정 복사해가는 일이 흔했는데, '이런 행동은 절도나 다름없다'고 정면으로 광고를 처음 실었던[10] 빌 게이츠는 당시 상당한 이야깃거리가 되었다. 하지만 당시만 해도 소프트웨어는 기업체에 납품하는 것이 기본이라 복제 배포라는 개념 자체가 거의 없었고 거의 씹혔다.[11]

본격 사업가의 길을 걸은 한참 후에도 당시 만들었던 베이직 인터프리터의 소스를 거의 그대로 기억하고 있었다고. 애플의 번들 소프트였던 애플소프트 베이직도 빌 게이츠의 작품이며, MSX의 베이직도 직접 개발했다. 실제로 마이크로소프트는 베이직 언어에 대해 상당한 애정과 집착(?)을 가지고 있다. 사멸할 것이 뻔하던 베이직 언어를 비주얼 베이직이라는 걸출한 물건으로 부활시킨 뒤, 이 비주얼 베이직을 엑셀에 맞게 포팅하여 Visual Basic for Application이라는 이름으로 집어넣어놨다. 이 비주얼 베이직의 문법을 활용한 윈도우용 스크립트인 VBScript를 개발, 윈도우 뿐만 아니라 웹의 클라이언트 사이드 스크립트와 서버 사이드 스크립트로도 활용을 시도했다. 클라이언트 사이드 스크립트는 JavaScript와의 경쟁에서 패배, 거의 사용되지 않지만[12], ASP 등 서버 사이드 스크립트로는 여전히 잘 사용되고 있다.

요즘에는 smallBasic이라는 교육용 베이직 언어(그러나 닷넷의 스멜이 짙어서 별로 베이직 언어답지는 않다)까지 내놓은 상태. Visual Basic.NET은 클래스, 인터페이스 등 표준에는 없는 걸 대량으로 추가한 탓에 '베이직'이라 부르기도 애매해졌다.

마이크로소프트 외에도 다수의 소규모 개발사에서 개량형 버전을 내놓아 초보자들을 위한 개발 언어 및 교육용 언어로 나름대로 각광받고 있다. <pureBasic>, <PowerBasic>, <DarkBasic>, <BlitzBasic> 등 다양한 개량형 Basic 방언들이 있고, 옛날 Basic을 재현하는 FreeBasic, QB64 등의 오픈 소스 프로젝트까지 하면 종류가 엄청 많다. 게임 개발에 도전해보고 싶다면 입문 언어로 익히는 것도 좋을 듯. 다만 각자의 방식대로 OOP개념 등을 추가한 탓에 문법이 각자 다르다. 게다가 언어 자체에 버그가 상당히 창궐해서 어느 이상 복잡한 프로그램을 만들려고 들면 꼭 골치아픈 상황을 맞닥뜨리게 된다.

8~16비트 시대에도 애플 정수 베이직, 애플 소프트 베이직, Hu-BASIC, MSX 베이직, GW 베이직, 퀵 베이직 등등의 다양한 종류가 존재했는데 마이크로소프트 계열의 경우 애플 소프트 베이직 같은 예외를 제외하면 문법상 공통성이 있었지만 소스 호환성은 없었다. 코드와 하드웨어의 차이점을 수동(...)으로 메꿔가며 포팅하는 게 고작. 개발사가 다르면 문법의 차이는 더더욱 헬이었다. 오늘날의 문법 난립이 어제오늘새 있었던 일은 아니라는 얘기.

3. 방식

방식은 시대에 따라 3가지로 나뉘었다.

3.1. 순차적 프로그래밍 방식

초기 8비트 PC에 내장된 롬 베이직들 거의 전부와 IBM PC 롬 베이직, GW 베이직 등이 해당된다. 내장된 코드 편집 환경이 스크린 에디터가 아니라 라인 에디터였기 때문에 오늘날의 기준으로는 이해할 수 없는 몇 가지 특이한 개념들이 있다.

  • 초기에는 실행하자마자 아무 것도 없는 화면에 몇 줄 소개만 달랑 보여주고 맨 아랫줄에는 Fn 키에 따른 명령어(해당 키를 누르면 명령어가 자동입력된다)가 있다. 이 기능이 없는 기종도 있으며, Fn 키에 할당하는 명령어를 바꿀 수 있는 기종도 있었다.
  • '행 번호' 혹은 '줄 번호'라는 개념이 있었다. 코드를 짜기 위해서는 앞에 줄 번호를 지정하고 코드를 입력해야 했다. 코드는 이 줄 번호 순서대로 정렬되어 들어간다. 줄 번호는 분기나 반복을 위해서도(GOTO 줄 번호) 쓰인다. 줄 번호 지정은 간격을 두고(대개는 10 단위) 하는 게 일반적이다. 그 이유는 나중에 코드를 추가하기 용이하도록 하기 위한 것이라고 한다.
    • 줄 번호 없이 코드를 입력하면 엔터키를 치는 순간 해당 코드를 직접 바로 실행해버린다. 일명 '다이렉트 모드'라고 부른다.
    • 다이렉트 모드로 LIST 명령을 내리면 전체의 코드가 출력되었다.
    • 줄 번호를 매번 타이핑하는 것이 번거로운데, 다이렉트 모드에서 AUTO 라고 명령을 내려주면 자동으로 줄번호를 붙여준다. 별도로 지정하지 않으면 10번부터 시작하며 10씩 증가한다. 단, 모든 인터프리터에 있는 것은 아니었다. 대표적으로 애플 소프트 베이직에는 AUTO 명령이 없다.
  • 특정 줄을 바꾸려면 바꾸려는 줄 번호를 쓰고 그 줄의 코드를 새로 작성한다. 친절하게도, 대부분은 커서를 위아래로 올리는 것이 가능해 실수로 엔터를 쳐 버렸다 할 지라도 즉시 커서를 위로 올려서 올바른 코드로 교정한 후 다시 엔터를 치면 고쳐진다. 그 줄에 원래 MS 저작권 문구가 적혀있었든 에러 메시지가 적혀있었든 상관없다. 엔터 치는 순간 그 줄의 내용물이 코드이기만 하면 된다.
    • 다이렉트 모드로 LIST 줄 번호 라고 명령을 내리면 해당 줄 번호의 코드가 표시된다. 시작 줄번호-끝 줄번호 같은 식으로 여러 줄을 지정할 수도 있다. 이를 이용하면 아예 새로 작성하지 않아도 용이하게 수정이 가능하다.
  • 줄을 추가하려면 추가될 줄에 맞는 번호를 쓰고(예를 들어 40번 줄과 50번 줄 사이에 추가하려면 41번~49번 사이에서 임의로 입력한다.) 코드를 작성하면 된다.
  • 줄을 삭제하려면 다이렉트 모드로 DELETE 문에 삭제할 줄의 범위를 지정한다. 그냥 한 줄만 삭제하려면 코드 기술 없이 지울 줄 번호만 쓰고 바로 엔터를 쳐도 된다.
  • 이런 식으로 수정과 삽입 계속 하다 보면 줄 번호가 어수선해지는 것은 당연지사. 이럴 땐 RENUM 명령을 다이렉트 모드에서 내려주면 자동으로 코드 전체의 줄번호를 정렬해준다. 하지만 애플 II의 애플소프트 베이직에는 이 기능이 없어서 별도의 소프트웨어로 구현해야 했다.
  • 이 줄 번호는 무한정 쓸 수 있는 것이 아니고 제한이 있었다. 베이직 버전마다 조금씩 달랐지만, GW-BASIC 기준으로 0부터 65535까지 쓸 수 있었다. 즉 65536줄을 넘는 프로그램은 불가능하다는 이야기다. 8비트 컴퓨터의 경우는 어차피 베이직 코드에 할당된 메모리가 크지 않았기 때문에 그나마도 다 쓸 수 없었던 경우가 다반사.
  • 코드 입력이 모두 끝났다면 다이렉트 모드에서 RUN이라고 명령을 내려주면 코드가 실행된다.

3.2. 구조적 프로그래밍 방식

퀵 베이직, 터보 베이직, 큐 베이직 등이 여기에 해당한다. 본격적으로 스크린 에디터 기능을 내장한 통합개발환경(IDE)을 제공하게 되면서 줄 번호를 써가며 코딩하던 방식은 사라졌다. 기존의 베이직과 호환을 위해서 초기의 방식대로 줄 번호를 매긴 코드라 할 지라도 잘 돌아가기는 하지만 학습 등의 목적이 아니면 일부러 줄 번호를 일일이 매기지는 않고 번호 다시 매기기도 귀찮다. 따라서 RENUM 명령은 사라졌으며 굳이 줄 번호가 없더라도 분기를 위해서는 라벨을 붙이고 해당 라벨로 분기할 수 있다. IDE를 제공함에 따라 LIST 명령은 사라졌고 LOAD, SAVE도 상단의 풀 다운 메뉴로 기능을 이관하고 명령어가 사라지게 되었다. 간단한 코드 확인을 위해서 다이렉트 모드는 남아있는데, 스크린 에디터의 특성상 편집 창에서 직접 실행할 수는 없게 되었으므로 실행창을 따로 두어서 지원하게 되었다. 뿐만 아니라, 이때부터 베이직 언어도 발전을 하며 더 많은 명령어를 지원하는 등 많이 진보된 모습을 보여서 더 고급스러운(?) 프로그래밍이 가능해졌다. 다만 초보자 입장에서는 들여쓰기 문제때문에 골치아플수도 있겠다.

카세트 테이프에 대한 지원도 이 때쯤부터 중단되었다. 이미 플로피 디스크나 하드 디스크는 일반화되다 못해 없는 게 이상한 시대가 된지 오래되었고 데이터 레코더는 이 시점에서도 구경도 못해본 사용자들이 대다수였다. 8비트의 시대는 국내외를 막론하고 저물어가고 있었으며 IBM PC 및 호환기종이 대세를 이루면서 C, 파스칼 같은 다양한 언어들이 일반화되며 베이직의 시대도 따라서 저물고 있었다. 퀵 베이직, 터보 베이직은 그러한 시대적 변화에 발맞추고자 만들어진 컴파일러 방식의 베이직 언어였지만 결국 패러다임의 변화 그 자체를 거부할 수는 없어서 베이직에 집착하는 마이크로소프트를 제외하고는 지원이 거의 사라져가게 되었다. 객체 지향 방식의 베이직도 실은 베이직을 살리면서 Java와 같은 새로운 조류에 대항하기 위해 마이크로소프트가 발악 제작한 것.

3.3. 객체 지향 방식

기본적으로 퀵 베이직의 구조적 프로그래밍 방식에 객체 지향 개념을 가미한 것으로 비주얼 베이직에서 사용하고 있다. 이 때부터 마이크로소프트 베이직이 고수해온 기존 문법 틀이 붕괴되기 시작하였고, 특히 Visual Basic.NET은 그 정점을 찍고 있다. 이미 코드만 보면 이게 베이직인지 뭔지도 알아볼 수가 없다 그러나 비주얼 베이직 6.0에서 가지쳐서 나온 비주얼 베이직 포 어플리케이션(Visual Basic for Application, 일명 VBA)은 현재도 상당히 많이 쓰인다. MS 오피스와 결합된 VBA는 대단히 활용도가 높다.

4. 소프트웨어 목록

4.1. 마이크로소프트

  • Microsoft BASIC : 1975년 알테어용으로 등장한 베이직 인터프리터이자 마이크로소프트의 업계 입봉작.
  • Microsoft Commodore BASIC : 코모도어 64용으로 나온 베이직 인터프리터.
  • Applesoft BASIC : 초기의 정수 베이직을 대체하여 애플 II 컴퓨터에 내장된 베이직 인터프리터.
  • (Microsoft )MSX BASIC : MSX용 베이직 인터프리터. Z80 CPU용인 데다 MS가 손댄 것들이라 MSX용 DOS, 시스템 콜, BASIC, 어셈블리어와 기계어를 배운 사람은 8086 머신의 대응하는 내용을 배울 때 비교적 쉽게 적응할 수 있었다. GW 베이직과도 꽤 문법의 일치도가 높은 편. 그런데 왠지 LOCATE 문의 X,Y 축이 반대다. LOCATE Y,X로 지정하는 GW가 이상한거지만
  • (Microsoft )##-BASIC : 70~80년대 한국 및 일본에서 만들어진 거의 대부분의 PC에 기본적으로 탑재된 베이직 인터프리터. ## 부분에 자사 기종의 이니셜이 들어간다. 보통은 Goldstar GS-BASIC 같이 제조사명과 베이직 명칭으로만 표시하나 그 다음줄에 (c) Microsoft라는 문구가 있어서 마이크로소프트의 제품임을 알 수 있다. 실은 이것도 일본 컴퓨터 제조사(산요 PHC-25 등)에 납품되었던 것을 거의 그대로 가져온 것.
  • GW-BASIC : 마이크로소프트에서 롬 베이직이 내장되지 않은 컴팩의 호환기에 사용할 목적으로 납품한 인터프리터. 그러나 컴팩 아니라도 대부분의 호환기는 롬 베이직이 없었고 이에 따라 나중에는 MS-DOS에 기본으로 포함되면서 지명도를 높였다. 80년대 말~90년대 초 당시 베이직하면 대부분 GW-BASIC을 가리키는것이었다. 베이직 소프트웨어중 제일 인지도가 높았다고 보아도 된다.
  • QuickBASIC(퀵베이직) : 컴파일러와 통합개발환경(IDE)를 내장한 베이직. *.EXE 실행파일로 배포할수 있는 컴파일러가 포함되어 있으며 구조적 프로그래밍 패러다임을 도입했다. 흔히 줄여서 QB, 혹은 큐베이직이라고 하지만 밑의 큐베이직과는 차이가 있다.
  • QBasic(큐베이직) : MS-DOS 버전 5.0 이후부터 GW-BASIC을 대신하게된 베이직 소프트웨어. 이름이 비슷해서 헷갈리기 쉽지만 퀵 베이직과는 다른 물건이다.[13] 특이하게도 MS-DOS가 더 이상 개발되지 않은 이후에도 윈도우즈에 꼬박꼬박 포함되어 있었다(...) 윈도우 XP까지는 실행창에 Qbasic.exe를 치면 큐베이직을 실행할 수 있다. 큐베이직으로 만들어진 대표적인 게임으로 Gorillas와 Nibbles가 있다.[14]
  • Microsoft Visual Basic : 마이크로소프트의 비주얼 스튜디오 제품군 중 하나. 사건 기반 프로그래밍 툴로, 윈도우즈 환경에 최적화된 소프트웨어를 만드는 통합 개발 환경 소프트웨어이다. 현재까지도 널리 쓰이는 제품으로 자세한 설명은 항목 참조. 비주얼 베이직도 VB 6.0과 VB.NET 으로 나뉘어지는데 일반적으로 VB라고 하면 VB 6.0을 말하나 MS사에서는 VB 6.0과 그 후에 나온 VB.NET 을 구분하지 않고 그냥 VB(Visual Basic)으로 부른다.
  • Visual Basic .NET(비주얼 베이직 닷넷) : 비주얼 베이직에서 한단계 앞서간 객체 지향 프로그래밍 툴.

과연 베이직의 명가

4.2. 기타

  • Apple Integer BASIC : 애플 1에부터 내장되었던 베이직 인터프리터. 스티브 워즈니악이 직접 만들었다. 나중에 마이크로소프트가 납품하는 애플 소프트 베이직으로 대체되었다.
  • 볼랜드 터보 베이직(Borland Turbo-BASIC)
  • 리얼 소프트웨어사의 리얼베이직(REALBasic)
  • 다크 베이직, 퓨처 베이직, 프리 베이직.
  • True BASIC : 오리지널 BASIC 언어의 직계 후손. Dartmouth BASIC 7를 이식하여 상용화한 것이다.
  • 한베 : 삼선소프트의 한글 베이직. 최초로 한글화 시킨 프로그래밍 언어. 도스 환경에서 실행되고, 조합형 한글을 지원한다. K-DOS에도 번들되어, MS-DOS의 GW-BASIC에 대당하였다.
  • QB64 : QBasic의 64비트 호환 제품. 오픈소스 대체품이며 MS가 제작한 물건이 아니다.
  • 허드슨 Hu-Basic : 주로 샤프 계열의 8비트 PC에 내장되거나 별도의 테이프로 제공되었다. SPC-1000에 탑재되었던 베이직이라 초창기 컴퓨터 키드들은 이걸로 프로그래밍에 입문한 경우가 많았는데 이는 SPC-1000이 학교 납품률이 높았기 때문. Hu는 물론 허드슨을 뜻하는데, 당시 '휴먼테크'를 표방하던 삼성의 어떤 양반들은 농담 반 진담 반으로 이걸 Human이라고 주장하기도 했다. [15]
  • 베이직 군(べーしっ君) : 아스키가 개발한 MSX용 베이직 컴파일러. 기존의 MSX-BASIC으로 개발된 코드를 컴파일해서 10배 이상 빠른 속도를 내주었다.
  • 패밀리 베이직(ファミリーベーシック, Family BASIC) : 닌텐도(!!!), 샤프, 허드슨 합작. 그 이름대로 패밀리 컴퓨터 전용의 베이직 소프트웨어. 주변기기로 패미컴 전용의 키보드와 전용 카트리지가 있었다. 패미컴이 가진 컴퓨터 라는 이름이 단순한 폼은 아니라는 것을 증명하는 소프트웨어다.
  • TI-BASIC: Texas Instruments TI-83, TI-84, TI-89, TI-92(Voyage 200 포함), TI-73과 TI-Nspire 시리즈에서 사용. 다만 TI-Nspire에서는 Lua가 주언어로 사용된다.

5. 코드 예제

프로그래밍 언어/코드 예제에서 볼 수 있다.

6. 기타

  • 미디어아트 지향 언어인 Processing에 영향을 준 언어라고 한다. 다만 Processing의 문법은 베이직과는 하나도 공통점이 없고 기본적으로 Java의 문법을 간략화한 것이다. 문법보다는 간단하게 코딩이 가능한 학습용 언어라는 컨셉트와 쉽게 그래픽 표현이 가능하다는 특징이 베이직에서 착안한 것이라고 한다.
  • 유명한 컴퓨터 과학자 다익스트라는 '베이직에 노출된 적 있는 학생에게 제대로 된 프로그래밍을 가르친다는건 실질적으로 불가능하다; 그 잠재적 프로그래머들은 회복의 희망이 없는 정신적 불구가 된 것이다.' 라는 말을 남겼다. 사실 BASIC만 깐 건 아니고 COBOL이나 FORTRAN 같이 당시 구조 개념이 없던 언어들까지 전부 깠다. How do we tell truths that might hurt?

  1. [1] 두문자를 모으면 BASIC이 되는데 '기초'라는 의미의 영단어와 표기가 일치한다. 물론 노리고 지은 이름이다.
  2. [2] 어느 나라에서도 BASIC을 베이직으로 읽지 않기 때문에(일본도 ベーシック, 베이식으로 바로 발음한다) 우리나라에서만 쓰이는 틀린 발음이다. 80년대 영어 발음의 유산이라고 볼 수 있는 표현. 외래어 표기법 상으로 보면 분명 틀린 표현이지만 백과사전이나 출판물에서까지 베이직으로 쓰일 정도로 이미 통용 표기로 정착된 말이라 이제 와서 바꾸기도 곤란한 상황이 되었다. 2010년대 들어서는 베이식이라고 하면 컴퓨터 개발자나 공학도 한정으로 이 프로그래밍 언어라고 이해하지 일반인들은 대부분이 SHOW ME THE MONEY 4의 우승자 베이식을 떠올릴 정도이니...
  3. [3] 이 점은 코볼 도 비슷하지만, 프로그램이 복잡해질수록 코드 길이가 상당히 길어지는 코볼과는 달리 이쪽은 C언어 와 거의 비슷한 수준.
  4. [4] 대략 80년대 컴퓨터 사용자 하면, 컴퓨터 사용자=베이직 사용자, 컴퓨터 프로그래머=어셈블러 사용자 라는 공식이 통용될 정도였다고 보면 된다. 80년대 베이직 사용가능이란 현재의 오피스 사용가능과 비슷한 인식
  5. [5] 단, 금성 패미콤 시리즈 중 FC-150은 내부에 내장하지는 않고 BASIC-I(정수 베이직)를 별도의 롬팩으로 번들 제공했다. 원본인 Sord M5가 그런 구조였기 때문에 그대로 따른 것. 일본의 경우에는 M5 외에도 샤프 MZ 시리즈가 베이직 인터프리터를 내장하지 않았다. 부팅 시점에 아무것도 메모리에 적재하지 않는다는 '클린 컴퓨터'라는 컨셉트를 내세우고 내장되어있는 데이터 레코더를 통해 카세트 테이프에 담긴 허드슨의 Hu-BASIC 인터프리터를 롬에 적재하는 방식을 취했는데 정작 MZ-80 시리즈를 베이스로 만든 삼성 SPC-1000는 이 Hu-BASIC을 롬에다 때려박았다. 그래서인지 인터프리터를 롬에서 바로 참조하는 애플 IIMSX와 달리 SPC-1000은 부팅시 롬 영역에 있는 인터프리터를 램으로 복사한 다음 램 영역을 참조하는 특이한 방식을 취했다.
  6. [6] 그래픽 타일은 어셈블리어로 작성. 나중에 리메이크판인 뉴 울티마 1이 나오면서 베이직 코드를 빼고 기계어 코드로 싹 갈아엎었다.
  7. [7] 그래픽 처리 등 속도를 필요로 하는 부분에는 기계어 코드를 조합했다.
  8. [8] 테이프의 프로그램을 에 입력해서 실행시켜주는 부트스트랩 프로그램
  9. [9] 1970년대에 배터리로 돌아가는 노트북 같은게 있을리 없다(...)
  10. [10] '취미가들에게 보내는 공개 편지'라는 이름으로 발표하였다.
  11. [11] PC가 등장하기 전인 1970년대 중반까지만 해도 컴퓨터는 매우 비싼 기계였고 소프트웨어는 기계 사면 딸려서 오는 것과 같은 개념이였다. 쉽게 말하자면 모든 소프트웨어가 지금의 컴퓨터 사면 같이 따라오는 CD 같은 입장이였다고 보면 된다.
  12. [12] 표준으로 지정된 ECMAScript는 JavaScript의 문법이 기본 베이스이다.
  13. [13] 퀵베이직의 간이 버전으로, 문법은 퀵 베이직에 준하며 IDE도 퀵 베이직과 거의 동일하나 컴파일러가 없고 인터프리터 방식을 사용했다.
  14. [14] 1987-1993 이라고 실행시 뜬다.
  15. [15] 그런데 이게 아주 말도 안되는 개드립은 아니다. 똑같이 허드슨이 개발한 X68000의 운영체제인 Human-68k라는 놈이 있기 때문. 삼성이 Hu-BASIC을 탑재하기 위해서는 당연히 허드슨 측과 접촉이 있었을 것이기 때문에 나름대로 무슨 근거가 있었던 발언일지도 모른다.

최종 확인 버전:

cc by-nc-sa 2.0 kr

Contents from Namu Wiki

Contact - 미러 (Namu)는 나무 위키의 표가 깨지는게 안타까워 만들어진 사이트입니다. (133.59ms)