Pure Basic
PureBasic![]() |
![]() | |
패러다임 | 구조화, 필수, 절차적 |
---|---|
가족 | 기본의 |
설계자 | Fantaisie 소프트웨어 |
개발자 | Fantaisie 소프트웨어 |
처음 등장한 | 1998년 |
안정된 릴리스 | 6.00 LTS / 2022년 6월 22일; 전( |
OS | Windows, Linux, macOS, Rasberry Pi OS, AmigaOS |
면허증. | 트라이얼웨어 |
파일 이름 확장자 | .pb, .pbi, .pbf, .pbp |
웹 사이트 | www |
PureBasic은 BASIC을 기반으로 상업적으로 배포되는 프로시저 컴퓨터 프로그래밍 언어 및 통합 개발 환경이며 Fantaisie Software for Windows, Linux 및 MacOS에 의해 개발되었습니다.Amiga 버전은 단종되었으며 일부 버전은 오픈 소스로 출시되었습니다.PureBasic for Windows의 첫 공개는 2000년 12월 17일이었다.그 이후로 계속 갱신되고 있습니다.
PureBasic에는 "평생 라이센스 모델"이 있습니다.웹사이트에서 인용한 바와 같이 최초의 PureBasic 사용자(1998년에 등록)는 여전히 새로운 업데이트에 무료로 액세스할 수 있으며 [1]이는 변경되지 않습니다.
Pure Basic은 IA-32, x86-64, Power에 직접 컴파일PC 또는 680x0 명령어 세트로 표준 시스템 라이브러리 이외의 런타임 라이브러리가 필요하지 않은 작은 독립 실행형 실행 파일과 DLL을 생성합니다.플랫폼 고유의 Application Programming Interface(API; 애플리케이션 프로그래밍 인터페이스)를 사용하지 않고 개발된 프로그램은 거의 또는 전혀 수정하지 않고 동일한 소스 파일에서 쉽게 구축할 수 있습니다.
PureBasic은 인라인 어셈블리를 지원하므로 개발자는 PureBasic 소스 코드에 FASM 어셈블러 명령을 포함하면서 PureBasic 소스 코드에 선언된 변수를 사용할 수 있으므로 숙련된 프로그래머가 코드의 속도에 중요한 섹션의 속도를 향상시킬 수 있습니다.PureBasic은 OGRE 3D 환경을 지원하며 통합했습니다.Irlicht Engine과 같은 다른 3D 환경은 비공식적으로 지원됩니다.
프로그래밍 언어
특성.
PureBasic은 네이티브 크로스 플랫폼 32비트 및 64비트 BASIC 컴파일러입니다.현재 지원되는 시스템은 Windows, Linux, macOS입니다.아미가OS 버전은 레거시이며 오픈 소스입니다.컴파일러는 네이티브 실행 파일을 생성하며 PureBasic의 구문은 단순하고 간단합니다.브래킷이 없고 네이티브 유니코드 문자열 처리와 내장 지원 함수의 큰 라이브러리를 갖춘 [2]플레인 C에 필적합니다.콘솔 응용 프로그램,[3] GUI [4]응용 프로그램 및 DLL 파일을 [5]컴파일할 수 있습니다.
Hello World의 예
다음 PureBasic 코드 한 줄에 의해 스탠드아론의 x86 실행 파일(4.5KiB(4,608바이트))이 생성됩니다.이 파일에는 "Hello World"라는 텍스트가 있는 메시지 상자가 표시됩니다.
메시지 요구자("메시지 상자", '헬로 월드')
또한 같은 코드의 다음 변형에서는 선언이나 기타 외부 참조가 필요 없는 인라인 Windows API 콜을 사용하여 Windows용 2.0KiB(2,048바이트) 스탠드아론 x86 실행 가능 파일이 생성됩니다.
메시지 상자_(0, '헬로 월드', "메시지 상자", 0)
다음으로 Hello World의 콘솔버전을 나타냅니다.
Open Console() ; 콘솔 창을 엽니다. 인쇄("안녕, 월드!")
프로시저
PureBasic은 구조화된 조건과 루프가 있고 프로시저 지향 프로그래밍이 지원되는 "2세대 BASIC" 언어입니다.사용자는 프로시저를 사용할 필요가 없으므로 프로그래머는 다음을 포함하는 코딩 스타일을 선택할 수 있습니다.고토, 고섭라벨, 리턴.
SortArray는 현재 PureBasic에 내장된 함수가 되었지만, 다음은 어레이를 정렬하기 위한 샘플 절차입니다.
절차. 버블소트(어레이 a(1)) 보호되고 있다 i, item Count, 변했다 item Count = 어레이 사이즈(a()) 따라하다 변했다 = #거짓의 item Count - 1 위해서 i = 0 로. item Count 한다면 a(i) > a(i + 1) 바꾸다 a(i), a(i + 1) 변했다 = #진실의 엔드 If 다음 분. 까지 변했다 = #거짓의 절차 종료
다음은 두 가지 메뉴 항목이 포함된 크기 큰 텍스트 편집기를 표시하는 예제 프로그램입니다.
;창 만들기: 오픈 윈도(0, #PB_무시, #PB_무시, 800, 600, "단순 텍스트 편집기", #PB_Window_System Menu #PB_Window_MinimizeGadget #PB_Window_MaximizeGadget #PB_Window_SizeGadget) 2개의 메뉴 추가: [ Create Menu ](메뉴 작성)(0, 윈도 아이디(0)) 메뉴 항목(1, "&OK") 메뉴 항목(2, "취소") 편집기 추가: 에디터 Gadget(0, 0, 0, 0, 0) SetGadgetFont(0, 로드 폰트(0, "Courier New, 10)) ;창 메시지를 닫을 때까지 처리: 따라하다 선택한다. Wait Window 이벤트() 사례. #PB_이벤트_메뉴 선택한다. 이벤트 메뉴() 사례. 1: 메시지 요구자("OK는 직접 클릭하거나 '&' 니모닉으로 클릭", Gadget 텍스트 가져오기(0)) 사례. 2: 브레이크. 선택 종료 사례. #PB_Event_Size 창: 크기 조정 Gadget(0, 0, 0, 창폭(0, #PB_윈도_이너코디네이트), 창 높이(0, #PB_윈도_이너코디네이트)) 사례. #PB_이벤트_창 닫기: 브레이크. 선택 종료 영원히.
PureBasic은 문자열의 큰따옴표를 이스케이프하지 않으므로 Chr(34)과 연결해야 합니다.
객체 지향 프로그래밍
PureBasic의 개발자인 Fred는 PureBasic은 절대 객체 [6]지향적이지 않을 것이라고 말했다.그러나 수많은 사용자가 객체 지향 지원 시스템을 [7][8][9]구축했습니다.
데이터형
처음 사용할 때(및 향후 옵션) 지정된 변수 데이터 유형으로 점의 이름과 구분됩니다.기본 유형에는 .f, .d(플로트 및 이중 숫자), .b, .c, .w, .l, .q(싱글 바이트 및8 바이트의 정수), .s - 문자열 세트가 있습니다.
유형 | 서픽스 | 메모리 사용량 | 수치 범위 |
---|---|---|---|
바이트 | b | 1 바이트(8 비트) | −128 ... +127 |
아스키어 | a | 1 바이트(8 비트) | 0 ... +255 |
성격 | c | 1 바이트 (8 비트) (ASCII) | 0 ... +255 |
단어 | w | 2바이트(16비트) | −32768 ... +32767 |
유니코드 | u | 2바이트(16비트) | 0 ... +65535 |
성격 | c | 2바이트(16비트) (표준) | 0 ... +65535 |
긴 | l | 4 바이트(32 비트) | −2147483648 ... +2147483647 |
정수 | i | 4 바이트(32 비트)x86 | −2147483648 ... +2147483647 |
흘러가다 | f | 4 바이트(32 비트) | 십진수의 비율에 따라 달라집니다. |
정수 | i | 8 바이트 (64 비트)x 64 | −9223372036854775808 ... +9223372036854775807 |
쿼드 | q | 8 바이트(64 비트) | −9223372036854775808 ... +9223372036854775807 |
이중 | d | 8 바이트(64 비트) | 십진수의 비율에 따라 달라집니다. |
스트링 | s | (문자열 길이 + 1) * Size Of(문자) | 제한은 없습니다. |
고정 문자열 | s {length } | (문자열 길이) * Size Of(문자) | 제한은 없습니다. |
기본 유형 외에 사용자는 다음을 통해 구성 유형을 정의할 수 있습니다.
structure type_name field_name.type ; 단일 필드.아마 구조물이 부착되어 있을 겁니다.field_name[count]을 클릭합니다.type ; Static Arrays . ; ... ; 옵션 구축 Structure Union .EndStructureUnion을 사용하면 여러 필드를 하나의 메모리 영역으로 결합할 수 있습니다.이것은 변환 타입에 필요한 경우가 있습니다.StructureUnion type_name.type;...EndStructureUnion EndStructure
변수는 단일(실제로 표준 변수), 동적 배열(를 사용하여 선언됨)일 수 있습니다.Dim var_name.type_name (size1, size2, ... )
, 링크 리스트(List() var_name.type_name
어소시에이트 어레이(새로운 버전의 언어) (Map var_name.type_name()
)
폼 디자이너 RAD
PureBasic에는 어플리케이션용 폼 작성을 지원하는 자체 폼 디자이너가 있지만 다른 서드파티 솔루션도 사용할 [10][11][12]수 있습니다.원래 [13]비통합 Visual Designer는 2013년 2월 14일에 새로운 통합 Form Designer로 교체되었습니다.
사용자 커뮤니티
PureBasic은 사용자가 질문을 하고 지식을 공유할 수 있는 온라인 포럼을 제공합니다.2013년 5월 6일 현재 영어 포럼에는 4,769명의 회원이 있으며 2002년 [14]5월 17일 이후 372,200개의 게시물을 포함한 44,043개의 스레드가 포함되어 있습니다.
수많은 코드 공유 사이트에서는 PureBasic이 도구와 게임을 빠르고 [16]쉽게 만들고[15] 많은 양의 오픈 소스 [17]코드를 공유하기 위해 사용되고 있음을 보여줍니다.
추가 정보
- Willoughby, Gary (2006). Purebasic: A Beginner s Guide to Computer Programming. ISBN 1-4276-0428-2.
- Logsdon, John. Programming 2D Scrolling Games.이 책은 지금 무료로 다운로드 할 수 있다.
- Basic Compilers: QuickBASIC, PureBasic, PowerBASIC, Blitz Basic, XBasic, Turbo Basic, Visual Basic, FutureBASIC, REALbasic, FreeBASIC. ISBN 1-155-32445-5.
레퍼런스
- ^ FAQ 라이프타임 라이선스 상세
- ^ PureBasic 홈 페이지
- ^ Pure Basic - 콘솔
- ^ Pure Basic - 가젯
- ^ DLL 구축
- ^ PureBasic은 객체 지향적이지 않습니다.
- ^ Pure Object:PureBasic OOP 지원
- ^ OOP 튜토리얼
- ^ 다른 OOP PreCompiler
- ^ PureVision, PureBAS용 프로페셔널 폼 설계IC.
- ^ ProGUI는 100개가 넘는 문서화된 명령어로 구성된 DLL 라이브러리입니다.이것에 의해, 풍부하고 커스터마이즈 가능한 GUI 컴포넌트를 애플리케이션에 신속히 짜넣을 수 있습니다.
- ^ FureFORM, Freeware 양식 디자이너.
- ^ PureBasic 5.10 출시
- ^ 영어 포럼, 공식 포럼
- ^ Horst Schaeffer의 소프트웨어 페이지
- ^ Pure Area
- ^ 앙드레 비어의 코드 아카이브.
일반 참고 자료
- Hale Ligh, Michael (2010). Malware Analysts Cookbook Tools for Thwarting Malicious Attacks. Indianapolis, IN: John Wiley & Sons Inc. p. 241. ISBN 978-0-470-61303-0.
- Galbreath, Nick (2002). Cryptography for Internet and database applications : developing secret and public key techniques with Java. Indianapolis, Ind.: Wiley. pp. 300. ISBN 978-0-471-21029-0.
- "Learning to Crack Code". Manly Daily. 25 June 2004.
- Georges, Philippe. "La programmation avec PureBasic". PROgrammez (141).
- Svoboda, Luboš (2012). Překvapivý PureBasic (Surprising PureBasic: A Czech ebook for prospective users of PureBasic). p. 89.
외부 링크
- 공식 웹사이트
- 공식 PureBasic 포럼(영어)
- Curlie의 PureBasic
- 기사들
- Pure Basic - 완벽한 크로스 플랫폼과 네이티브 개발 언어 (2015년)
- 약간의 PureBasic 리뷰(2019)
- 라이브러리 및 오픈 소스 코드 아카이브