베이직
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
베이직(BASIC)은 1960년대 초 다트머스 대학교에서 개발된 프로그래밍 언어이다. STEM 분야 외 학생들의 프로그래밍 교육을 위해 개발되었으며, FORTRAN과 ALGOL의 복잡성을 개선하고자 했다. 시분할 시스템을 활용하여 학생들에게 즉각적인 피드백을 제공했으며, 1964년 최초 버전이 출시되었다. 이후 미니컴퓨터와 홈 컴퓨터 시대를 거치며 널리 사용되었고, 다양한 방언과 파생 언어가 등장했다. 베이직은 구조화되지 않은 형태에서 구조화된 형태, 객체 지향 형태로 발전했으며, 퀵베이직, 비주얼 베이직, FreeBASIC, True BASIC 등이 대표적이다. 1970년대부터 표준화가 시도되었으나, 각 제조사의 독자적인 확장에 밀려 최소한의 기능만 표준으로 제정되었다.
BASIC은 1964년 미국 다트머스 대학교의 수학자 존 케메니와 토마스 커츠가 교육 목적으로 개발한 프로그래밍 언어이다. 당시 주류 언어였던 FORTRAN의 영향을 받아 행 번호를 사용하는 등의 특징을 가졌다. 이들은 BASIC을 특허 등록하지 않아 널리 보급될 수 있었다. 초기 BASIC은 컴파일러 방식이었다.[86]
BASIC은 1964년에 탄생했으며, FORTRAN과 여러 면에서 유사하다. 구문은 FORTRAN의 문법을 기반으로 한다.[95]
2. 역사
BASIC은 GE과의 제휴를 통해 대학 외부로도 확산되었다. 1970년대 후반 이후 마이컴과 개인용 컴퓨터 등 많은 기종에서 채택되었는데, 이 시기 BASIC은 대부분 인터프리터 방식으로 마더보드 상의 ROM에 미리 기록된 상태로 제공되었다.[86]
BASIC은 크게 인터프리터 방식과 컴파일러 방식으로 나눌 수 있으며, 구문 형태에 따라 구조화 전 BASIC과 구조화 후 BASIC으로 구분된다.
; 다수의 방언 등장과 표준화 실패
BASIC의 방언(상이한 사양)은 1970년경부터 나타나기 시작했다.[87] 너무나 많은 BASIC 버전이 등장했기 때문에, ANSI는 1974년에 BASIC 표준화 위원회를 발족하여 "미니멀 BASIC(minimal BASIC)"과 "스탠다드 BASIC(Standard BASIC)"을 만들려고 노력했다.[87] 그러나 표준화 작업이 완료되었을 때는 이미 BASIC이 전 세계적으로 널리 사용되고 있었고, 실질적인 표준 BASIC은 나타나지 않았다.[87]
1975년 최초의 상용 개인용 컴퓨터인 Altair 8800용으로 빌 게이츠, 폴 앨런, 몬티 다비도프가 Altair BASIC을 개발했다. 1976년에는 Apple I용으로 스티브 워즈니악이 개발한 가 공급되었다. 1970년대 말부터 1980년대 초, 8비트CPU 컴퓨터에서 Tiny BASIC이 사용되기도 했다.
대부분의 제조사는 턴키 시스템에 BASIC 인터프리터를 ROM에 탑재했고, BASIC은 당시 마이크로컴퓨터의 표준 언어 지위를 획득했다. 이 BASIC 인터프리터는 대부분 마이크로소프트 제품이었으며, 이는 마이크로소프트 약진의 계기가 되었다.
1980년대 후반~1990년대 초에는 C 언어가 개인용 컴퓨터 사용자들에게 알려지면서 BASIC 대신 C 언어를 사용하는 경우가 늘어났다. 한편, 1990년대에도 수학자들은 여전히 행 번호를 사용하는 수치 계산용 BASIC (UBASIC)을 개발하고 있었다.
BASIC은 1970년대 후반~1980년대 초창기 퍼스널 컴퓨터(마이크로컴퓨터)에 탑재되어 업계 발전에 기여했다. 그러나 최초 개발자들은 BASIC을 "퍼블릭 도메인"으로 여겼고, ANSI의 표준화도 늦어지면서 방언이 난립했다.
마이크로컴퓨터와 퍼스널 컴퓨터에 표준 탑재된 BASIC은 대개 각 제조사의 기종마다 독자적인 확장이 이루어졌다. 코모도어사의 PET 2001의 Commodore BASIC과 유사한 샤프의 S-BASIC, 세가의 베이직 카트리지, 마이크로소프트 BASIC(MBASIC, BASICA, G-BASIC, GW-BASIC의 이식판)이나, 그 명령 체계를 계승한 F-BASIC, Hu-BASIC, 가타카나로 표현하는 G-BASIC, C 언어를 의식한 X-BASIC 등 다양한 BASIC이 개발되었다. 이로 인해 "어떤 PC의 BASIC으로 작성된 프로그램은 다른 PC에서 그대로 실행할 수 없다"는 문제가 발생했다.
각 기종별로 다음과 같은 독자적인 기능이 추가되었다.
초기 Tiny BASIC은 메모리 제한으로 인해 언어 사양이 극히 제한되었다.
다음과 같은 컴파일러가 존재했다.
그러나 컴파일러는 별매, 고가, 런타임 라이브러리 필요 등의 문제가 있었다. 이 때문에 BASIC 인터프리터에 숙련된 사용자는 기계어 (어셈블리 언어)나 C 언어 등으로 이행했다. 컴파일러 중에는 인터프리터와 소스 코드를 동봉한 실행 파일을 만들거나, 중간 표현과 인터프리터 구성을 가지는 경우도 있었다.
BASIC은 구조화 기능이 없어 교육에 사용하지 말라는 비판을 받기도 했다. 1975년 에츠허르 데이크스트라는 행 번호와 GOTO문을 특히 비판했다. (구조화 전) BASIC의 IF문과 GOTO문을 조합하여 사용하는 문("IF .... THEN GOTO ...")은 스파게티 코드를 유발했다. 또한 BASIC에는 지역 변수(로컬 변수)가 없고 전역 변수(글로벌 변수)만 있어 이 역시 스파게티 코드의 요인이었다.
BASIC 표준화가 요구되었지만, 마이크로컴퓨터와 개인용 컴퓨터의 급격한 보급으로 표준화는 뒷전으로 밀려났다. 각 제조사의 독자적인 확장은 이미 각 기종의 ROM에 기록되어 수정할 수 없었고, 결국 "어떤 기종의 BASIC에서도 공통적으로 사용되는 기본적인 기능"으로 축소된 소규모 사양만이 "표준"으로 제정되었다. ANSI X3.60-1978 "American National Standard for the Programming Language Minimal BASIC"은 일본에서 JIS C 6207-1982 "전자 계산기 프로그램 언어 기본 BASIC"으로 규격화되었다.
이미 많은 중요한 기능은 각 기종 BASIC의 "방언"으로 구현되어 삭제할 수 없었고, 결국 각 회사는 고도화된 기능은 방언으로 계속 구현했으며, 실제 BASIC 표준화는 실패로 끝났다.
일본에서는 1990년대 후반부터 고등학교나 대학 입시 센터 시험의 수학에서 표준화된 기본 BASIC 범위 내에서 작성된 프로그래밍이 다루어지게 되었다.
2. 1. 기원
존 G. 케메니는 다트머스 대학교 수학과 학과장이었다. 1959년, 다트머스 대학교는 알프레드 P. 슬론 재단으로부터 50만달러의 상을 받았다.[6] 토마스 E. 커츠는 1956년 다트머스 대학교 수학과에 합류했고, 1960년대부터 케메니와 커츠는 STEM 분야 외의 학생들에게도 프로그래밍 능력이 필요하다는 데 동의했다. 케메니는 "우리의 비전은 캠퍼스의 모든 학생들이 컴퓨터에 접근할 수 있어야 하고, 모든 교직원이 필요에 따라 수업에서 컴퓨터를 사용할 수 있어야 한다는 것이었습니다."라고 언급했다.
케메니와 커츠는 이전에 DARSIMCO와 DOPE (Dartmouth Oversimplified Programming Experiment)라는 간소화된 언어로 두 번의 실험을 진행했지만, 더 발전하지 못했다. Fortran과 ALGOL을 사용한 새로운 실험이 이어졌지만, 커츠는 이 언어들이 너무 복잡하다고 결론 내렸다. Fortran에는 이상하게 형성된 명령어가 많았고, 특히 루프를 지정하는 규칙이 복잡하고 기억하기 어려웠다.
당시의 기계는 배치 처리를 사용했고, 프로그램 실행을 완료하는 데 오랜 시간이 걸렸다. 케메니와 커츠는 MIT를 방문했을 때, 존 맥카시로부터 시분할이 해결책을 제공한다는 제안을 받았다. 시분할은 단일 기계가 많은 사용자들 사이에서 처리 시간을 분할하여, 사용자들에게 컴퓨터를 자신만 사용하는 것 같은 착각을 주는 방식이었다.[7] 작은 프로그램들은 몇 초 안에 결과를 반환할 수 있었다. 이는 시분할을 사용하는 시스템과 STEM 분야가 아닌 학생들이 특별히 사용할 새로운 언어에 대한 관심으로 이어졌다.
케메니는 BASIC의 첫 번째 버전을 작성했다. 약어 ''BASIC''은 토마스 커츠의 미발표 논문 이름에서 유래되었다.[8] 새로운 언어는 FORTRAN II를 많이 본떠 만들었다. 문장은 한 줄에 하나씩이었고, 숫자들은 루프와 분기의 대상을 나타내는 데 사용되었으며, 많은 명령어가 Fortran과 유사하거나 동일했다. 그러나 구문은 개선할 수 있는 곳은 모두 변경되었다. 예를 들어, 기억하기 어려운 `DO` 루프는 `FOR I = 1 TO 10 STEP 2`로 대체되었고, DO에서 사용된 줄 번호는 `NEXT I`로 대신 표시되었다. 마찬가지로, Fortran의 `IF` 문은 더 간단한 `IF I=5 THEN GOTO 100`이 되었다. 이러한 변경으로 BASIC은 전반적인 구조와 느낌은 FORTRAN과 유사하게 유지하면서도 훨씬 덜 특이하게 되었다.
이 프로젝트는 전국 과학 재단으로부터 30만달러의 보조금을 받았으며, GE-225 컴퓨터와 Teletype Model 33 전신 타자기를 처리하기 위한 Datanet-30 실시간 프로세서를 구매하는 데 사용되었다. 12명의 학부생 팀은 약 1년 동안 DTSS 시스템과 BASIC 컴파일러를 모두 작성하면서 이 프로젝트에 참여했다. 최초의 BASIC 언어 버전은 1964년 5월 1일에 출시되었다.[9][10]
초기 BASIC은 행렬 산술을 배치 언어로 구현하여 지원하고, 1965년까지 문자열 기능을 추가하여, 단순한 수학 작업을 지원하는 데 집중했다. 대학 내 사용이 급격히 증가하여 주 CPU를 GE-235로 교체해야 했고, 이후에는 GE-635로 교체했다. 1970년대 초까지 다트머스에 있는 기계에 수백 개의 터미널이 연결되었으며, 그 중 일부는 원격으로 연결되었다.
설계자들은 언어의 광범위한 사용을 원해 컴파일러를 무료로 제공했다. 그들은 또한 뉴햄프셔주, 하노버 지역과 뉴잉글랜드 전역의 고등학교에 전화 접속 회선을 통해 다트머스에 연결된 Teletype Model 33 및 Model 35 전신 타자기 터미널을 제공했으며, 언어 홍보에 상당한 노력을 기울였다. 이후 몇 년 동안, 다른 BASIC 방언이 나타나면서 케메니와 커츠의 원래 BASIC 방언은 ''다트머스 BASIC''으로 알려지게 되었다.
뉴햄프셔는 2019년에 "최초의 사용자 친화적인 프로그래밍 언어"의 탄생을 설명하는 하노버에 고속도로 역사 표지판을 세워 이러한 업적을 인정했다.[11]
2. 2. 시분할 서비스 확산
1960년대 초반, 컴퓨터 업계에서 시분할 시스템이 주류로 자리 잡으면서, 사용자들은 마치 전기나 물처럼 컴퓨터 사용 시간을 구매하는 시대가 올 것이라는 예측이 나왔다.[12]
제너럴 일렉트릭(GE)은 자체 운영체제를 개발하여 Mark I이라는 온라인 시분할 시스템을 출시했고, 베이직을 주요 판매점으로 내세웠다.[12] 다른 회사들도 빠르게 이 흐름에 합류했다. Tymshare는 1968년에 SUPER BASIC을 출시했고, CompuServe는 1969년에 DEC-10에서 베이직 버전을 제공했다. 1970년대 초에는 베이직이 범용 메인프레임 컴퓨터에서 널리 사용되었으며, IBM조차도 1973년에 VS-BASIC을 출시하며 대열에 합류했다.[13]
이러한 시분할 서비스는 한동안 성공했지만, 예상만큼 널리 퍼지지는 않았다. 같은 시기에 등장한 미니 컴퓨터와 1970년대 중반의 저가형 마이크로컴퓨터 덕분에, 사람들은 분당 요금을 내는 온라인 시간 대신 자신만의 시스템을 구매하여 운영할 수 있게 되었다.[14]
2. 3. 미니컴퓨터 확산
BASIC은 그 본질상 작기 때문에, 미니컴퓨터 시장에 자연스럽게 이식하기에 적합했다. 이러한 기기들은 현대적인 용어로 4KB 정도의 적은 주 기억 장치를 가지고 있었으며, 컴파일러를 실용적으로 만들 수 있는 하드 드라이브와 같은 고성능 저장 장치가 부족했다. 이러한 시스템에서 BASIC은 작업 메모리에 대한 요구 사항이 낮기 때문에 일반적으로 컴파일러가 아닌 인터프리터로 구현되었다.
특히 중요한 예는 HP 시분할 BASIC으로, 원래 다트머스 시스템과 마찬가지로 두 대의 컴퓨터가 함께 작동하여 시분할 시스템을 구현했다. 첫 번째는 HP 2100 시리즈의 저가형 기계로, 사용자 입력을 제어하고 프로그램을 테이프 또는 디스크에 저장하고 로드하는 데 사용되었다. 다른 하나는 동일한 기본 기계의 고급 버전으로, 프로그램을 실행하고 출력을 생성했다. 약 100000USD의 비용으로 한 번에 16명에서 32명의 사용자를 실행할 수 있는 기계를 소유할 수 있었다.[15] HP 2000으로 번들된 이 시스템은 시분할을 제공하는 최초의 미니 플랫폼이었으며 즉각적인 성공을 거두어 HP를 DEC와 DG에 이어 미니컴퓨터 분야에서 세 번째로 큰 공급업체로 만들었다.[16]
1960년대 중반부터 미니컴퓨터 분야의 선두 주자였던 DEC는 처음에 BASIC을 무시했다. 이는 BASIC과 개념적으로 매우 유사한 JOSS 언어를 실행하기 위해 PDP-6을 구매한 RAND과의 작업 때문이었다.[17] 이로 인해 DEC는 JOSS의 더 작고 정리된 버전인 FOCAL을 도입하여 1960년대 후반에 적극적으로 홍보했다. 그러나 시분할 시스템이 BASIC을 널리 제공하고, 미니컴퓨터 분야의 모든 경쟁업체도 마찬가지로 BASIC을 제공하면서 DEC의 고객들은 BASIC을 간절히 원했다. 경영진이 반복적으로 그들의 간청을 무시하자, 데이비드 H. 알은 스스로 PDP-8용 BASIC을 구입했고, 이는 교육 시장에서 큰 성공을 거두었다. 1970년대 초반까지 FOCAL과 JOSS는 잊혀졌고 BASIC은 미니컴퓨터 시장에서 거의 보편화되었다.[18] DEC는 RSTS/E 시분할 운영 체제에서 사용할 업데이트된 버전인 BASIC-PLUS를 도입했다.
이 기간 동안 간단한 수많은 텍스트 기반 게임이 BASIC으로 작성되었으며, 특히 마이크 메이필드의 ''스타 트렉''이 유명했다. 데이비드 알은 이들을 수집하여 FOCAL에서 포팅된 일부를 수집하여 그가 편집한 교육 뉴스레터에 게재했다. 그는 나중에 이 중 일부를 묶어 1973년에 출판된 책, ''101 BASIC 컴퓨터 게임''으로 묶었다.[19] 같은 기간에 알은 교육용 소형 컴퓨터, 초창기 개인용 컴퓨터의 제작에 참여했다. 경영진이 이 개념을 지원하기를 거부하자 알은 1974년에 DEC를 떠나 획기적인 컴퓨터 잡지인 ''크리에이티브 컴퓨팅''을 창간했다. 이 책은 여전히 인기를 얻었고 여러 차례 재출판되었다.[20]
2. 4. 홈 컴퓨터 시대
1970년대 중반 최초의 마이크로컴퓨터가 도입되면서 BASIC은 폭발적인 성장을 시작했다. BASIC은 작기 때문에 시분할 서비스와 함께 등장한 미니컴퓨터 시장에 이식하기 적합했다. 특히 HP 시분할 BASIC은 시분할을 제공하는 최초의 미니 플랫폼이었으며, HP를 미니컴퓨터 분야의 주요 공급업체로 만들었다.[15][16]
BASIC은 미니컴퓨터나 메인프레임에서 BASIC을 접했던 젊은 디자이너와 컴퓨터 취미가들에게 비교적 잘 알려져 있었다. 데이크스트라는 1975년에 "BASIC을 먼저 접한 학생들에게 좋은 프로그래밍을 가르치는 것은 사실상 불가능하다."라고 비판했지만,[21] BASIC은 훈련받지 않은 사람들도 사용할 수 있을 만큼 고수준이면서도 당시 마이크로컴퓨터에 맞을 만큼 작았던 몇 안 되는 언어 중 하나였으며, 초창기 마이크로컴퓨터에서 사실상 표준 프로그래밍 언어가 되었다.
최초의 마이크로컴퓨터 버전 BASIC은 빌 게이츠, 폴 앨런, 몬테 다비도프가 공동 작성했다.[22] 이 버전은 MITS에 의해 알테어 8800 출시 직후 천공 테이프 형식으로 출시되어[23] BASIC을 초창기 마이크로컴퓨터의 주요 언어로 확립했다. 홈브루 컴퓨터 클럽 회원들은 프로그램 사본을 돌려보기 시작했고, 게이츠는 이러한 초기 소프트웨어 불법 복제에 대해 불평하는 취미가들에게 보내는 공개 서한을 썼다.
밥 올브레히트는 데니스 앨리슨에게 BASIC의 축소된 버전을 설계하고 구현하도록 권유했다. 이 방법은 1975년 ''People's Computer Company'' 뉴스레터와 ''Dr. Dobb's Journal of Tiny BASIC Calisthenics & Orthodontia: Running Light Without Overbyte''에 게재되었고, 이로 인해 Tiny BASIC의 다양한 변형이 생겨났다.[24]
마이크로소프트는 MOS 6502용 인터프리터를 포팅했는데, 이 칩은 8비트 시대에 가장 인기 있는 마이크로프로세서 중 하나였다. TRS-80, 코모도어 PET, 애플 II 등 새로운 마이크로컴퓨터들이 등장하면서, MS 코드 버전을 포함하거나 빠르게 탑재한 새로운 모델을 선보였다. 1978년까지 MS BASIC은 ''사실상'' 표준이 되었고, 1980년대의 거의 모든 홈 컴퓨터가 이를 ROM에 포함했다. 부팅 시, 직접 모드의 BASIC 인터프리터가 제공되었다.
코모도어 비즈니스 머신은 마이크로소프트 BASIC을 기반으로 한 코모도어 BASIC을 포함했다. 애플 II와 TRS-80은 각각 두 가지 버전의 BASIC을 가지고 있었다. 아타리 8비트 컴퓨터는 아타리 BASIC을, 신클레어 BASIC은 ZX80과 함께 소개되었으며, BBC는 BBC BASIC을 발행했다.
당시 컴퓨터 잡지에서는 비디오 게임, 유틸리티 및 기타 프로그램에 대한 BASIC 소스 코드를 게재했다. 특히 Ahl은 ''BASIC Computer Games''라는 책을 통해 BASIC 프로그램들을 보급했다.[19][25][26] 이 책은 1978년에 출시되어 최초의 백만 부 판매 컴퓨터 서적이 되었다.
2. 4. 1. 대한민국에서의 BASIC
주어진 자료에는 대한민국에서의 베이직 보급 및 교육 현황, 한글 베이직 개발과 관련된 정보가 없다. 따라서 원본 소스만으로는 해당 섹션을 작성할 수 없다.
2. 5. IBM PC와 호환 기종
IBM은 IBM PC를 설계할 때, 내장된 BASIC 인터프리터를 갖는 기존 가정용 컴퓨터의 방식을 따랐다. 마이크로소프트에서 카세트 베이직을 가져왔다.[29] 마이크로소프트는 MS-DOS/PC DOS용으로 IBM Disk BASIC (BASIC D), IBM BASICA (BASIC A), GW-BASIC (IBM의 ROM이 필요 없는 BASICA 호환 버전), QBasic 등 여러 다른 버전의 베이직도 제작하여, 보통 PC와 함께 묶어서 제공했다.[29]
또한, 파워 유저와 취미가를 위해 마이크로소프트 퀵베이직 컴파일러(1985)를, 전문 프로그래머를 위해 Microsoft BASIC Professional Development System(PDS)을 제작했다. Turbo Pascal의 발행사인 볼랜드는 1985년에 Turbo Basic 1.0을 출시했다(후속 버전은 PowerBASIC이라는 이름으로 판매되었다).
2. 6. Visual Basic
1991년, 마이크로소프트는 퀵베이직의 발전된 형태인 Visual Basic을 출시했다. 이 언어는 "With", "For Each"와 같은 다른 언어의 객체 지향 프로그래밍 구조를 포함했다. 또한, 이전 버전과의 호환성을 유지하여, 선언을 위한 Dim 키워드, "Gosub"/Return 문, 선택적 줄 번호(오류를 찾기 위해 사용)와 같은 기능을 그대로 가지고 있었다.[55]
Visual Basic 개발의 중요한 동기는 마이크로소프트 엑셀의 새로운 매크로 언어로서의 역할이었다. 처음에는 취미용 언어로 마케팅되었지만, Visual Basic 3.0 버전이 출시된 직후 소규모 맞춤형 비즈니스 애플리케이션에 널리 사용되기 시작했다. 이 버전은 비교적 안정적인 첫 번째 버전으로 간주된다.[55]
많은 고급 프로그래머들은 Visual Basic의 사용을 비웃었지만, VB는 중소기업의 요구를 효율적으로 충족시켰다. 당시 윈도우 3.1을 실행하는 컴퓨터는 충분히 빨라져서, 대량의 데이터가 관련되지 않는 한 "느린" 언어를 사용하더라도 많은 비즈니스 관련 프로세스를 빠르게 완료할 수 있었다. 많은 중소기업 소유주들은 자신들의 특수한 요구에 맞는 작지만 유용한 애플리케이션을 몇 번의 저녁 시간만에 직접 만들 수 있다는 것을 알게 되었다. VB3의 오랜 수명 동안, Visual Basic에 대한 지식은 시장성 있는 직업 기술이 되었다.[55]
마이크로소프트는 1996년에 VBScript를, 2001년에는 Visual Basic .NET을 출시했다. Visual Basic .NET은 C# 및 자바와 본질적으로 동일한 기능을 가지고 있지만, 원래 베이직 언어를 반영하는 구문을 사용하며, Mono-Basic과 같은 구현을 통해 일부 크로스 플랫폼 기능을 제공한다.[55] IDE는 이벤트 기반 프로그래밍 GUI 빌더를 갖추고 있으며, 빠른 애플리케이션 개발 도구, 특히 보랜드 소프트웨어의 델파이 오브젝트 파스칼 및 Lazarus와 같은 자체 후속 도구에 영향을 미쳤다.[56][57]
원래 Visual Basic의 최종 버전인 6.0에 대한 주류 지원은 2005년 3월 31일에 종료되었으며, 2008년 3월에 연장 지원이 종료되었다.[58] 지속적인 인기로 인해,[59] 타사에서 추가 지원을 시도하고 있다.[60] 2017년 2월 2일, 마이크로소프트는 VB.NET 개발이 더 이상 C#과 병행되지 않을 것이라고 발표했으며,[61] 2020년 3월 11일에는 VB.NET 언어의 진화도 종료되었다고 발표했다.[62] 그럼에도 불구하고, 해당 언어는 여전히 지원되고 있다.[63]
2. 7. 1990년대 이후의 발전
1990년대 이후에도 여러 BASIC 방언들이 등장했는데, 여기에는 QBasic에서 영감을 받은 오픈 소스 QB64와 FreeBASIC이 포함된다.[4] Visual Basic 스타일로는 RapidQ, HBasic, Basic For Qt, Gambas가 있다.[4] 현대 상업용 버전으로는 PureBasic, PowerBASIC, Xojo, Monkey X, True BASIC이 있다.[4]
Small Basic과 구글의 wwwBASIC을 포함하여 여러 웹 기반 BASIC 인터프리터도 존재한다.[64] BASIC을 JavaScript로 변환하는 NS Basic 등의 컴파일러도 있다.[65]
Mobile Basic과 같은 초기 노력들을 바탕으로[66][67], 이제는 많은 방언들이 스마트폰과 태블릿에서 사용 가능하다.
2. 8. 레거시
개인용 컴퓨터에 BASIC 인터프리터가 보편화되면서 교과서에는 학생들이 교실이나 가정용 컴퓨터에서 수학 및 계산 개념을 실험하도록 장려하는 간단한 "BASIC으로 해보기" 연습 문제가 포함되기도 했다. 당시 인기 있는 컴퓨터 잡지에는 일반적으로 타입 인 프로그램이 실렸다.
미래학자이자 SF 작가인 데이비드 브린은 2006년 ''Salon'' 기사[71]에서 BASIC이 널리 사용되던 시절을 그리워했으며, 이 시기에 처음 컴퓨터를 사용했던 다른 사람들도 마찬가지였다. 이 기사는 스몰 베이직 개발 및 출시[72], Basic-256[73][74] 및 웹 기반 Quite Basic과 같은 유사한 프로젝트를 촉발했다.[75] 다트머스 대학교는 2014년 5월 1일에 BASIC 50주년 기념 행사를 개최했다.[76] BASIC의 교육적 사용은 파스칼, 자바, 특히 파이썬과 같은 다른 언어들이 따랐다.[77]
다트머스 대학교는 2014년 4월 30일에 하루 동안 BASIC 언어 50주년을 기념하는 행사를 개최했다.[78] 이 행사를 위해 짧은 다큐멘터리 영화가 제작되었다.[79]
3. 문법
BASIC은 크게 인터프리터 방식과 컴파일러 방식으로 나눌 수 있다. 또한, 구문의 형태에 따라 구조화 전 BASIC과 구조화 후 BASIC으로 나뉜다.
BASIC의 기본적인 예약어와, 스테이트먼트와 명령의 구분 (스테이트먼트는 PRINT, FOR NEXT, IF 등, 명령은 RUN, LIST, SAVE 등)은 #구조화 이전 BASIC 절에서 설명한다.
최초의 BASIC은 1964년 미국 다트머스 대학교에서 개발되었다. 다트머스 BASIC은 컴파일러였으며, 행 번호 사용 및 구문은 FORTRAN의 영향을 받았다. 개발자들은 특허를 취득하지 않아 BASIC이 널리 보급되었다. 1970년대 후반 이후 마이컴, 개인용 컴퓨터 등에서 롬(ROM)에 기록된 인터프리터 방식으로 제공되었다.
다트머스 BASIC은 1970년대 후반부터 구조화가 진행되었고, 1984년 PC용으로 개량한 True BASIC이 개발되었다. 1991년에는 Full BASIC (ISO/IEC 10279)이 규격화되었고, 1993년에는 JIS X 3003-1993으로 일본 산업 규격(JIS)에도 포함되었다.
Full BASIC의 주요 특징은 다음과 같다.
마이크로소프트는 Full BASIC 규격 제정에 참여하지 않았지만, 1985년 QuickBASIC을 출시했다. 이는 MS-DOS용 GW-BASIC 상위 호환, 컴파일러 수준 속도 향상, 컴파일 가능 등의 특징을 가졌다. 1991년 Visual Basic으로 이어졌다.
QuickBASIC 호환 자유 소프트웨어로는 QB64|큐비육사영어와 FreeBASIC이 있다.
1985년 Microsoft Windows 1.0 등장 이후, Visual Basic(VB)이 구조적 BASIC 개발 도구로 제공되었다. VB는 QuickBASIC에서 발전, RAD 방식 IDE로 생산성과 직관성이 뛰어났다.
VB는 C/C++와 함께 프로용 언어로 사용되었다. VB는 속성 등 편리한 기능, 심플한 언어 사양으로 GUI 프로그래밍에 적합했다. Delphi, C++Builder 설계에도 영향을 미쳤다.
"PC/AT 호환기와 Windows 조합" 플랫폼 일반화로, "BASIC 방언 난립" 문제가 해소되었다. Windows에서 Visual Basic이 "표준 Basic" 위치를 차지했다. 단, VB는 Windows 의존 언어, 개발 환경으로, Macintosh, Linux에서는 사용 불가했다.
VB 서브셋 VBA는 MS Office용 매크로 언어로 제공, 엔드 유저 컴퓨팅 보급, 사무 작업 효율 향상, 프로그래밍 입문에 기여했다. 그러나 VBA 매크로 악용 컴퓨터 바이러스 문제로 Office 2007 이후 기본 파일 형식에서 VBA 사용 불가, 기본적으로 비활성화되었다.
VB에서 발전한 VB.NET은 C#과 함께 등장한 현대적 객체 지향 언어, .NET Framework 환경 필요. Mono, .NET Core 이식으로 Linux, macOS에서도 사용 가능한 크로스 플랫폼 언어. Xamarin으로 Android, iOS 앱 개발 가능.[89][90]
대학에서는 구조적 BASIC 포함 BASIC 사용 감소. 플랫폼 독립적, 방언 없는 C 언어 교육 일반화. Java 등 후발 언어 보급으로 BASIC은 개발 환경 선택지 중 하나로 전락.
컴파일러 개발 시 실행 파일 외 거대 런타임 라이브러리 필요. 배포 파일 크기 증가로 기피되는 경우 존재.
VB.NET은 C#, F#에 비해 새 언어 기능 지원 늦음. 마이크로소프트는 2023년 2월 VB.NET 새 언어 구문 추가 중단, 안정성 중점 방침 발표.[91] VB.NET 지원은 계속되지만, 언어 진화는 중단.
프로그래밍 언어 인기 지표 TIOBE index|티오베 인덱스영어에서 Visual Basic은 일정 지위 유지.[92] 2021년 11월 6위.[93] RedMonk 2021년 6월 랭킹에서는 20위권 밖.[94]
일본 수학자 개발 수치 계산용 FullBASIC 십진 BASIC 존재.
구조화 프로그램 기술 위해 만들어진 프리프로세서 RATBAS. 1985년 아스키 서적 형태로 공개. 독자적 구조화 구문 -> 행 번호, GOTO 사용 ROM/Disk-Basic 변환. RATBAS는 스탠드얼론 Basic 프로그램, μ-UX 외부 명령 서브셋 버전. μ-UX는 1984년 연간 AhSKI! 게재 Disk-Basic Unix풍 운영 체제 환경 Uni+ 확장.
해외에서는 보랜드 터보 베이직 (Turbo Basic) 발매. ALGOL풍 확장.
현재한국어 BASIC에서도 객체 지향화 진행. 비주얼 베이직 .NET, REALbasic, ActiveBasic, FreeBASIC 등은 완전한 객체 지향 언어.
3. 1. 일반적인 베이직 키워드
베이직은 데이터를 조작하고, 프로그램 흐름을 제어하며, 입출력을 수행하고, 수학 함수를 계산하는 데 다양한 키워드를 사용한다.
; 데이터 조작
; 프로그램 제어 흐름
; 입출력
; 함수 목록
함수 | 설명 |
---|---|
`ABS` | 절댓값 |
`ATN` | 아크탄젠트 (라디안 반환) |
`COS` | 코사인 (라디안 사용) |
`EXP` | 지수 함수 |
`INT` | 정수 부분 (바닥 함수) |
`LOG` | 자연로그 |
`RND` | 난수 생성 |
`SIN` | 사인 (라디안 사용) |
`SQR` | 제곱근 |
`TAN` | 탄젠트 (라디안 사용) |
; 기타
- `REM`: 주석을 포함한다.
- `USR`: 기계어 서브루틴으로 제어를 전달한다.
- `CALL`: `USR`의 대체 형식. 메모리 내 다른 루틴을 호출한다.
- `TRON` / `TROFF`: 실행 시 각 줄 번호 표시를 켜고 끈다. 디버깅에 유용하다.
- `ASM`: 일부 컴파일러는 인라인 어셈블러를 지원, 고급/저급 코드를 혼합한다.
3. 1. 1. 구조화되지 않은 베이직
1970년대부터 1980년대 초반까지의 컴퓨터(마이크로컴퓨터 및 PC)에서 초보자 및 교육용 프로그래밍 언어로 널리 사용되었다. 이 시기의 베이직은 행 번호와 GOTO 문(전역 점프)을 사용했으며, 분기 및 루프에서 항상 점프 대상 행 번호를 고려해야 했다. 이러한 방식은 구조적 프로그래밍이 불가능하게 만들었다.[85]행 번호와 GOTO를 사용한 프로그래밍은 스파게티 코드를 만들기 쉬웠고, 코드 재사용성이 낮았으며, 버그를 유발하기 쉬웠다. 이 때문에 숙련된 프로그래머에게도 프로그램 디버깅 및 안전한 기능 확장이 어려웠다.[85] 이후 구조적 프로그래밍을 지원하는 파스칼과 C 언어가 등장하면서 베이직은 비판을 받았고, 실용적인 프로그래밍 용도로는 쇠퇴하였다.
다음은 구조화되지 않은 베이직의 코드 예시이다.
10 INPUT "이름을 입력하세요"; A$
20 PRINT "안녕하세요 "; A$
30 INPUT "별이 몇 개 필요하세요?"; S
40 FOR I = 1 TO S
50 S$ = S$ + "*"
55 NEXT I
60 PRINT S$
70 INPUT "별이 더 필요하세요?"; Q$
80 IF LEN(Q$) = 0 GOTO 70
90 L$ = LEFT$(Q$, 1)
100 IF (L$ = "Y") OR (L$ = "y") THEN GOTO 30
110 PRINT "안녕히 가세요";
120 FOR I = 1 TO 200
130 PRINT A$; " ";
140 NEXT I
150 PRINT
위 코드는 행 번호와 `GOTO` 문을 사용하여 프로그램의 흐름을 제어한다. 예를 들어, 80행의 `IF LEN(Q$) = 0 GOTO 70`은 `Q$`의 길이가 0이면 70행으로 이동하라는 의미이다. 100행의 `IF (L$ = "Y") OR (L$ = "y") THEN GOTO 30`은 `L$`이 "Y" 또는 "y"이면 30행으로 이동하라는 의미이다.
3. 1. 2. 구조화된 베이직
행 번호와 GOTO 문을 폐지하고 순차 실행, 선택, 반복과 같은 제어 구조를 사용하여 구조적 프로그래밍을 구현할 수 있도록 한 베이직이다. '''구조화 베이직'''이라고도 불린다.몇몇 유파에서 성립되었지만, 특히 1991 - 1993년경에 정식 규격으로 제정된 Full BASIC의 사양은 구조화가 잘 되어 있으며, 다른 점에서도 개선이 더해져 있다. 이 Full BASIC의 사양과는 호환성이 없지만, 또 다른 구조화 베이직으로서 발전을 이룬 VB을 기반으로 하여, 객체 지향에도 완벽하게 대응하는 현대적인 언어 중 하나로 VB.NET이 있다.[84]
다음은 마이크로소프트 QuickBASIC으로 작성된 예제이다.
```qbasic
REM QuickBASIC 예제
REM Forward declaration - 메인 코드가 소스 코드 뒤에 정의된
REM 서브루틴을 호출할 수 있게 합니다.
DECLARE SUB PrintSomeStars (StarCount!)
REM 메인 프로그램 시작
INPUT "이름을 입력하세요: ", UserName$
PRINT "Hello "; UserName$
DO
INPUT "별을 몇 개 원하세요: ", NumStars
CALL PrintSomeStars(NumStars)
DO
INPUT "별을 더 원하십니까? ", Answer$
LOOP UNTIL Answer$ <> ""
Answer$ = LEFT$(Answer$, 1)
LOOP WHILE UCASE$(Answer$) = "Y"
PRINT "Goodbye "; UserName$
END
REM 서브루틴 정의
SUB PrintSomeStars (StarCount)
REM 이 프로시저는 Stars$라는 지역 변수를 사용합니다.
Stars$ = STRING$(StarCount, "*")
PRINT Stars$
END SUB
3. 1. 3. 객체 지향 베이직
3세대 베이직 방언인 비주얼 베이직, Xojo, Gambas 등은 객체 지향 및 이벤트 드리븐 프로그래밍 패러다임을 지원하는 기능을 도입했다.[85] 대부분의 내장 프로시저와 함수는 더 이상 '연산자'가 아닌 표준 객체의 '메서드'로 표현된다. 또한, 운영 체제는 베이직 언어에 더욱 접근하기 쉬워졌다.다음은 Visual Basic .NET영어으로 작성된 예시이다.
```vbnet
Public Module StarsProgram
Private Function Ask(prompt As String) As String
Console.Write(prompt)
Return Console.ReadLine()
End Function
Public Sub Main()
Dim userName = Ask("What is your name: ")
Console.WriteLine("Hello {0}", userName)
Dim answer As String
Do
Dim numStars = CInt(Ask("How many stars do you want: "))
Dim stars As New String("*"c, numStars)
Console.WriteLine(stars)
Do
answer = Ask("Do you want more stars? ")
Loop Until answer <> ""
Loop While answer.StartsWith("Y", StringComparison.OrdinalIgnoreCase)
Console.WriteLine("Goodbye {0}", userName)
End Sub
End Module
```
비주얼 베이직 .NET, REALbasic 등은 객체 지향 프로그래밍을 지원하는 대표적인 베이직 언어이며, 이들은 이미 완전한 객체 지향 언어라고 할 수 있다.
3. 2. 데이터 타입과 변수
베이직의 초기 버전은 정수 변수와 한두 글자 변수명만 사용하여 메모리(RAM) 요구 사항을 최소화했다. 이후 더 강력한 버전에서는 부동소수점 연산을 지원하고, 변수 이름을 6자 이상으로 지정할 수 있게 되었다. 초기 구현에는 몇 가지 문제점이 있었다. 예를 들어, 애플소프트 베이직에서는 변수 이름의 처음 두 글자만 유효했기 때문에, "LOSS"와 "LOAN"은 같은 변수로 처리되었다. "LOAN"에 값을 할당하면 "LOSS"의 값이 덮어쓰이는 문제가 발생했다.[85] 또한, 많은 초기 베이직에서는 키워드를 변수 이름으로 사용할 수 없었다. 예를 들어, "SCORE"는 "SC" OR "E"로 해석되었으며, 여기서 OR은 키워드였다.[85] 문자열 변수는 이름 뒤에 $ 시길을 붙여 구분했으며, 값은 주로 "큰따옴표"로 묶어 표현했다.[85] 베이직의 배열은 정수, 부동 소수점, 문자열 변수를 모두 포함할 수 있었다.[85]일부 베이직 버전에서는 행렬 및 행렬 연산을 지원하여 연립 선형 대수 방정식을 쉽게 풀 수 있었다. 이러한 버전에서는 할당, 덧셈, 곱셈(호환되는 행렬 유형에 한함), 행렬식 계산과 같은 행렬 연산을 직접 지원했다. 그러나 많은 마이크로컴퓨터 베이직에서는 이러한 기능을 지원하지 않았고, 배열 요소를 직접 조작하여 행렬 연산을 구현해야 했다.[85]
4. 소프트웨어 목록
제작사 | 제품명 | 해석 방식 | 플랫폼 | 설명 |
---|---|---|---|---|
마이크로소프트 | 마이크로소프트 베이직 | 인터프리터 | ||
마이크로소프트 | 코모도어 베이직(Commodore BASIC) | 인터프리터 | ||
마이크로소프트 | 애플소프트 베이직 | 인터프리터 | ||
마이크로소프트 | MSX 베이직(MSX BASIC) | 인터프리터 | ||
마이크로소프트 | GW-BASIC | 인터프리터 | DOS | MS-DOS의 번들 |
마이크로소프트 | 퀵베이직(Quick BASIC) | 인터프리터, 컴파일러 | DOS | 컴파일러 방식 제공 |
마이크로소프트 | 큐베이직(QBasic) | 인터프리터 | DOS | MS-DOS에 번들 |
마이크로소프트 | 비주얼 베이직(Visual BASIC) | 인터프리터, 컴파일러 | Win3.1, Win98, WinXP | 자체 버전 6.0까지 지원하고 중단됨, 닷넷으로 출시됨 |
마이크로소프트 | 비주얼 베이직 닷넷(Visual Basic .NET) | 인터프리터, 컴파일러 | WinXP, Win Vista, Win7 | 비주얼스튜디오닷넷에 포함되어 출시됨 |
볼랜드 | 터보 베이직(Turbo-BASIC) | 인터프리터, 컴파일러 | DOS | |
리얼 소프트웨어 | 리얼 베이직(REALBasic) | 인터프리터, 컴파일러 | WinXP, MacOS | |
트루베이직 | 트루 베이직 | 최초 베이직 개발자인 존 케머니와 토마스 커츠 교수 개발 | ||
다크 베이직(DarkBASIC) | ||||
퓨처 베이직(FutureBASIC) | ||||
프리 베이직(FreeBASIC) | ||||
삼선에스이 | 한글 베이직 | 인터프리터 | DOS | 1991년 안철우 개발 |
[https://web.archive.org/web/20131101055827/http://www.qb64.net/ qb64] | Windows7, Linux, Mac OSX | QB4.5와 100% 호환 |
5. 예제
베이직으로 작성된 가장 기본적인 "Hello, World!" 출력 예제는 1970년대에서 1980년대에 마이크로 컴퓨터에 설치된 대부분의 베이직과 모든 ANSI/ISO 호환 베이직에서 동작한다.[83]
```text
10 PRINT "Hello, world!"
20 END
```
이러한 기종에 설치된 베이직은 줄 번호가 생략된 즉각 모드로 실행할 수도 있다. 다음 예제는 RUN 명령어가 필요없다.[83]
```text
PRINT "Hello, world!"
```
또는
```text
? "Hello, world!"
```
이후의 베이직은 구조화 프로그래밍을 지원하며 코드에서 줄 번호가 사라졌다. 다음은 현대적인 베이직의 거의 대부분에서 RUN 명령으로 실행할 수 있는 예제이다. 많은 베이직에서 End 선언문은 생략해도 된다.[83]
```text
PRINT "Hello, world!"
END
```
다음은 사용자에게 입력을 받아 별을 출력하는 예제이다.
- GW-BASIC
```text
10 INPUT "이름을 입력하세요"; A$
20 PRINT "안녕하세요 "; A$
30 INPUT "별이 몇 개 필요하세요?"; S
40 FOR I = 1 TO S
50 S$ = S$ + "*"
55 NEXT I
60 PRINT S$
70 INPUT "별이 더 필요하세요?"; Q$
80 IF LEN(Q$) = 0 GOTO 70
90 L$ = LEFT$(Q$, 1)
100 IF (L$ = "Y") OR (L$ = "y") THEN GOTO 30
110 PRINT "안녕히 가세요";
120 FOR I = 1 TO 200
130 PRINT A$; " ";
140 NEXT I
150 PRINT
```
- QBasic
```qbasic
INPUT "이름을 입력하세요."; UserName$
PRINT "안녕하세요."; UserName$
DO
INPUT "별이 몇 개 필요하세요? "; NumStars
Stars$ = ""
'Stars$ = REPEAT$("*", NumStars) '<-ANSI BASIC
Stars$ = STRING$(NumStars, "*") '<-MS BASIC
PRINT Stars$
DO
INPUT "별이 더 필요하세요(Y/N)?"; Answer$
LOOP UNTIL Answer$ <> ""
LOOP WHILE UCASE$(LEFT$(Answer$, 1)) = "Y"
PRINT "안녕히 가세요.";
FOR A = 1 TO 200
PRINT UserName$; " ";
NEXT A
```
- VB.NET
```vbnet
Class stars
Sub Main()
Dim UserName, Answer, stars As String ' UserName$, Answer$, stars$ may be used as well.
Dim NumStars, I As Integer
Console.Write("What is your name: ")
UserName = Console.ReadLine()
Console.WriteLine("Hello {0}", UserName)
Do
Console.Write("How many stars do you want: ")
NumStars = CInt(Console.ReadLine())
stars = New String("*", NumStars)
Console.WriteLine(stars)
Do
Console.Write("Do you want more stars? ")
Answer = Console.ReadLine()
Loop Until Answer <> ""
Answer = Answer.Substring(0, 1)
Loop While Answer.ToUpper() = "Y"
Console.WriteLine("Goodbye {0}", UserName)
End Sub
End Class
5. 1. Hello World
1970년대에서 1980년대에 마이크로 컴퓨터에 설치된 대부분의 베이직과 모든 ANSI/ISO 호환 베이직에서 동작하는 가장 기본적인 "Hello, World!" 출력 예제는 다음과 같다.[83]```text
10 PRINT "Hello, world!"
20 END
```
이러한 기종에 설치된 베이직은 줄 번호가 생략된 즉각 모드로 실행할 수도 있다. 다음 예제를 실행할 때에는 RUN 명령어가 필요없다.[83]
```text
PRINT "Hello, world!"
```
또는
```text
? "Hello, world!"
```
이후의 베이직은 구조화 프로그래밍을 지원하며 코드에서 줄번호가 사라졌다. 다음 예시는 현대적인 베이직의 거의 대부분에서 RUN 명령으로 실행할 수 있다. 많은 베이직에서 End 선언문은 생략해도 된다.[83]
```text
PRINT "Hello, world!"
END
5. 2. 사용자 입력 개수 만큼 별 출력
gwbasic10 INPUT "이름을 입력하세요"; A$
20 PRINT "안녕하세요 "; A$
30 INPUT "별이 몇 개 필요하세요?"; S
40 FOR I = 1 TO S
50 S$ = S$ + "*"
55 NEXT I
60 PRINT S$
70 INPUT "별이 더 필요하세요?"; Q$
80 IF LEN(Q$) = 0 GOTO 70
90 L$ = LEFT$(Q$, 1)
100 IF (L$ = "Y") OR (L$ = "y") THEN GOTO 30
110 PRINT "안녕히 가세요";
120 FOR I = 1 TO 200
130 PRINT A$; " ";
140 NEXT I
150 PRINT
```
```qbasic
INPUT "이름을 입력하세요."; UserName$
PRINT "안녕하세요."; UserName$
DO
INPUT "별이 몇 개 필요하세요? "; NumStars
Stars$ = ""
'Stars$ = REPEAT$("*", NumStars) '<-ANSI BASIC
Stars$ = STRING$(NumStars, "*") '<-MS BASIC
PRINT Stars$
DO
INPUT "별이 더 필요하세요(Y/N)?"; Answer$
LOOP UNTIL Answer$ <> ""
LOOP WHILE UCASE$(LEFT$(Answer$, 1)) = "Y"
PRINT "안녕히 가세요.";
FOR A = 1 TO 200
PRINT UserName$; " ";
NEXT A
```
```vbnet
Class stars
Sub Main()
Dim UserName, Answer, stars As String ' UserName$, Answer$, stars$ may be used as well.
Dim NumStars, I As Integer
Console.Write("What is your name: ")
UserName = Console.ReadLine()
Console.WriteLine("Hello {0}", UserName)
Do
Console.Write("How many stars do you want: ")
NumStars = CInt(Console.ReadLine())
stars = New String("*", NumStars)
Console.WriteLine(stars)
Do
Console.Write("Do you want more stars? ")
Answer = Console.ReadLine()
Loop Until Answer <> ""
Answer = Answer.Substring(0, 1)
Loop While Answer.ToUpper() = "Y"
Console.WriteLine("Goodbye {0}", UserName)
End Sub
End Class
6. 표준
베이직 언어는 여러 표준화 과정을 거쳤다. 다음은 베이직의 주요 표준들이다.
표준 | 설명 |
---|---|
ANSI X3.60-1978 ISO/IEC 6373:1984 ECMA-55 | 최소 베이직(Minimal BASIC) 표준이다. ECMA-55는 ANSI X3.60-1978과 유사하며 현재는 철회되었다. |
ANSI X3.113-1987 INCITS/ISO/IEC 10279-1991 (R2005) ECMA-116 | 풀 베이직(Full BASIC) 표준이다. ECMA-116은 ANSI X3.113-1987과 유사하며 현재는 철회되었다. |
ANSI X3.113 Interpretations-1992 ISO/IEC 10279:1991/ Amd 1:1994 | 모듈 정의 및 단일 문자 입력 기능 향상을 위한 추가 표준이다. |
참조
[1]
서적
Basic: a manual for BASIC, the elementary algebraic language designed for use with the Dartmouth Time Sharing System
http://bitsavers.tra[...]
Dartmouth College Computation Center
1963
[2]
웹사이트
VB.NET Popularity Still Rising
https://visualstudio[...]
2019-02-12
[3]
웹사이트
40 most popular programming languages 2023: When and how to use them
https://raygun.com/b[...]
2023-01-25
[4]
웹사이트
Nostalgic for VB? BASIC is anything but dead
https://www.theregis[...]
2023-03-28
[5]
웹사이트
BASIC is Not Dead. Time to Erase the Myths about Basic.
https://www.codeproj[...]
2022-11-15
[6]
간행물
High Math at Hanover
https://content.time[...]
1959-02-23
[7]
서적
A People's History of Computing in the United States
Harvard University Press
[8]
웹사이트
BASIC
http://www.catb.org/[...]
[9]
웹사이트
Thomas E. Kurtz – History of Computer Programming Languages
http://cis-alumni.or[...]
[10]
간행물
May 1, 1964: First Basic Program Runs
https://www.wired.co[...]
2008-01-05
[11]
웹사이트
Finally, a historical marker that talks about something important
https://granitegeek.[...]
2019-06-11
[12]
문서
Computer design from the programmer's viewpoint
https://www.computer[...]
[13]
간행물
IBM VS the World: That's How It Is
https://books.google[...]
1973-12-05
[14]
서적
A History of Online Information Services, 1963–1976
https://books.google[...]
MIT Press
2003-08
[15]
웹사이트
2000 Timeshare System
https://www.hpmuseum[...]
[16]
간행물
Passing the 10-year mark
http://hpmemoryproje[...]
Hewlett Packard
1976-10
[17]
간행물
The JOSS Years: Reflections on an experiment
https://www.rand.org[...]
Rand
1971-12
[18]
인터뷰
Dave Ahl and Betsy Ahl
https://computingpio[...]
2013-04
[19]
서적
101 Basic computer games
http://www.atariarch[...]
Creative Computing Press
1973
[20]
간행물
Computer Games
https://books.google[...]
1981-05-11
[21]
서적
Selected Writings on Computing: A Personal Perspective
Springer-Verlag
1975-06-18
[22]
웹사이트
The source code behind Microsoft BASIC for 6502 comes to light
https://www.computer[...]
2015-01-21
[23]
웹사이트
We have a BASIC
http://startup.nmnat[...]
New Mexico Museum of Natural History and Science
[24]
웹사이트
you had to pay $5 up front to get it…
http://www.ittybitty[...]
[25]
서적
More basic computer games
http://www.atariarch[...]
Creative Computing Press
1979
[26]
서적
Big computer games
http://www.atariarch[...]
Creative Computing Press
1984
[27]
웹사이트
Osborne 1
http://oldcomputers.[...]
[28]
서적
The BASIC Handbook
Compusoft Publishing
1981
[29]
웹사이트
Back to BASICs
http://peyre.sqweebs[...]
null
[30]
웹사이트
BASIC programming with Unix
http://www.linuxfocu[...]
2003-01-01
[31]
웹사이트
bwBASIC: The Bywater BASIC Interpreter
https://www.ossblog.[...]
2018-08-25
[32]
웹사이트
Program on FreeDOS with Bywater BASIC
https://opensource.c[...]
2021-06-23
[33]
웹사이트
Why nuBASIC
https://www.eantcal.[...]
[34]
웹사이트
MyBasic - A Custom-BASIC language interpreter written in C++
https://www.codeproj[...]
2003-10-12
[35]
웹사이트
LOGIC BASIC - Free programming language
https://www.maxissof[...]
[36]
웹사이트
yab Beginners tutorial
https://besly.de/ind[...]
2022-10-02
[37]
서적
Code Nation: Personal Computing and the Learn to Program Movement in America
ACM Books
2020
[38]
서적
The Class Of Java
https://books.google[...]
Pearson Education India
2011
[39]
웹사이트
GNE: the C programming language
http://www.fysh.org/[...]
2017-06-14
[40]
뉴스
Easy to Make Qbasic Games
https://www.techwall[...]
2023-09-30
[41]
웹사이트
QBasic Games Directory
https://games.phatco[...]
2023-09-30
[42]
웹사이트
FreeBASIC Games Directory
http://games.freebas[...]
2023-09-30
[43]
서적
Code Nation: Personal Computing and the Learn to Program Movement in America
ACM Books
2020
[44]
웹사이트
Black Annex is the best QBASIC game you've ever seen
https://www.pcworld.[...]
2013-04-16
[45]
웹사이트
The Australian Who Built A Video Game Using QBASIC
https://www.kotaku.c[...]
2013-06-24
[46]
웹사이트
Super Game System Basic
https://www.indiedb.[...]
2017-11-21
[47]
웹사이트
PlayBasic
https://playbasic.it[...]
2023-09-30
[48]
웹사이트
CoolBasic
https://www.indiedb.[...]
2005-12-06
[49]
웹사이트
AllegroBASIC Homepage
http://allegrobasic.[...]
2023-10-07
[50]
웹사이트
Ethos Game Basic 1.3
https://shareapp.net[...]
2023-09-30
[51]
웹사이트
RC Basic
https://www.moddb.co[...]
2015-08-18
[52]
웹사이트
NaaLaa
https://www.softpedi[...]
2014-08-08
[53]
웹사이트
A Closer Look At AppGameKit 2
https://gamefromscra[...]
2015-06-12
[54]
웹사이트
Cerberus X 2018-08-10 Released
https://gamefromscra[...]
2018-08-10
[55]
웹사이트
Linux breakthrough for Visual Basic developers
https://www.theregis[...]
2007-02-21
[56]
웹사이트
25 years of Delphi and no Oracle in sight: Not a Visual Basic killer but hard to kill
https://www.theregis[...]
2020-02-14
[57]
웹사이트
RAD Basic – the Visual Basic 7 that never was – releases third alpha
https://www.theregis[...]
2022-05-06
[58]
웹사이트
Product Family Life Cycle Guidelines for Visual Basic 6.0
http://msdn2.microso[...]
Msdn2.microsoft.com
2005-03-31
[59]
웹사이트
Popularity Index: Classic Visual Basic Hangs In There
https://visualstudio[...]
2020-07-07
[60]
웹사이트
Visual Basic Resurgence? Project Seeks to 'Bring the VBE into This Century!'
https://visualstudio[...]
2020-02-28
[61]
웹사이트
Viva, Visual Basic! Or, Does VB Have a Future?
https://visualstudio[...]
2017-06-13
[62]
웹사이트
Microsoft: 'We Do Not Plan to Evolve Visual Basic as a Language'
https://visualstudio[...]
2020-03-12
[63]
웹사이트
Microsoft Reaffirms Fate of Visual Basic
https://visualstudio[...]
2023-02-08
[64]
웹사이트
It's The Web, Basically
https://hackaday.com[...]
2018-09-17
[65]
웹사이트
JavaScript compilers. Part II: Languages that compile to JavaScript
https://codeavenger.[...]
2017-02-14
[66]
웹사이트
Java – What programming languages target J2ME
https://itecnote.com[...]
2023-09-30
[67]
웹사이트
LG KS 360
https://gtello.pages[...]
2007-12-15
[68]
웹사이트
Fuze Code Studio will let kids use the Switch to code their own Switch games
https://www.theverge[...]
2017-06-19
[69]
웹사이트
Now kids can get back to BASIC with Fuze
https://www.thegadge[...]
2015-12-18
[70]
웹사이트
FUZE powered by Raspberry Pi V2 review
https://www.thegadge[...]
2015-10-21
[71]
웹사이트
Why Johnny Can't Code
https://web.archive.[...]
2017-06-19
[72]
웹사이트
Small Basic
https://web.archive.[...]
2017-06-19
[73]
웹사이트
BASIC-256 homepage
https://basic256.org[...]
[74]
웹사이트
An Alphabet of Computer Languages: BASIC
https://pclosmag.com[...]
2008-10
[75]
웹사이트
Quite BASIC — Web BASIC programming
https://www.raphkost[...]
2024-02-25
[76]
뉴스
Dartmouth plans celebration for 50th anniversary of BASIC computer language
https://web.archive.[...]
2017-06-14
[77]
웹사이트
How are students learning programming in a post-Basic world?
https://www.computer[...]
2024-02-26
[78]
웹사이트
BASIC at 50 – Event Schedule
https://www.dartmout[...]
Dartmouth College
2017-06-14
[79]
웹사이트
BASIC at 50
https://www.dartmout[...]
Dartmouth College
2017-06-14
[80]
웹사이트
KeyPgAsm
http://www.freebasic[...]
2017-08-02
[81]
웹사이트
Inline x86 ASM
https://www.purebasi[...]
2017-08-02
[82]
웹사이트
Using assembly-language in your code
https://web.archive.[...]
2017-08-02
[83]
서적
Basic: a manual for BASIC, the elementary algebraic language designed for use with the Dartmouth Time Sharing System
http://bitsavers.tra[...]
Dartmouth College Computation Center
1968-01
[84]
웹사이트
Differences Between GW-BASIC and QBasic
http://support.micro[...]
2008-06-28
[85]
문서
用語検索 - ZDNET Japan
https://japan.zdnet.[...]
[86]
Youtube
YouTube Dartmouthチャンネル「Birth of BASIC」
https://www.youtube.[...]
[87]
문서
History of BASIC
https://www.q7basic.[...]
[88]
서적
マイコンピュータ No.13
CQ出版社
1984-06-01
[89]
문서
Xamarin.Forms using Visual Basic.NET - Xamarin | Microsoft Learn
https://learn.micros[...]
[90]
문서
Visual Basic in Xamarin.Android and Xamarin.iOS - Xamarin | Microsoft Learn
https://learn.micros[...]
[91]
문서
Update to the .NET language strategy - .NET Blog
https://devblogs.mic[...]
[92]
문서
TIOBE Index - TIOBE
https://www.tiobe.co[...]
[93]
문서
あの人気言語が下降傾向?Pythonは首位維持--TIOBEプログラミング言語ランキング - ZDNET Japan
https://japan.zdnet.[...]
[94]
문서
The RedMonk Programming Language Rankings: June 2021 – tecosystems
https://redmonk.com/[...]
[95]
문서
DARTMOUTH, BASIC at 50
https://www.dartmout[...]
[96]
문서
「BASICの海へ」──「MZ-80」伝説のマニュアル、シャープが公開 Twitterがきっかけ - ITmedia NEWS
https://www.itmedia.[...]
[97]
문서
microsoft/GW-BASIC: The original source code of Microsoft GW-BASIC from 1983
https://github.com/m[...]
[98]
웹사이트
About BUG - History
https://www.bug.co.j[...]
2019-11-12
[99]
문서
PasocomMini PC-8001製品情報 │ パソコンミニ公式ウェブサイト
https://www.pcmini.j[...]
[100]
문서
十進BASICのホームページ
https://decimalbasic[...]
[101]
간행물
AndroidでBASIC!で遊ぼう[改訂版]
BASIC!友の会出版
2016-11-20
관련 사건 타임라인
( 최근 20개의 뉴스만 표기 됩니다. )
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com