QB64
QB64| 개발자 | Rob Galleon, QB64팀 |
|---|---|
| 처음 등장한 | 2007년 9월 8일, 전( |
| 안정된 릴리스 | 2.0.2 / 2021년 11월 , 전( |
| OS | Microsoft Windows, Linux, macOS |
| 면허증. | MIT |
| 웹 사이트 | www |
| 영향을 받다 | |
| QuickBASIC, QBASIC | |
QB64(원래 QB32)[1]는 Microsoft Windows, Linux 및 Mac OS X용 셀프 호스팅 BASIC 컴파일러로 Microsoft QBasic 및 QuickBASIC과 호환되도록 설계되었습니다.QB64는 C++ 이미터이며 C++ 컴파일러와 통합되어 C++ 코드와 GCC [2]최적화를 통해 컴파일을 제공합니다.
QB64는 대부분의 QBasic 문을 구현하며 마이크로소프트의 QBasic Gorilla 및 Nibbles [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년 개편 이후 이 프로젝트를 부활시키기 위해 만들어졌다.
레퍼런스
- ^ 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.
- ^ 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.
- ^ "QB64 Screenshots - QB64/QBASIC Gorillas in QB64". Archived from the original on 2013-05-12. Retrieved 2010-07-27.
- ^ "Changelog for v2.0 – QB64.org". www.qb64.org. Archived from the original on 2021-10-10.
- ^ "More BUGS please! (Seriously)".
- ^ "Welcome to the QB64 Forum!". THE QBASIC FORUM. Retrieved 2020-01-28.
- ^ "Changelog for v1.4 – QB64.org". www.qb64.org. Archived from the original on 2020-02-13.
- ^ "QB Advisor: Screen Modes 11, 12, and 13". Microsoft Corporation. 1988. Archived from the original on 2009-01-05. Retrieved 2008-07-25.