프리베이직
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
프리베이직(FreeBASIC)은 GNU Binutils를 사용하여 콘솔 및 GUI 애플리케이션을 생성하는 BASIC 계열의 프로그래밍 언어이다. C, C++ 라이브러리를 지원하며, C 스타일 전처리기, 매크로, 조건부 컴파일 등을 제공한다. 초기에는 Microsoft QuickBASIC 구문을 에뮬레이션하여 호환성을 유지하면서 객체, 연산자 오버로딩, 네임스페이스 등 현대적인 기능을 지원한다. FBgfx를 통해 QuickBASIC 호환 그래픽 지원을 제공하며, OpenGL 또는 DirectX를 백엔드로 사용한다. fb, fb-lite, qb의 세 가지 언어 방언을 지원하며, GNU 컴파일러 컬렉션의 프런트 엔드가 되는 것을 목표로 개발이 진행 중이다.
더 읽어볼만한 페이지
- 베이직 컴파일러 - 비주얼 베이직
비주얼 베이직은 1991년 마이크로소프트에서 출시된 GUI 기반 응용 프로그램 개발에 강점을 가진 프로그래밍 언어이며, 윈도우용 응용 프로그램 및 데이터베이스 조작 프로그램 개발에 주로 사용되었고, 2005년 표준 지원이 중단되었다. - 베이직 컴파일러 - 퀵베이직
퀵베이직은 마이크로소프트에서 개발한 BASIC 프로그래밍 언어로, 통합 개발 환경을 통해 코드 편집과 디버깅을 지원하며, 현재는 취미 프로그래머 커뮤니티에서 활용되고 빈티지 컴퓨터에서도 사용된다. - 베이직 프로그래밍 언어 계열 - VB스크립트
VB스크립트는 마이크로소프트에서 개발한 스크립트 언어로, 인터넷 익스플로러의 클라이언트 스크립트 언어 및 액티브 서버 페이지의 표준 언어로 사용되었으나, 윈도우 클라이언트 지원 중단 발표로 향후 윈도우 릴리스에서 제거될 예정이다. - 베이직 프로그래밍 언어 계열 - 비주얼 베이직
비주얼 베이직은 1991년 마이크로소프트에서 출시된 GUI 기반 응용 프로그램 개발에 강점을 가진 프로그래밍 언어이며, 윈도우용 응용 프로그램 및 데이터베이스 조작 프로그램 개발에 주로 사용되었고, 2005년 표준 지원이 중단되었다. - 도스 소프트웨어 - 터보 파스칼
필립 칸이 개발하고 안데르스 헤일스베르그가 기반을 다진 터보 파스칼은 저렴한 가격, 빠른 컴파일, 사용하기 쉬운 IDE를 특징으로 1980년대 PC 프로그래밍에 혁신을 가져왔으며, 여러 기능 추가를 거쳐 델파이 등장 후 레거시 기술이 되었고 일부 버전은 프리웨어로 배포된다. - 도스 소프트웨어 - 한/글
한/글은 1980년대 후반부터 개발된 대한민국의 대표적인 워드프로세서로, 다양한 운영체제 지원, 정부 전자 문서 시스템에서의 역할, 꾸준한 기능 발전과 사용자 편의성 및 국제 표준을 고려한 업데이트를 통해 발전해왔다.
프리베이직 - [IT 관련 정보]에 관한 문서 | |
---|---|
기본 정보 | |
이름 | FreeBASIC |
![]() | |
![]() | |
웹사이트 | FreeBASIC 공식 웹사이트 |
개발 | |
설계자 | Andre Victor |
개발자 | FreeBASIC 개발팀 |
첫 공개 년도 | 2004년 |
최신 버전 | 1.10.1 |
최신 릴리스 날짜 | 2023년 12월 25일 |
특징 | |
프로그래밍 패러다임 | 절차적 프로그래밍 객체 지향 프로그래밍 |
타이핑 | 정적 |
영향 받은 언어 | QuickBASIC C |
운영 체제 | MS-DOS FreeBSD 리눅스 마이크로소프트 윈도우 |
라이선스 | |
라이선스 | GNU GPLv2+ GNU LGPLv2+ 표준 라이브러리 |
2. Compiler features
GNU Binutils를 백엔드로 사용하여 콘솔 및 그래픽 사용자 인터페이스 애플리케이션을 생성한다. C 정적 및 동적 라이브러리 연결 및 생성을 지원하며, C++ 라이브러리에 대한 제한적인 지원도 제공한다. 따라서 FreeBASIC에서 컴파일된 코드는 대부분의 네이티브 개발 환경에서 재사용할 수 있다.
최적화 컴파일러는 아니지만, 선택적으로 C로 트랜스파일하여 최적화와 함께 컴파일할 수 있다. 인라인 어셈블리, 멀티스레딩을 지원하며, 자동 가비지 수집은 사용하지 않는다.
C 스타일 전처리, 다중 행 매크로, 조건부 컴파일 및 파일 포함이 지원된다. 전처리기는 또한 언어 방언과 같은 기호 정보 및 컴파일러 설정에 접근할 수 있다.
2. 1. Syntax
FreeBASIC은 QuickBASIC 구문을 최대한 가깝게 에뮬레이션하며, 지속적인 발전을 통해 객체, 연산자 오버로딩, 함수 오버로딩, 네임스페이스 등과 같은 현대적인 기능도 지원한다.[5][6]줄 바꿈 문자는 문장의 끝을 나타내며, 밑줄(_)을 사용하여 문장을 여러 줄에 분산시킬 수 있다. 콜론(:)으로 각 문을 구분하여 여러 문장을 한 줄에 쓸 수도 있다.
주석은 블록 주석과 줄 끝 주석을 모두 지원한다. 아포스트로피(')는 줄 끝 주석에 사용되고, /'와 '/는 블록 주석에 사용된다.
FreeBASIC은 대소문자를 구분하지 않으며, BASIC, 특히 QuickBASIC과 유사한 구문을 따른다. 동시에 최신 코딩 기술을 도입하여 표준 절차적 프로그래밍 기능 외에도 객체 지향적인 데이터 형식이나 객체 개념을 통해 연산자 및 함수의 오버로드, 네임스페이스와 같은 기능을 추가했다.
FreeBASIC에서 행의 끝은 개행 코드 또는 콜론으로 나타낸다. 따라서 C 언어의 세미콜론과 같은 특별한 행 끝 기호는 필수가 아니다. 여러 줄의 코드를 작성하는 경우, 개행하기 전에 콜론으로 구분한다.
주석은 행 단위 주석과 블록 단위 주석이 있으며, 행 단위 주석은 작은따옴표(')로 시작하고, 블록 주석은 /'로 시작하여 '/로 끝난다. 블록 주석은 중간에 개행 코드가 있어도 된다.
2. 2. Graphics library
FreeBASIC은 `SCREEN` 명령을 호출하는 프로그램에 자동으로 포함되는 FBgfx를 통해 내장된 QuickBASIC 호환 그래픽 지원을 제공한다.[1] 백엔드는 기본적으로 리눅스에서는 OpenGL을, 마이크로소프트 윈도우에서는 DirectX를 사용한다.[1] 이러한 추상화 덕분에 FBgfx 그래픽 코드는 크로스 플랫폼 호환이 가능하다.[1] 하지만, FBgfx는 하드웨어 가속을 지원하지 않는다.[1]OpenGL 또는 Windows API와 같은 외부 그래픽 유틸리티에 익숙한 사용자는 내장 그래픽 라이브러리를 방해하지 않고 사용할 수 있다.[2] FreeBASIC에는 QuickBASIC 호환의 내장 2차원 그래픽스 라이브러리가 있으며, 기본적인 그리기(사각형, 직선, 원 등) 및 BitBlt가 가능하며, 동시에 QuickBASIC에는 없었던 기능도 추가되었다.[3] 라이브러리 자체는 OS에 독립적이며, 코드는 이식성이 있다.[3]
그래픽스 라이브러리는 내장이지만, FBgfx ''Screen'' 명령을 사용하여 사용을 선언하지 않으면 사용할 수 없다.[4] OpenGL 및 플랫폼의 GUI에 따른 윈도우 생성은 별도 라이브러리로 존재한다.[4]
2. 3. Language dialects
FreeBASIC은 이전 스타일의 구문을 깨뜨려야 하는 변경 사항이 있었다. 이전 구문을 사용하여 작성된 프로그램을 계속 지원하기 위해 FreeBASIC은 다음과 같은 방언(dialect)을 지원한다.- 기본 방언 ('-lang fb'): 모든 새로운 컴파일러 기능을 지원하며 구식 구문은 허용하지 않는다.
- FB-lite 방언 ('-lang fblite'): 이전 스타일의 프로그래밍 외에도 대부분의 새로운 객체 지향이 아닌 기능의 사용을 허용한다. 암시적 변수, 접미사, `GOSUB` / `RETURN`, 숫자 레이블 및 기타 기능이 이 방언에서 허용된다.
- QB 방언 ('-lang qb'): QuickBASIC 동작을 복제하려고 시도하며 수정 없이 많은 QuickBASIC 프로그램을 컴파일할 수 있다.
`-lang` 옵션을 통해 방언을 설정할 수 있다.
- `-lang fb`: FreeBASIC의 최신 기능을 모두 사용할 수 있다.
- `-lang deprecated`: 이전 버전의 FreeBASIC과 호환되는 구문을 사용할 수 있다.
- `-lang qb`: 가능한 한 QuickBASIC 호환 구문을 사용할 수 있다. QuickBASIC과의 호환성을 손상시키는 새로운 기능은 사용할 수 없다.
3. 예시 코드
vbnet
Print "Hello, World!"
sleep:end '주석, 프로그램 창이 즉시 닫히는 것을 방지합니다.
```
표준 프로그램인 "Hello, World!" 프로그램은 QuickBASIC과 마찬가지로 수행된다.
```vbnet
Type Vector
Private:
x As Integer
y As Integer
Public:
Declare Constructor (nX As Integer = 0, nY As Integer = 0)
Declare Property getX As Integer
Declare Property getY As Integer
End Type
Constructor Vector (nX As Integer, nY As Integer)
x = nX
y = nY
End Constructor
Property Vector.getX As Integer
Return x
End Property
Property Vector.getY As Integer
Return y
End Property
```
FreeBASIC은 객체 지향 기능에 대한 지원을 추가하여 메서드, 생성자, 동적 메모리 할당, 속성 및 임시 할당과 같은 기능을 제공한다.
```vbnet
Dim As Vector Ptr player = New Vector()
- player = Type
(100, 100)
Print player->getX
Print player->getY
Delete player
Sleep '프로그램 창이 즉시 닫히는 것을 방지합니다.
```
```vbnet
print "Hello, World!"
sleep
```
두 경우 모두, 이 언어는 학습 목적에 적합하다.
4. 향후 개발 예정
FreeBASIC은 GNU 컴파일러 컬렉션의 프런트 엔드가 되는 것을 목표로 개발이 계속되고 있다.[7] 이로 인해 C++(C++) 등 객체 지향 프로그래밍 언어가 가진 기능을 이용할 수 있게 되어 다양한 시스템에서 동작하고 최신 컴파일러 최적화 기법을 활용할 수 있게 된다.
참조
[1]
웹사이트
freeBASIC about page
https://www.freebasi[...]
2012-02-05
[2]
웹사이트
FBWiki : FaqPgxbox
http://www.freebasic[...]
[3]
웹사이트
freeBASIC Programming Language: Official Web site
http://www.freebasic[...]
[4]
웹사이트
freeBASIC official website downloads page
http://www.freebasic[...]
2017-05-13
[5]
웹사이트
freeBASIC dialects
http://www.execulink[...]
2012-02-05
[6]
웹사이트
Differences from QB
http://www.freebasic[...]
2012-02-05
[7]
웹사이트
FreeBASIC Todo List on Sourceforge
http://fbc.svn.sourc[...]
2007-07-31
[8]
웹인용
freeBASIC about page
https://www.freebasi[...]
2012-02-05
[9]
웹사이트
FBWiki : FaqPgxbox
http://www.freebasic[...]
[10]
웹인용
freeBASIC official website downloads page
http://www.freebasic[...]
2017-05-13
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com