| PureBasic | |
|---|---|
| パラダイム | 構造化された、命令型の、手続き型の |
| 家族 | ベーシック |
| デザイン : | ファンタジーソフトウェア |
| 開発者 | ファンタジーソフトウェア |
| 初 登場 | 1998年 (1998年) |
| 安定放出 | 6.30 / 2026年1月12日 ( 2026-01-12 ) |
| OS | Windows、Linux、macOS、Raspberry Pi OS、AmigaOS |
| ライセンス | トライアルウェア |
| ファイル名拡張子 | .pb、.pbi、.pbf、.pbp |
| Webサイト | www.purebasic.com |

PureBasicは、BASICをベースとした商用配布されている手続き型プログラミング言語および統合開発環境であり、Fantaisie Software社によってWindows、Linux、macOS、Raspberry Pi向けに開発されました。Amiga版も存在しましたが、現在は開発が終了しており、一部はオープンソースとして公開されています。Windows版PureBasicの最初の一般公開は2000年12月17日でした。それ以来、継続的にアップデートが行われています。
PureBasicは「生涯ライセンスモデル」を採用しています。ウェブサイトに記載されているように、最初のPureBasicユーザー(1998年に登録)は現在も新しいアップデートに無料でアクセスでき、これは今後も変更されることはありません。[ 1 ]
PureBasicは、 IA-32、x86-64、arm32 、 arm64、PowerPC、または680x0命令 セットに直接コンパイルされ、標準システムライブラリ以外のランタイムライブラリを必要としない、小型のスタンドアロン実行ファイルとDLLを生成します。プラットフォーム固有のアプリケーションプログラミングインターフェイス(API)を使用せずに開発されたプログラムは、同じソースファイルからほとんど、あるいは全く変更を加えることなく簡単にビルドできます。
PureBasicはインラインアセンブリをサポートしており、開発者はPureBasicソースコード内にFASMアセンブラコマンドを含めることができます。また、PureBasicソースコード内で宣言された変数を使用することで、熟練プログラマは速度が重要なコードセクションの処理速度を向上させることができます。PureBasicはOGRE 3D環境をサポートし、統合しています。Irrlicht Engineなどの他の3D環境は非公式にサポートされています。
バージョン6.00(2022年6月)以降、PureBasicはASMを使用したコンパイルに加え、C言語バックエンドを使用したコンパイルにも対応しました。これにより、新しいプラットフォーム(例:Raspberry Pi)へのアクセスが可能になり、将来的に新しいライブラリを追加するのも容易になります。
PureBasic は、ネイティブのクロスプラットフォーム 32 ビットおよび 64 ビット BASIC コンパイラです。現在サポートされているシステムは、Windows、Linux、macOS です。AmigaOS 版はレガシーでオープンソースです。コンパイラはネイティブ実行可能ファイルを生成し、PureBasic の構文はシンプルで分かりやすく、括弧がなく、ネイティブの Unicode 文字列処理と組み込みのサポート関数の大規模なライブラリを備えたプレーン C に匹敵します。[ 2 ]コンソール アプリケーション、 [ 3 ] GUI アプリケーション、[ 4 ]および DLL ファイル[ 5 ]をコンパイルできます。
以下の PureBasic コードの 1 行で、スタンドアロンの x86 実行ファイル (Windows 版では 4.5 KiB (4,608 バイト)) が作成され、テキスト「Hello World」を含むメッセージ ボックスが表示されます。
MessageRequester ( "メッセージボックス " , "ハローワールド " )また、同じコードの次のバリアントでは、宣言やその他の外部参照を必要としないインラインのWindows API呼び出しを使用することで、さらに小さい2.0 KiB(2,048バイト)のスタンドアロンx86実行ファイルをWindows用に作成します。
MessageBox_ ( 0 , "Hello World" , "Message Box" , 0 )以下は、Hello World サンプルのコンソール版です。
OpenConsole () ; コンソールウィンドウを開きます。Print ( "Hello, World!" ) Delay ( 5000 ) ; 5秒間一時停止しますPureBasicは、構造化された条件分岐やループ、手続き型プログラミングをサポートする「第2世代BASIC」言語です。ユーザーは手続きを使用する必要はなく、プログラマーはGoto、Gosub Label、Returnなどの構文を含む独自のコーディングスタイルを選択することもできます。
以下は配列をソートする手順の例ですが、SortArray は現在 PureBasic の組み込み関数となっています。
プロシージャbubbleSort (配列a ( 1 ))保護されたi 、itemCount 、hasChangeditemCount = ArraySize ( a ())繰り返すhasChanged = # Falseアイテム数- 1i = 0からitemCountまでa ( i ) > a ( i + 1 )の場合a ( i )とa ( i + 1 )を交換するhasChanged = # TrueEndIf次hasChanged = Falseになるまでプロシージャ終了以下は、2つのメニュー項目を備えた大きめのテキストエディタを表示するサンプルプログラムです。
;ウィンドウの作成: OpenWindow ( 0 , # PB_Ignore , # PB_Ignore , 800 , 600 , "Simple Text Editor" , # PB_Window_SystemMenu | # PB_Window_MinimizeGadget | # PB_Window_MaximizeGadget | # PB_Window_SizeGadget );メニューを2つ追加します: CreateMenu ( 0 , WindowID ( 0 )) MenuItem ( 1 , "&OK" ) MenuItem ( 2 , "&Cancel" );エディターを追加: EditorGadget ( 0 , 0 , 0 , 0 , 0 ) SetGadgetFont ( 0 , LoadFont ( 0 , "Courier New" , 10 ))ウィンドウメッセージが閉じられるまで処理します:繰り返し選択WaitWindowEvent ()ケース# PB_Event_Menu選択EventMenu ()ケース1 : MessageRequester ( "OK が直接、または '&' ニーモニックでクリックされました。" , GetGadgetText ( 0 ))ケース2 : Break EndSelectケース# PB_Event_SizeWindow : ResizeGadget ( 0 , 0 , 0 , WindowWidth ( 0 , # PB_Window_InnerCoordinate ), WindowHeight ( 0 , # PB_Window_InnerCoordinate ))ケース# PB_Event_CloseWindow : Break EndSelect ForEverPureBasic は文字列内の二重引用符をエスケープしないため、これらはChr(34)で連結する必要があります。
PureBasic の開発者である Fred は、PureBasic は決してオブジェクト指向にはならないと述べています。[ 6 ]しかし、多くのユーザーがオブジェクト指向のサポートシステムを作成しています。[ 7 ] [ 8 ] [ 9 ]
変数のデータ型は、最初に使用するときに指定され(必要に応じて将来も指定できます)、ポイント名とは別に扱われます。基本的な型として、.f、.d(浮動小数点数と倍精度浮動小数点数)、. b、.c、.w、.l、.q(1バイトと8バイトの整数)、. s (文字列)があります。
基本タイプに加えて、ユーザーは以下の方法で構築タイプを定義できます。
構造体型名 field_name.type ; 単一フィールド。おそらく構造体の添付ファイル。 field_name[count].type ; 静的配列。 ; ... ;オプションの構造 StructureUnion .. EndStructureUnion を使用すると、 複数のフィールドを1つのメモリ領域に結合する ;これは変換型に必要な場合がある。 ストラクチャーユニオン タイプ名.タイプ ; ... エンドストラクチャーユニオン エンドストラクチャー 変数は、単一の変数(実際には標準変数)、動的配列(を使用して宣言)、リンクリスト()、連想配列(言語の新しいバージョン)()にすることができます。Dimvar_name.type_name(size1,size2,...)List()var_name.type_nameMap var_name.type_name()
PureBasicには、アプリケーション用のフォーム作成を支援する独自のフォームデザイナーがありますが、他のサードパーティ製ソリューションも利用可能です。 [ 10 ] [ 11 ]元々統合されていなかったビジュアルデザイナーは、2013年2月14日に新しい統合フォームデザイナーに置き換えられました。 [ 12 ]
PureBasicは、ユーザーが質問したり知識を共有したりするためのオンラインフォーラムを提供しています。2025年2月17日時点で、英語のフォーラムには6,484人のメンバーがおり、2002年5月17日以降、578,646件の投稿を含む70,174件のスレッドがありました。[ 13 ]
数多くのコード共有サイトを見ると、PureBasicはツール[ 14 ]やゲームを迅速かつ簡単に作成するために使用されており[ 15 ]、大量のオープンソースコードを共有していることがわかります[ 16 ] 。