| パラダイム | イベント駆動型、手続き型 |
|---|---|
| デザイン: | カール・グンデル |
| 開発者 | ショップトークシステム |
| 初登場 | 1992年 |
| 安定版リリース | 4.5.1 / 2017年5月31日 |
| タイピングの規律 | ダイナミック、弱い |
| OS | Microsoft Windows、未リリースのLiberty Basic 5のLinux |
| ライセンス | 独自の |
| ファイル名拡張子 | .bas、.fr3 |
| Webサイト | libertybasic.com |
| 主な実装 | |
| BASIC、GLBCCを実行する | |
| 影響を受けた | |
| クイックベーシック | |
| 影響を受けた | |
| ただのベーシック、Leopard | |

Liberty BASIC (LB) は、商用のコンピュータプログラミング言語および統合開発環境(IDE) です。 Smalltalkで開発されたインタープリタがあり、 BASICプログラミング言語の独自の方言を認識します。 16 ビットおよび32 ビットのWindowsおよびOS/2で動作します。
背景
Liberty BASICはCarl "Gunner" Gundelによって書かれ、1991年に彼の会社Shoptalk Systemsによって最初のリリースが公開されました。それ以来、着実に進歩してきました。ソフトウェアの最後の更新である[アップデート]バージョン4.5.1は2018年6月に公開されました。[1]
Liberty BASIC は、高度なプログラミングの設計にはある程度の制限がありますが、Windows および OS/2 の中級から上級のユーザー向けの入門用統合開発環境 (IDE) を提供します。ダイナミック リンク ライブラリ(DLL) が利用可能です。現在のバージョンでは、Microsoft Windowsと、Linux の Wine でのみ動作します。Liberty BASIC v5.0 のアルファ テストが進行中で、Microsoft Windows、Mac OS X、Linux、および Raspberry Pi で動作するバージョンもあります。
Liberty BASIC はネイティブ コードにコンパイルされません。代わりに、IDE で記述されたコードを TKN 拡張子の暗号化されたファイルにコンパイルします。このファイルは、同じファイル名を持つ EXE ファイルによって実行されますが、これはバージョン 5 のリリースで変更される可能性があります。
特徴

- FreeFormと呼ばれるビジュアル開発ツールはLiberty BASICで書かれており、長年にわたりLiberty BASICコミュニティによって大幅に拡張されてきました。
- ソースレベルデバッガー
- DLL およびアプリケーション プログラミング インターフェイス(API)の呼び出し
- カラーグラフィック機能
- スプライトアニメーション、サウンド、音楽、ジョイスティックコントロールを備えたゲームを作成できます
- コードフォーマッタ、ソースコードのバージョン管理、パフォーマンスプロファイラ、使いやすいコード差分ブラウザ、改良されたパッケージおよびデプロイメントシステムなど、多くの新機能を備えたAssistと呼ばれるアドオンパッケージ
特徴
Liberty BASICでは、コンソール モードで実行されるDOS BASICに似たスタイルで、書式設定されたテキストを表示し、ユーザー入力を受け入れるデフォルトの「メイン ウィンドウ」を使用して、手続き型プログラミングを行うことができます。また、ボタン、メニュー、テキスト ボックスなどの標準コントロールを含む複数の種類のウィンドウを使用して、グラフィカル ユーザー インターフェイス(GUI) に基づくイベント駆動型プログラミングもサポートしています。
Liberty BASIC を作成する際の中心となるアイデアは、ファイル処理の構文に従ってウィンドウの処理をモデル化することでした。たとえば、(Liberty BASIC ヘルプ ファイルより) 次のようになります。
「OPEN コマンドは、ディスク ファイル、ウィンドウ、ダイナミック リンク ライブラリ、またはシリアル通信ポートなどのデバイスとの通信を開始します。」
目的AS #ハンドル{ LEN = n }でデバイスを開きます
「デバイス」が開かれると、そのデバイスを制御するためのデータとコマンドをそのデバイスに「印刷」することができます。デバイスのタイプごとに、この方法で送信できるコマンドのセットがあります。LB の最近のバージョンでは、「print」という単語が「print」ステートメントから削除され、構文がさらにシンプルになっています。
Liberty BASIC は最初からシンプルさを重視してきました。そのため、学習は容易ですが、機能が制限されるという代償も伴うかもしれません。LB v4.03 では、数値と文字列の 2 つのデータ型のみがサポートされています。型宣言は必要ありません。変数名の末尾に $ 記号が付いている変数は文字列変数で、付いていない場合は数値です (LB v5 では、これらに加えて他の型とユーザー定義型もサポートする予定です)。API またはサードパーティ DLL を呼び出すために、STRUCT と DLL に必要な追加の型があります。サポートされている他のデータ構造は ARRAY のみです。1 次元または 2 次元の配列がサポートされています。LB v5 では、ユーザー定義型の配列がサポートされる可能性があります。
Liberty BASICで書かれた注目すべきプログラム
- GUI フォーマットを作成するための GUI エディターである FreeForm は LB で作成されました。
サンプルコード
言語の例をいくつか示します。
「Hello, World!」プログラム:
「Hello, World!」を印刷する終了
「Hello, World!」という文字が書かれたポップアップ メッセージ ボックスを表示するプログラム:
nomainwin
通知「Hello, World!」終了
nomainwin
通知"サンプルプログラム" + CHR$ ( 13 ) + "Hello, World!"終了
入力ボックスを表示するプログラム:
nomainwin
prompt "名前を入力してください:" ; response$ notice "応答:" + CHR$ ( 13 ) + response$ end
別のアプリケーションを実行する:
nomainwin
実行"notepad.exe"終了
フォームに 5 の掛け算表を印刷する:
[ multi ]
i = 1から15までres = 5 * iを印刷res next i終了
代替実装
Anthony Liguori による GNU/Liberty Basic コンパイラ コレクション (GLBCC) は、Liberty Basic プログラムをコンパイルするためのツール セットであり、Windows および Linux システムで実行されますが、このプロジェクトは 2001 年以降更新されていません。
2012 年に、Liberty BASIC の代替Windows実装であるLB Booster (LBB) が利用可能になりました。Liberty BASIC 4 言語構文と実質的に互換性がありますが、LBB はRichard Russellによって完全に独立して開発され、 BBC BASICで記述されています。
LBB は、(通常) 実行速度の向上、自己完結型実行ファイルの小型化、およびいくつかの追加機能を提供します。ただし、LBB は LB4 と 100% 互換性があるわけではなく、多くのプログラムは変更なしで実行されますが、一部のプログラムは調整が必要であったり、LBB での実行に適さない場合もあります。
Liberty Basic では、データ宣言は提供されません。代わりに、新しいデータ名はすべて新しい宣言として扱われます。これを利点と考える人もいれば、不完全なタイパーのデバッグの問題と考える人もいます。2019 年に Peter JD Matthews は、LB インタープリターが見るコードを変更せずに、宣言を追加し、宣言されていないデータをチェックする方法を考案しました。2023 年に、このシステムは GitHub のパブリック リポジトリ「LBPrePass」に移植され、誰でも使用できるようになりました。このリポジトリには、プログラムのドキュメントも含まれています。このプログラムは Liberty Basic 4.5.1 で記述されており、4.5.1 コードを分析することを目的としています。
参考文献
- ^ 「Liberty BASIC News」www.libertybasic.com . 2019年1月25日閲覧。
外部リンク
- www.libertybasic.com — 公式サイト
- カール・ガンデルのブログ
- Liberty BASIC(フランス語)
- Rosetta コード上の Liberty BASIC
- GNU/Liberty 基本コンパイラ コレクション (GLBCC)
- LBブースター
