퓨어베이직
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
퓨어베이직은 BASIC 계열의 프로그래밍 언어이자 컴파일러로, 2000년 윈도우 버전을 시작으로 리눅스, macOS 등 다양한 운영체제를 지원한다. 간결한 문법과 네이티브 크로스 플랫폼 지원을 특징으로 하며, 콘솔, GUI, DLL 파일 컴파일을 지원한다. 셰어웨어 방식으로 제공되며, 사용자 커뮤니티를 통해 정보 공유가 이루어진다. 객체 지향 프로그래밍을 공식적으로 지원하지 않는다는 비판이 존재한다.
더 읽어볼만한 페이지
- 베이직 컴파일러 - 비주얼 베이직
비주얼 베이직은 1991년 마이크로소프트에서 출시된 GUI 기반 응용 프로그램 개발에 강점을 가진 프로그래밍 언어이며, 윈도우용 응용 프로그램 및 데이터베이스 조작 프로그램 개발에 주로 사용되었고, 2005년 표준 지원이 중단되었다. - 베이직 컴파일러 - 프리베이직
FreeBASIC은 QuickBASIC과 비슷한 문법을 가진 BASIC 프로그래밍 언어 컴파일러로, 콘솔 및 GUI 애플리케이션 생성, C 라이브러리 연동, 인라인 어셈블리, 멀티스레딩, QuickBASIC 호환성, 객체 지향 프로그래밍, 2D 그래픽 라이브러리 등을 지원한다. - 베이직 프로그래밍 언어 계열 - VB스크립트
VB스크립트는 마이크로소프트에서 개발한 스크립트 언어로, 인터넷 익스플로러의 클라이언트 스크립트 언어 및 액티브 서버 페이지의 표준 언어로 사용되었으나, 윈도우 클라이언트 지원 중단 발표로 향후 윈도우 릴리스에서 제거될 예정이다. - 베이직 프로그래밍 언어 계열 - 비주얼 베이직
비주얼 베이직은 1991년 마이크로소프트에서 출시된 GUI 기반 응용 프로그램 개발에 강점을 가진 프로그래밍 언어이며, 윈도우용 응용 프로그램 및 데이터베이스 조작 프로그램 개발에 주로 사용되었고, 2005년 표준 지원이 중단되었다. - 고급 프로그래밍 언어 - Tcl
Tcl은 존 오스터하우트가 개발한 명령어 기반의 프로그래밍 언어로, Tk 툴킷과 결합하여 GUI 스크립팅 환경으로 발전했으며, 다양한 운영체제에서 사용 가능하고 C, C++, Java 등 다른 언어와의 인터페이스를 지원한다. - 고급 프로그래밍 언어 - PHP
PHP는 라스무스 러도프가 개발한 범용 스크립팅 언어로, 웹 개발에 널리 사용되며 LAMP 아키텍처의 핵심 요소이다.
퓨어베이직 - [IT 관련 정보]에 관한 문서 | |
---|---|
기본 정보 | |
![]() | |
개요 | |
이름 | PureBasic |
패러다임 | 구조적 명령형 절차적 |
계열 | BASIC |
설계자 | Fantaisie Software |
개발자 | Fantaisie Software |
최초 출시 | 1998년 |
최신 안정화 버전 | 6.11 LTS |
최신 안정화 버전 출시일 | 2024년 6월 5일 |
라이선스 | 셰어웨어 |
웹사이트 | PureBasic 공식 웹사이트 |
기술 정보 | |
운영 체제 | 윈도우 리눅스 macOS Raspberry Pi OS AmigaOS |
파일 확장자 | .pb, .pbi, .pbf, .pbp |
지원 플랫폼 | x86/x64 ARM/ARM64 |
종류 | 프로그래밍 언어 통합 개발 환경 |
2. 역사
퓨어베이직은 2000년 9월 AmigaOS 버전(PureBasic 1.60)으로 처음 출시되었다.[1] 이후 2000년 12월에는 윈도우 버전(PureBasic 2.00)이 출시되었고,[1] 2001년 7월에는 리눅스 버전(PureBasic 2.32)이 프리뷰판으로 출시되었다.[1]
AmigaOS 버전은 사용자 감소로 인해 2002년 2월 Ver.2.90 릴리스 이후 한동안 버전 업이 이루어지지 않았다. 2006년 말에 Ver.4.00이 릴리스되었지만, 지속적인 버전 업은 어려울 것으로 예상되어 오픈 소스화되었다.[1]
2005년 10월에는 Mac OS X 버전(PureBasic 3.94)이 처음 출시되었다.[1] 2007년 11월에는 윈도우, 리눅스, Mac OS X 버전이 Ver.4.10으로 동시에 릴리스되었으며,[1] 이후 Ver.4.10부터는 모든 OS 버전이 동시에 릴리스되고 있다.[1]
2. 1. 버전별 주요 특징 및 변화
2000년 12월, 윈도우 버전(PureBasic 2.00)이 처음 출시되었다.[1] 2001년 7월, 리눅스 버전(PureBasic 2.32)이 프리뷰판으로 출시되었다.[1] 2002년 2월, AmigaOS 버전(PureBasic 2.90)이 마지막으로 릴리스되었다.[1]AmigaOS 버전은 사용자 감소로 인해 2002년 2월 23일 Ver.2.90 릴리스 이후 한동안 버전 업이 이루어지지 않았다. 2006년 말에 Ver.4.00이 릴리스되었지만, 지속적인 버전 업은 어려울 것으로 예상되어 오픈 소스화되었다. 이는 AmigaOS 버전에만 한정된 조치였다.[1]
2005년 10월, Mac OS X 버전(PureBasic 3.94)이 처음 출시되었다.[1] 2007년 11월, 모든 OS 버전(PureBasic 4.10)이 최초로 동시에 릴리스되었다.[1] 윈도우, 리눅스, Mac OS X 버전은 Ver.4.10 이후 동시에 릴리스되고 있다.[1] 2017년 3월, PureBasic 5.60 버전이 모든 OS에서 릴리스되었다.[1]
퓨어베이직은 배우기 쉽도록 간결하고 직관적인 문법을 가진 BASIC 계열의 프로그래밍 언어이다.[2] 다양한 데이터 타입을 지원하며, 사용자가 직접 구조체 타입을 정의할 수 있다. 변수는 단일 변수, 동적 배열, 연결 리스트, 연관 배열 형태로 사용할 수 있다. 인라인 어셈블러를 지원하여 FASM 명령어를 퓨어베이직 코드 내에서 처리함으로써 성능 최적화를 꾀할 수 있다.
3. 특징
자체적인 IDE에는 텍스트 편집기, 컴파일러, 디버거 등이 포함되어 있으며, 폼 디자이너(RAD)를 통해 GUI 애플리케이션을 쉽게 개발할 수 있다.[10][11][12]
퓨어베이직은 크로스 플랫폼을 지원하여, 플랫폼 고유의 애플리케이션 프로그래밍 인터페이스를 사용하지 않고 개발하면 여러 플랫폼에서 동일한 소스 파일을 거의 수정하지 않거나 전혀 수정하지 않고 사용할 수 있다.[1] 또한, 표준 시스템 라이브러리 외에 런타임 라이브러리를 필요로 하지 않는 매우 컴팩트한 실행 파일을 생성한다.[1]
1,000개 이상의 네이티브 명령어가 제공되며, 운영체제의 대부분의 API에 직접 접근할 수 있다.[1] 컴파일러는 스레드 안전을 지원하며, 브레이크 포인트를 지원하는 강력한 디버거를 갖추고 있다.[1]
데모 버전은 무료이나 기능에 제한이 있다.[1] 정식 버전은 상용이지만, 사용자 등록을 하면 모든 플랫폼용 퓨어베이직을 자유롭게 사용할 수 있고 상업적 사용도 자유로우며, 이후 버전 업그레이드는 무료이다.[1]
3. 1. 프로그래밍 언어
퓨어베이직은 BASIC 계열의 프로그래밍 언어로, 배우기 쉽도록 간결하고 직관적인 문법을 가지고 있다.[2] 퓨어베이직은 절차적 프로그래밍을 지원하며, 구조적 조건문과 루프를 사용할 수 있다. 코드 재사용성을 높이기 위해 사용자 정의 프로시저를 사용할 수 있다.
퓨어베이직 개발자인 프레드(Fred)는 퓨어베이직이 객체 지향 프로그래밍을 지원하지 않을 것이라고 밝혔다.[6] 그러나, 사용자 커뮤니티에서 객체 지향 지원 시스템을 개발하여 사용하고 있다.[7][8][9]
퓨어베이직은 다양한 데이터 타입을 지원한다. 다음은 퓨어베이직에서 지원하는 기본 데이터 타입이다.
유형 | 접미사 | 메모리 사용량 | 수치 범위 |
---|---|---|---|
바이트 | 1바이트 (8비트) | −128 ... +127 | |
아스키 | 1바이트 (8비트) | 0 ... +255 | |
문자 | 1바이트 (8비트) (아스키) | 0 ... +255 | |
워드 | 2바이트 (16비트) | −32768 ... +32767 | |
유니코드 | 2바이트 (16비트) | 0 ... +65535 | |
문자 | 2바이트 (16비트) (유니코드) | 0 ... +65535 | |
롱 | 4바이트 (32비트) | −2147483648 ... +2147483647 | |
정수 | 4바이트 (32비트) x86 | −2147483648 ... +2147483647 | |
부동 소수점 | 4바이트 (32비트) | 소수점 숫자의 비율에 따라 다름 | |
정수 | 8바이트 (64비트) x64 | −9223372036854775808 ... +9223372036854775807 | |
쿼드 | 8바이트 (64비트) | −9223372036854775808 ... +9223372036854775807 | |
배정밀도 | 8바이트 (64비트) | 소수점 숫자의 비율에 따라 다름 | |
문자열 | (문자열 길이 + 1) * SizeOf(문자) | 제한 없음 | |
고정 문자열 | (문자열 길이) * SizeOf(문자) | 제한 없음 |
기본 데이터 타입 외에도, 사용자가 직접 구조체 타입을 정의할 수 있다. 변수는 단일 변수, 동적 배열, 연결 리스트, 연관 배열 형태를 사용할 수 있다.
인라인 어셈블러를 지원하여, FASM 명령어를 퓨어베이직 코드 내에서 처리할 수 있다. 이를 통해 성능 최적화를 할 수 있다.
3. 2. 개발 환경
퓨어베이직은 자체적인 IDE을 제공하며, 여기에는 텍스트 편집기, 컴파일러, 디버거 등이 포함되어 있다. 폼 디자이너(RAD)를 통해 GUI 애플리케이션을 쉽게 개발할 수 있다.[10][11][12] 2013년 2월 14일에는 기존의 "비주얼 디자이너"가 새로운 통합 "폼 디자이너"로 대체되었다.[13]1,000개 이상의 네이티브 명령어가 제공되며, 운영체제의 대부분의 애플리케이션 프로그래밍 인터페이스에 직접 접근할 수 있다. 에디터는 프로젝트 관리를 완벽하게 지원한다. 컴파일러는 스레드 안전을 지원하며, 브레이크 포인트를 지원하는 강력한 디버거를 갖추고 있다. 이 디버거는 스텝 모드, 변수 뷰어/워처 등 BASIC 언어의 주요 제품에 공통적으로 사용되는 디버깅 기능을 제공한다. 또한, 퓨어베이직은 OGRE 3D를 통합하고 있다. Irrlicht 등 다른 3D 엔진도 비공식적으로 지원한다.
3. 3. 크로스 플랫폼 지원
퓨어베이직은 플랫폼 고유의 애플리케이션 프로그래밍 인터페이스를 사용하지 않고 개발하면, 여러 플랫폼에서 동일한 소스 파일을 거의 수정하지 않거나 전혀 수정하지 않고 사용할 수 있다.[1]3. 4. 기타 특징
퓨어베이직은 표준 시스템 라이브러리 외에 런타임 라이브러리를 필요로 하지 않는 매우 컴팩트한 실행 파일을 생성한다.[1] 인라인 어셈블러를 지원하여, 퓨어베이직에서 선언한 변수를 사용해 퓨어베이직 소스 코드 내에서 FASM 명령을 처리할 수 있다.[1] 1,000개 이상의 네이티브 명령어가 제공되며, OS의 대부분의 API에 직접 액세스할 수 있다.[1] 컴파일러는 스레드 안전을 지원하며, 브레이크 포인트를 지원하는 강력한 디버거를 갖추고 있다.[1]데모 버전은 무료로 사용할 수 있지만, 기능에 제한이 있다.[1] 정식 버전은 상용이지만, 사용자 등록을 하면 모든 플랫폼용 퓨어베이직을 자유롭게 사용할 수 있고, 상업적 사용도 자유롭다.[1] 또한, 이후 버전 업그레이드는 무료로 제공된다.[1]
4. 문법 (예제 코드)
퓨어베이직은 다양한 방법으로 "Hello World"를 출력할 수 있다.
- 다이얼로그 박스에 표시:
```purebasic
MessageRequester("샘플", "안녕 세상")
```
- 윈도우 API를 사용해 다이얼로그 박스에 표시:
```purebasic
MessageBox_(0, "안녕 세상", "샘플", 0)
```
- 윈도우를 생성해 텍스트 표시:
```purebasic
If OpenWindow(0, 0, 0, 150, 50, "샘플")
TextGadget(0, 40, 15, 100, 20, "안녕 세상")
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
```
- 콘솔에 출력:
```purebasic
OpenConsole()
PrintN("안녕 세상")
```
```blitzbasic
Procedure bubbleSort(Array a(1))
Protected i, itemCount, hasChanged
itemCount = ArraySize(a())
Repeat
hasChanged = #False
itemCount - 1
For i = 0 To itemCount
If a(i) > a(i + 1)
Swap a(i), a(i + 1)
hasChanged = #True
EndIf
Next
Until hasChanged = #False
EndProcedure
4. 1. Hello World
퓨어베이직은 다양한 방법으로 "Hello World"를 출력할 수 있다.다이얼로그 박스에 표시하는 방법은 다음과 같다.
```purebasic
MessageRequester("샘플", "안녕 세상")
```
윈도우 API를 사용하여 다이얼로그 박스에 표시할 수도 있다.
```purebasic
MessageBox_(0, "안녕 세상", "샘플", 0)
```
윈도우를 생성하여 텍스트를 표시하는 방법도 가능하다.
```purebasic
If OpenWindow(0, 0, 0, 150, 50, "샘플")
TextGadget(0, 40, 15, 100, 20, "안녕 세상")
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
4. 1. 1. 콘솔 출력
purebasicOpenConsole() ; 콘솔 창을 엽니다.
Print("Hello, World!")
Delay(5000) ; 5초 동안 일시 중지합니다.
```
- 콘솔 화면에 표시하는 예제이다.
```purebasic
OpenConsole()
PrintN("안녕 세상")
4. 1. 2. 메시지 상자 출력
퓨어베이직 코드로 작성된 다음 한 줄짜리 코드는 텍스트 "Hello World"를 표시하는 메시지 상자를 생성하는 독립 실행형 x86 실행 파일(윈도우 버전에서 46,080억)을 만든다.```purebasic
MessageRequester("Message Box", "Hello World")
```
선언이나 다른 외부 참조 없이 인라인 윈도우 API 호출을 대신 사용하는 동일한 코드의 다음 변형은 윈도우용으로 훨씬 더 작은 20,480억 독립 실행형 x86 실행 파일을 생성한다.
```purebasic
MessageBox_(0, "Hello World", "Message Box", 0)
```
다음은 Hello World 예제의 콘솔 버전이다.
```purebasic
OpenConsole() ; 콘솔 창을 엽니다.
Print("Hello, World!")
Delay(5000) ; 5초 동안 일시 중지합니다.
```
- 콘솔 화면에 표시
```purebasic
OpenConsole()
PrintN("안녕 세상")
```
- 퓨어베이직의 명령어로 다이얼로그 박스에 표시
```purebasic
MessageRequester("샘플", "안녕 세상")
```
- 인라인으로 윈도우 API를 사용하여 다이얼로그 박스에 표시
```purebasic
MessageBox_(0, "안녕 세상", "샘플", 0)
4. 1. 3. 윈도우 API 사용
퓨어베이직은 인라인 윈도우 API 호출을 지원하여, 별도의 선언이나 외부 참조 없이 윈도우 API 함수를 직접 사용할 수 있다. 다음은 퓨어베이직 코드로 작성된 한 줄짜리 코드이며, "Hello World" 텍스트를 표시하는 메시지 상자를 생성하는 독립 실행형 x86 실행 파일을 만든다. 이 코드는 윈도우 버전에서 (2,048 바이트) 크기의 실행 파일을 생성한다.```purebasic
MessageBox_(0, "Hello World", "Message Box", 0)
4. 1. 4. 윈도우에 텍스트 출력
purebasicIf OpenWindow(0, 0, 0, 150, 50, "샘플")
TextGadget(0, 40, 15, 100, 20, "안녕 세상")
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
```
이 코드는 퓨어베이직에서 윈도우를 생성하고 그 안에 텍스트를 출력하는 예제이다.
- `OpenWindow(0, 0, 0, 150, 50, "샘플")`: "샘플"이라는 제목의 윈도우를 생성한다. (크기: 150x50 픽셀)
- `TextGadget(0, 40, 15, 100, 20, "안녕 세상")`: 생성된 윈도우에 "안녕 세상"이라는 텍스트를 표시한다.
- `Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow`: 윈도우가 닫힐 때까지 프로그램을 실행 상태로 유지한다.
4. 2. 배열 정렬 (버블 정렬)
다음은 배열 정렬을 위한 샘플 프로시저이다. 현재 SortArray는 퓨어베이직의 내장 함수이다.[1]```blitzbasic
Procedure bubbleSort(Array a(1))
Protected i, itemCount, hasChanged
itemCount = ArraySize(a())
Repeat
hasChanged = #False
itemCount - 1
For i = 0 To itemCount
If a(i) > a(i + 1)
Swap a(i), a(i + 1)
hasChanged = #True
EndIf
Next
Until hasChanged = #False
EndProcedure
5. 3D 그래픽스 지원
퓨어베이직은 OGRE 3D를 통합하고 있다.[1] Irrlicht 등 다른 3D 엔진도 비공식적으로 지원한다.[1]
6. 사용자 커뮤니티
퓨어베이직은 사용자들이 질문을 하고 지식을 공유할 수 있는 온라인 포럼을 제공한다. 2013년 5월 6일 기준, 영어 포럼에는 4,769명의 회원이 있었고, 2002년 5월 17일 이후 44,043개의 스레드에 372,200개의 게시물이 작성되었다.[14]
수많은 코드 공유 사이트에서 퓨어베이직이 도구[15]와 게임을 빠르고 쉽게 제작하는 데 사용되며,[16] 방대한 양의 오픈 소스 코드를 공유한다는 것을 보여준다.[17]
7. 비판
퓨어베이직 개발자 프레드(Fred)는 퓨어베이직이 객체 지향이 되지 않을 것이라고 밝혔다.[6] 그러나 수많은 사용자가 객체 지향 지원 시스템을 만들었다.[7][8][9]
참조
[1]
웹사이트
FAQ lifetime licence details
http://www.purebasic[...]
[2]
웹사이트
PureBasic home page
http://www.purebasic[...]
[3]
웹사이트
PureBasic - Console
http://www.purebasic[...]
[4]
웹사이트
PureBasic - Gadget
http://www.purebasic[...]
[5]
웹사이트
Building a DLL
http://www.purebasic[...]
[6]
웹사이트
PureBasic won't be object oriented
http://www.purebasic[...]
[7]
웹사이트
PureObject: PureBasic OOP support
http://www.purebasic[...]
[8]
웹사이트
OOP tutorial
http://www.purebasic[...]
[9]
웹사이트
Another OOP PreCompiler
http://www.purebasic[...]
[10]
웹사이트
PureVision
http://purevision.re[...]
[11]
웹사이트
ProGUI
http://www.progui.co[...]
[12]
웹사이트
PureFORM
http://gnozal.ucoz.c[...]
[13]
웹사이트
PureBasic 5.10 is released
http://www.purebasic[...]
[14]
웹사이트
English forum
http://www.purebasic[...]
[15]
웹사이트
Horst Schaeffer's Software Pages
http://www.horstmuc.[...]
[16]
웹사이트
PureArea
http://www.purearea.[...]
[17]
웹사이트
Andre Beer's code archive.
http://www.purearea.[...]
[18]
웹사이트
PureBasic - Lastest News
https://www.purebasi[...]
[19]
웹사이트
PureBasic - Download free version of PureBasic
https://www.purebasi[...]
[20]
웹사이트
FAQ
http://www.purebasic[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com