| パラダイム | 手続き型、オブジェクト指向 |
|---|---|
| デザイン: | アンドレ・ヴィクター[1] |
| 開発者 | FreeBASIC開発チーム |
| 初登場 | 2004年 |
| 安定リリース | 1.10.1 / 2023年12月25日 |
| タイピングの規律 | 静的 |
| OS | MS-DOS、FreeBSD、Linux、Microsoft Windows |
| ライセンス | GNU GPLv2+、GNU LGPLv2+ライセンスの標準ライブラリ |
| Webサイト | フリーベーシック |
| 影響を受けた | |
| クイックBASIC、C | |
FreeBASICは、 Microsoft Windows、プロテクトモードMS-DOS(DOSエクステンダー)、Linux、FreeBSD、Xbox 向けにGNU GPLライセンスで提供されるBASICをベースにした、フリーでオープンソースのマルチプラットフォームコンパイラおよびプログラミング言語です。Xboxバージョンはメンテナンスされなくなりました。[2]
公式サイトによると、[3] FreeBASICは、もともとMicrosoft QuickBASIC (QB)で書かれたプログラムとの構文互換性を提供します。ただし、QuickBASICとは異なり、FreeBASICは、ユーザーが選択した外部統合開発環境(IDE) を手動でインストールしない限り、コマンドラインのみのコンパイラです。 [4]
コンパイラの機能
FreeBASIC は、バックエンドでGNU Binutilsを使用して、コンソールおよびグラフィカル ユーザー インターフェイスアプリケーションを作成します。FreeBASIC は、 C の静的および動的ライブラリのリンクと作成をサポートし、 C++ライブラリのサポートも限定的に提供しています。その結果、FreeBASIC でコンパイルされたコードは、ほとんどのネイティブ開発環境で再利用できます。
FreeBASIC は最適化コンパイラではありませんが、オプションでC にトランスコンパイルして最適化してコンパイルすることができます。FreeBASIC はインラインアセンブリ、マルチスレッドをサポートしており、自動ガベージコレクションは使用しません。
複数行マクロ、条件付きコンパイル、ファイルのインクルードなどのC スタイルのプリプロセスがサポートされています。プリプロセッサは、シンボル情報や言語方言などのコンパイラ設定にもアクセスできます。
構文
当初、FreeBASICはMicrosoft QuickBASICの構文を可能な限り忠実にエミュレートしていました。その後も、この言語は進化を続けています。その結果、FreeBASICは複数の言語方言を組み合わせて、QuickBASICとの互換性を最大限に高め、最新の機能に完全にアクセスできるようになりました。[5]新しい機能には、オブジェクト、演算子のオーバーロード、関数のオーバーロード、名前空間 などの概念のサポートが含まれます。[6]
改行文字は、プログラミング ステートメントの終了を示します。プログラミング ステートメントは、アンダースコア行継続文字(_) を使用して複数の連続した行に分散できます。また、各ステートメントをコロン(:)で区切ることで、複数のステートメントを 1 行に記述できます。
ブロックコメントと行末コメントがサポートされています。 完全な行コメントはアポストロフィ 'で作成され、コメントされたコードのブロックは で始まり/'で終わります'/。
FreeBASIC では大文字と小文字は区別されません。
グラフィックライブラリ
FreeBASIC は、FBgfx を通じて QuickBASIC と互換性のある組み込みのグラフィック サポートを提供します。これは、コマンドを呼び出すプログラムに自動的に組み込まれますSCREEN。バックエンドは、LinuxではOpenGL、Microsoft WindowsではDirectXがデフォルトです。この抽象化により、FBgfx グラフィック コードはクロスプラットフォームで互換性があります。ただし、FBgfx はハードウェア アクセラレーションされていません。
OpenGL や Windows API などの外部グラフィック ユーティリティに慣れているユーザーは、組み込みのグラフィック ライブラリに干渉することなくそれらを使用できます。
言語の方言
FreeBASIC が進化するにつれ、古いスタイルの構文を壊す必要のある変更が行われました。古い構文を使用して書かれたプログラムを引き続きサポートするために、FreeBASIC は現在、次の方言をサポートしています。
- デフォルトの方言 (コマンドライン引数としての-lang fb ) はすべての新しいコンパイラ機能をサポートし、古い構文を許可しません。
- FB-lite 方言 ( -lang fblite ) では、古いスタイルのプログラミングに加えて、ほとんどの新しい非オブジェクト指向機能を使用できます。この方言では、暗黙の変数、サフィックス、
GOSUB/RETURN、数値ラベル、およびその他の機能が許可されます。 - QB 方言 ( -lang qb ) は QuickBASIC の動作を再現しようとし、多くの QuickBASIC プログラムを変更せずにコンパイルできます。
サンプルコード
「Hello, World!」プログラムなどの標準プログラムは、QuickBASIC の場合と同じように実行されます。
「Hello, World!」を印刷します。
sleep: end 'コメント、プログラムウィンドウがすぐに閉じないようにします
FreeBASIC では、メソッド、コンストラクタ、動的メモリ割り当て、プロパティ、一時割り当てなどのオブジェクト指向機能のサポートが追加されています。
型ベクター
プライベート: x As Integer y As Integerパブリック:コンストラクタを宣言( nX As Integer = 0 、nY As Integer = 0 )プロパティgetX As Integer を宣言プロパティgetY As Integer を宣言終了型
コンストラクタベクトル( nX As Integer 、nY As Integer )
x = nX y = nYコンストラクタ終了
プロパティVector . getX As Integer Return x Endプロパティ
プロパティVector . getY As Integer Return y Endプロパティ
Dim As Vector Ptrプレーヤー=新しいベクトル()
* player = Type < Vector > ( 100 , 100 )プレーヤーを印刷-> getXプレーヤーを印刷-> getY
プレーヤーを削除
スリープ'プログラムウィンドウがすぐに閉じないようにします
どちらの場合も、この言語は学習目的に適しています。
参考文献
- ^ 「freeBASIC about page」。freeBASICコンパイラ。2012年2 月 5 日閲覧。
- ^ FBWiki : FaqPgxbox
- ^ freeBASICプログラミング言語: 公式Webサイト
- ^ 「freeBASIC公式サイトのダウンロードページ」。freeBASICコンパイラ。 2017年5月13日閲覧。
- ^ 「freeBASIC 方言」。coderJeffのホームページ。2012年2 月 5 日閲覧。
- ^ 「QB との違い」。freeBASIC.net ドキュメント。2012年2 月 5 日閲覧。
外部リンク
、 FreeBASIC (カテゴリ)に関連するメディアがあります。
- 公式サイト
- GitHub上の FreeBASIC
- SourceForgeの FreeBASIC
- IDE
- WinFBE - Windows 用の最新の FreeBASIC エディター
- VisualFBEditor - クロスプラットフォームのグラフィカル IDE
- fbide.freebasic.net — freeBASIC 用の FBIDE 統合開発環境
- FBEdit (現在) — FreeBASIC 用 FBEdit ソース コード エディター、バージョン 1.0.7.6c
- SourceForgeの freeBASIC 用 FBEdit ソース コード エディター (旧バージョン: 1.0.6.8)
