Free
BASICは、自由かつオープンソースで開発されている32ビットの
BASICコンパイラです。この
コンパイラは、
Microsoft Windows、DOS(プロテクトモード)、
Linux、さらにはXboxといった多様なプラットフォーム向けの実行ファイルを生成できます。Free
BASICはセルフホスティング
コンパイラとして設計されており、その
コンパイラ本体は約12万行のソースコードで構成されています(ライブラリは除く)。
Free
BASICは、バックエンドにGNU Binutilsを利用しており、コンソールアプリケーションだけでなく、グラフィカルユーザーインターフェース(GUI)を持つアプリケーションも生成可能です。ライブラリは静的リンクと動的リンクの両方に対応しており、
C言語ライブラリや一部の
C++ライブラリを利用できるため、他の言語のライブラリを活用したり、独自のライブラリを作成することも可能です。
言語構文
Free
BASICの構文は、可能な限り
BASICの原則に忠実であり、特にQuick
BASICの構文と非常に近いものとなっています。しかし、最新のプログラミング技術も積極的に取り入れられており、標準的な
手続き型プログラミングに加え、
オブジェクト指向的な
データ型やオブジェクトの概念、演算子や関数のオーバーロード、名前空間といった機能も利用できます。
Free
BASICでは、文末は改行コードまたはコロンで示されます。
C言語のように
セミコロンを必須とする必要はありません。複数行にわたるコードを記述する際は、コロンで区切ることで一行に記述できます。
コメントは、行単位のものとブロック単位のものが利用可能です。行単位のコメントはシングルクォート(')で始まり、ブロックコメントは/'で始まり、'/で終わります。ブロックコメントは、複数行にわたるコメント記述が可能です。
互換性
Quick
BASICの後継として開発されているため、構文の変更は主に最新のユーティリティやプログラミング機能の追加に限定されています。Quick
BASICとの厳密な互換性を維持したい場合や、GCCに準拠したコードを記述したい場合は、`-lang`オプションを使用します。
`-lang fb`:FreeBASICの最新機能を全て利用できます。
`-lang deprecated`:以前のバージョンのFree
BASICと互換性のある構文を利用できます。バージョンアップによって互換性が失われた場合に、以前のバージョンから最新バージョンへの移行を容易にします。
`-lang qb`:可能な限りQuickBASICとの互換性を維持した構文を利用できます。QuickBASICとの互換性を損なうような新機能は利用できません。
Hello, World!の例
basic
PRINT "Hello, World!"
グラフィックスライブラリ
FreeBASICには、QuickBASIC互換の組み込み2次元グラフィックスライブラリが搭載されており、基本的な図形(矩形、直線、円など)の描画や、BitBltなどの操作が可能です。QuickBASICにはなかった機能も追加されており、ライブラリ自体はOSに依存しないため、コードの移植性が高いです。ただし、グラフィックスライブラリを使用するためには、`FBgfx Screen`コマンドで宣言する必要があります。OpenGLやプラットフォームのGUIに従ったウィンドウ生成は、別のライブラリとして提供されています。
今後の開発
FreeBASICは、GNU[[コンパイラコレクション]]のフロントエンドとなることを目指して開発が続けられています。これにより、C++などのオブジェクト指向プログラミング言語が持つ機能を活用し、さまざまなシステムでの動作や最新のコンパイラ最適化技術の利用が期待できます。バージョン0.17では、オブジェクト指向プログラミング機能が導入され、データ型や構造体が追加されました。
まとめ
FreeBASICは、QuickBASICの遺産を受け継ぎつつ、現代的なプログラミングパラダイムに対応した強力なコンパイラです。多様なプラットフォームで利用可能であり、柔軟な開発環境を提供します。オブジェクト指向機能やCライブラリとの連携機能など、高度なプログラミングにも対応しています。
外部リンク
公式サイト
公式フォーラム
SourceForgeでのホームページ
BASIC wikiへのリンク'>FreeBASIC wiki
BASICに関する情報サイトへのリンク'>Freebasic - On the Go
FreeBASIC 日本語マニュアル(英訳)
Windows用GUIライブラリ
ミラーサイト
web上で入力確認出来るサイト