FreeBASIC

フリーでオープンソース(GPL)の32ビットBASICコンパイラ From Wikipedia, the free encyclopedia

FreeBASICは、自由かつオープンソースGPL)の32ビットBASICコンパイラであり、Microsoft WindowsDOSプロテクトモードDOSエクステンダ)、LinuxXbox 向けの実行ファイルを生成する。FreeBASIC はセルフホスティングコンパイラであり、コンパイラ本体は約12万行のソースコードで構成されている(ライブラリは含まない)。

登場時期 2004年 (22年前) (2004)
設計者 V1ctor
開発者 The FreeBASIC Development Team
概要 パラダイム, 登場時期 ...
FreeBASIC
 ウィキデータを編集
FreeBASICのロゴ
Screenshot
パラダイム 手続き型
登場時期 2004年 (22年前) (2004)
設計者 V1ctor
開発者 The FreeBASIC Development Team
最終リリース 1.10.1 / 2023年12月25日[1]
型付け 静的
影響を受けた言語 C言語QBasic ウィキデータを編集
プラットフォーム Microsoft WindowsLinuxDOSFreeBSD ウィキデータを編集
ライセンス GNU General Public License ウィキデータを編集
ウェブサイト
拡張子 bas、bi ウィキデータを編集
テンプレートを表示
閉じる

GNU Binutilsバックエンドとして利用し、コンソール用実行ファイルとグラフィカル/GUI用実行ファイルを生成する。ライブラリは静的リンクと動的リンクの両方に対応している。FreeBASIC はCライブラリと一部のC++ライブラリを利用できる。これを利用すると、C言語だけでなく他の言語のライブラリを使ったり、作成したりすることも可能である。

構文

FreeBASIC はBASICの構文を可能な限り守っており、特に QuickBASIC に近い構文になっている。そして、同時に最新のコーディング技術も取り入れている。標準の手続き型としての機能に加えて、オブジェクト指向的なデータ型オブジェクトの考え方を導入し、演算子や関数のオーバーロード名前空間といった機能が追加されている。

FreeBASIC では、行末を改行コードかコロンで表す。このため、C言語のセミコロンのような特別な行末記号は必須ではない。改行するまでに複数行のコードを書く場合に、コロンで区切る。

コメントは行単位のものとブロック単位のものがあり、行単位のコメントはシングルクオート (') で開始され、ブロックコメントは /' で開始して、'/ で終了となり、途中に改行コードがあってもよい。

互換性

QuickBASIC の後継を意図しているため、構文の変更は最近のユーティリティを使うためや、最新のプログラミング機能の追加のためにのみ行われている。QuickBASIC互換を厳密に保ちたい場合や、GCC準拠にしたい場合には、-lang オプションを使う。

  • -lang fb とすれば、FreeBASIC の最新機能が全て利用可能である。
  • -lang deprecated とすれば、前のバージョンの FreeBASIC に互換な構文が使える。バージョンアップで以前との互換性がなくなっている場合があるため、直前のバージョンを最新バージョンに移植したい場合に使う。
  • -lang qb とすれば、可能な限り QuickBASIC 互換の構文を使える。QuickBASIC との互換性を損なうような新機能は使えない。

Hello, World!

print "Hello, World!"
sleep

グラフィックスライブラリ

FreeBASIC には、QuickBASIC互換の組み込みの2次元グラフィックスライブラリがあり、基本的な描画(矩形、直線、円など)やBitBltが可能で、同時にQuickBASICには無かった機能も追加されている。ライブラリ自体はオペレーティングシステム (OS) から独立しており、コードは可搬性がある。

グラフィックスライブラリは組み込みだが、FBgfx Screen コマンドを使って使用を宣言しないと使えない。OpenGL やプラットフォームのGUIに従ったウィンドウ生成はライブラリとして別にある。

今後の開発予定

FreeBASIC はGNUコンパイラコレクションのフロントエンドとなることを目標として開発が続いている[2]。それにより、C++などのオブジェクト指向プログラミング言語の持つ機能が利用可能となり、様々なシステム上で動作し、最新のコンパイラ最適化技法を活用できるようになる。

バージョン 0.17 でオブジェクト指向プログラミング機能が導入され、データ型構造体が追加された。

脚注

外部リンク

Related Articles

Wikiwand AI