QB64

QB64
QB64
The QB64 logo
개발자Rob Galleon, QB64팀
처음 등장한2007년 9월 8일, 14년 전(2007-09-08)
안정된 릴리스
2.0.2 / 2021년 11월 7일, 8개월 전(2021-11-07)
OSMicrosoft Windows, Linux, macOS
면허증.MIT
웹 사이트www.qb64.com
영향을 받다
QuickBASIC, QBASIC

QB64(원래 QB32)[1]는 Microsoft Windows, LinuxMac OS X용 셀프 호스팅 BASIC 컴파일러로 Microsoft QBasicQuickBASIC과 호환되도록 설계되었습니다.QB64는 C++ 이미터이며 C++ 컴파일러와 통합되어 C++ 코드와 GCC [2]최적화를 통해 컴파일을 제공합니다.

QB64는 대부분의 QBasic 문을 구현하며 마이크로소프트의 QBasic GorillaNibbles [3]게임을 포함한 많은 QBasic 프로그램을 실행할 수 있습니다.또한 QB64는 QBASIC IDE와 유사한 IDE를 포함하도록 설계되어 있습니다.QB64는 QBASIC 프로그래밍 언어를 확장하여 64비트 데이터 유형을 포함하며 사운드 및 그래픽 지원도 향상되었습니다.또, INT 33h 마우스 액세스나 멀티 타이머등의 DOS/x86 고유의 기능도 에뮬레이트 할 수 있습니다.

버전 2.0 이후 QB64는 새로운 $DEBUG 메타 [4]커맨드를 사용하여 디버깅 기능을 제공합니다.

역사

QB64는 원래 QuickB를 사용하여 컴파일되었습니다.ASIC 4.5. 상당한 개발 후 개발자인 Rob Galleon은 QuickB에 의해 방해받게 되었습니다.ASIC의 메모리 한계로 인해 Microsoft Basic PDS 7.1로 전환되어 [5]단기간에 이러한 문제를 해결했습니다.버전 0.63 이후 QB64는 자신을 컴파일할 있게 되어 기존의 메모리 제한이 더 이상 적용되지 않게 되었습니다.

QB64의 추진력에 대해 Galleon은 다음과 같이 말했습니다.[6]

VISTA의 도입이 QBASIC을 무력화시키고 컴퓨터의 최신 기능을 거의 이용할 수 없는 에뮬레이터에서만 실행할 수 있는 고대 언어로 바뀌게 될 것이 분명해졌을 때 QB64의 필요성을 인식하기 시작했습니다.QB64의 실제 코딩은 올해 초부터 시작되었으며 QB64는 그 이후로 꾸준히 발전하고 있다.저는 프로그래밍 언어를 써본 경험이 있기 때문에 앞으로 닥칠 도전을 미리 알고 있었습니다.

구문

QB64의 구문은 QuickBASIC과 완전히 하위 호환되도록 설계되었습니다.행번호는 필수가 아닙니다.은 줄바꿈으로 끝납니다.콜론으로 구분됩니다.:).

예를 들어 "Hello, World!" 프로그램은 다음과 같습니다.

인쇄하다 "안녕, 월드!" 

호환성을 위해 QB64가 VGA 메모리를 에뮬레이션한 예를 다음에 나타냅니다.

CLS S$ = "안녕, 월드!" 디프세그 = &HB800 세그먼트를 비디오 메모리로 설정합니다. 위해서 I = 1 로. (S$)     쿡쿡 찌르다 160 + (I - 1) * 2, ASC(MID$(S$, I, 1))'캐릭터 다음 분. 디프세그 세그먼트를 디폴트로 되돌리다 

QB64가 오디오파일을 허용하는 예를 다음에 나타냅니다.

효과음 = _SNDOPEN("sound.disples") 'WAV, OGG 또는 MP3' _SNDPLAY 효과음 

QB64에서 사진 파일을 허용하는 방법의 예를 다음에 나타냅니다.

화면. _새로운 이미지(800, 600, 32) '32비트 화면 표시 이미지 이름 & = _로드이미지("image_name.png") 'BMP, JPG, PNG 등' _PUTIMAGE (0, 0), 이미지 이름 & _프리이미지 이미지 이름 & '릴리스 할당된 메모리 

QB64가 여러 타이머를 사용하는 예를 다음에 나타냅니다.

t1 = 프리티머 t2 = 프리티머 온타이머(t1, 1) GOSUB 타이머.트랩 '타이머 뒤에 있는 코드'트랩 라벨은 1초마다 실행됩니다.  온타이머(t2, .5) 마이서브 'QB64는 타이머로 SUB 절차를 트리거할 수도 있습니다; 이 경우 mySUB는 500밀리초마다 트리거됩니다.  '타이머: 타이머(t1)  타이머(t2)   하다 '창문이 닫힐 때까지 무한 루프 상태가 된다'     _제한 1 메인 루프를 초당 1 사이클로 실행하여 타이머가 메인 프로그램 흐름으로부터 어떻게 독립되어 있는지 보여줍니다. 고리  타이머.트랩: 인쇄하다 "1s;"; 돌아가다  후보선수 마이서브     인쇄하다 "500ms;; 끝. 후보선수 

QBAS의 확장IC

QB64 확장 명령어는 QuickB에서 사용할 수 있는 이름과의 경합을 피하기 위해 밑줄로 시작합니다.ASIC 프로그램버전 1.4 이후에서는 메타 코맨드를 사용하여 언더 스코어 프리픽스를 폐기할 수 있습니다.$NOPREFIX.[7] QB64는 QuickB를 확장합니다.ASIC 언어에는 여러 가지 방법이 있습니다.다음과 같은 새로운 데이터 유형을 추가합니다._BIT,_BYTE,_INTEGER64그리고._FLOAT서명되지 않은 데이터 유형도 포함합니다.새로운 데이터 유형에는 기존의 BASIC 데이터 유형과 마찬가지로 접미사가 붙습니다.QB64에는 MP3, Ogg Vorbis, WAV 파일 등 가장 일반적인 오디오 포맷을 재생할 수 있는 오디오 라이브러리와 QuickB가 제공하는 640×480보다 고해상도 그래픽을 사용할 수 있는 라이브러리도 포함되어 있습니다.ASIC,[8] 다른 글꼴을 사용하여 이미지를 BMP, PNG JPEG 형식으로 플롯합니다.또, 당초 제공되고 있던 256(또는 16)의 한정 색상에서 32비트 색상의 사용을 가능하게 합니다.또한 QB64는 자동으로 포함되므로 프로그래머는 포함할 프로그래밍 라이브러리를 지정할 필요가 없습니다.프로그래머는 QuickB와 마찬가지 $INCLUDE 명령을 통해 자체 라이브러리를 포함할 수 있습니다.ASIC이 했어요.

추가된 또 다른 중요한 기능은 네트워킹입니다.처음에는 입력 번호/인쇄 # 명령을 사용하여 읽고 쓸 수 있는 TCP/IP 스트림을 열 수 있었습니다.이 모드에는 독자적인 패킷캡슐화 형식이 있어 QBasic에서는 사용하기 쉽지만 어플리케이션용으로 특별히 작성된 커스텀인터페이스와 다른 QB64 프로그램 또는 서버 백엔드와의 통신에만 사용할 수 있습니다.이후 버전에서는 스트림에서 원시 바이트를 읽고 쓰기 위해 GET#PUT#추가합니다.이를 통해 smtp 및 http와 같은 표준 프로토콜을 기본적으로 구현할 수 있습니다.

QB64의 장점

  • 다양한 파일 형식을 지원하고 클립보드 액세스도 제공합니다.
  • QB64는 32비트 그래픽스 파일(가장 일반적인 형식)에 즉시 액세스할 수 있습니다.
  • QB64는 여러 오디오 형식에 즉시 액세스할 수 있습니다.
  • 대부분의 최신 운영 체제에서 지원되므로 에뮬레이션이 필요하지 않습니다.

라이브러리

QB64에는 그래픽과 텍스트용으로 FreeGLUT가 통합되어 있습니다.

GitHub에서 호스팅되는 저장소의 개발 브랜치는 수정과 개선으로 자주 업데이트되며, 이는 결국 다음 안정적인 릴리스가 될 것이다.개발 빌드는 베타 테스트를 위해 공식 웹사이트를 통해서도 제공됩니다.

QB64는 DLL 라이브러리와 DECLARBY 블록을 사용하여 Windows 및 C++ 헤더용 DLL 라이브러리를 사용할 수도 있습니다.사용자는 C 헤더 파일에 액세스하여 C 기능을 실행할 수도 있습니다.

포크

2022년 커뮤니티의 개편으로 QB64 프로젝트의 포크가 최소 2개 이상 생겼습니다."QB64 Team" Github 저장소는 더 이상 활성화되지 않으며, 모든 새로운 개발이 새로운 포크로 이루어지고 있습니다.

  • QB64 팀은 2022년 4월까지 권위 있는 버전이었다.
  • QB64 공식 이전 개발자와 신규 개발자가 혼재하여 개발을 재개했습니다.
  • QB64 Phoenix (메인 사이트) (Github)"Phoenix" 포크는 2022년 개편 이후 이 프로젝트를 부활시키기 위해 만들어졌다.

레퍼런스

  1. ^ Stephane Richard (2007-11-16). "In The News". PCOPY! Issue #50. Basic Programming. Archived from the original on 2009-12-21. Retrieved 2008-08-17.
  2. ^ E.K.Virtanen (2008-05-26). "Interview With Galleon". PCOPY! Issue #70. Basic Programming. Archived from the original on 2008-08-21. Retrieved 2008-07-14.
  3. ^ "QB64 Screenshots - QB64/QBASIC Gorillas in QB64". Archived from the original on 2013-05-12. Retrieved 2010-07-27.
  4. ^ "Changelog for v2.0 – QB64.org". www.qb64.org. Archived from the original on 2021-10-10.
  5. ^ "More BUGS please! (Seriously)".
  6. ^ "Welcome to the QB64 Forum!". THE QBASIC FORUM. Retrieved 2020-01-28.
  7. ^ "Changelog for v1.4 – QB64.org". www.qb64.org. Archived from the original on 2020-02-13.
  8. ^ "QB Advisor: Screen Modes 11, 12, and 13". Microsoft Corporation. 1988. Archived from the original on 2009-01-05. Retrieved 2008-07-25.

외부 링크