맨위로가기

퓨어베이직

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의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 VD
PureBasic Visual Designer, 지원하는 인기있는 GUI 구성 요소 선택을 보여줌.
개요
이름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]

주요 릴리스 이력[1]
제품 버전OS릴리스 날짜비고
PureBasic 1.60AmigaOS2000년 9월 9일
PureBasic 2.00Windows2000년 12월 17일Windows 버전 첫 릴리스
PureBasic 2.00AmigaOS2001년 1월 18일
PureBasic 2.32Linux2001년 7월 8일Linux 버전 첫 릴리스 (프리뷰판)
PureBasic 2.90AmigaOS2002년 2월 23일
PureBasic 3.00Windows2002년 4월 4일
PureBasic 3.30Linux2002년 9월 22일
PureBasic 3.94Mac OS X2005년 10월 5일Mac OS X 버전 첫 릴리스
PureBasic 4.00Windows2006년 5월 8일
PureBasic 4.00AmigaOS2006년 12월 10일오픈 소스화
PureBasic 4.00Linux2007년 4월 15일
PureBasic 4.10모든 OS2007년 11월 9일최초의 모든 OS 일제 릴리스
PureBasic 4.20모든 OS2008년 5월 23일
PureBasic 4.30모든 OS2008년 12월 16일
PureBasic 4.40모든 OS2009년 12월 1일
PureBasic 4.41모든 OS2010년 2월 1일
PureBasic 4.50모든 OS2010년 6월 7일
PureBasic 4.51모든 OS2010년 9월 8일
PureBasic 4.60모든 OS2011년 11월 7일
PureBasic 5.00모든 OS2012년 11월 5일
PureBasic 5.31모든 OS2014년 10월 27일
PureBasic 5.60모든 OS2017년 3월 2일


3. 특징

퓨어베이직은 배우기 쉽도록 간결하고 직관적인 문법을 가진 BASIC 계열의 프로그래밍 언어이다.[2] 다양한 데이터 타입을 지원하며, 사용자가 직접 구조체 타입을 정의할 수 있다. 변수는 단일 변수, 동적 배열, 연결 리스트, 연관 배열 형태로 사용할 수 있다. 인라인 어셈블러를 지원하여 FASM 명령어를 퓨어베이직 코드 내에서 처리함으로써 성능 최적화를 꾀할 수 있다.

자체적인 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("샘플", "안녕 세상")

```
```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("안녕 세상")

```

  • 배열 정렬 (버블 정렬) 예제:[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

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. 콘솔 출력

purebasic

OpenConsole() ; 콘솔 창을 엽니다.

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. 윈도우에 텍스트 출력

purebasic

If 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