はじめに
HSPは、「Hot Soup Processor」の略でスクリプト言語の一種です。
古くからあるBASIC言語のスタイルを踏襲しながら、Windowsなど、最新の環境に対応した機能を豊富に持ったシステムと言えるでしょう。本稿では、CやC++、Java、Visual Basicなどでの開発経験がある方を対象に、HSPの持つ機能やメリットを解説していきます。
HSPはもともと、ホビー向け、初心者向けという位置付けでスタートしてきた経緯がありますが、新しくバージョンアップされたHSP 3.0からは、COMやDLLなど各種モジュールとの親和性が高くなり、ツールや実務プログラムへの応用も容易になっています。
これを機会に、非常にシンプルなHSPによるプログラミング環境というものを知ってもらい、今後の開発で1つの選択肢にしていただければ嬉しいと考えています。
既に、プログラミングに親しんでいる開発者の方々には、HSPについての概要を細かく説明するよりも、実際にコードを書き、動作させてみることが理解への早道だと思います。
今回は、以下の順で実例と共にプログラミングを行ってみたいと思います。
- 変数を使った簡単な計算と表示
- ユーザーインターフェイスの実装と条件判断、分岐
- 画像イメージやファイルの取り扱い
- COMオブジェクトなど、外部モジュールとの連携
それでは、さっそく実際に使い始めるための方法について説明していきましょう。
対象読者
C++やJavaなどでのプログラミング経験がある読者を対象にしています。
必要な環境
HSP 3.0以降が必要です。HSPは、無償でダウンロードすることができます。
インストール方法
HSPは、無償で提供されている開発環境です。配布サイトなどからダウンロードして、手軽に環境をインストールすることができます。また、実行(exe)ファイルを作成することができるため、HSPで作成したソフトを他の環境で動作させることも可能です。
インストールのためのファイルは、オフィシャルサイトである「HSPTV!」からダウンロードすることができます。
トップページの[Download now]からダウンロードページに入り、HSP 3.0フルセット(または上位バージョン)を入手してください。インストーラー形式を好まない方は、「HSPダウンロードリスト」ページからアーカイブ版を入手することも可能です。
フルセットのインストーラーは、エディタを含む開発環境一式とサンプルスクリプト、マニュアルなどをすべて同梱しているほか、拡張子(.hsp)の関連付けや、ショートカットの作成を行います。
簡単な計算と表示
インストールが終了すると、いくつかのショートカットが作成されます。
この中で、プログラムを作成するために重要な要素が「HSPスクリプトエディタ」です。「HSPスクリプトエディタ」は、HSPのスクリプト編集用のテキストエディタで、スクリプトの実行を行うほか、ヘルプの呼び出しやデバッグ支援など、プログラミング環境の中心となるツールです。
「HSPスクリプトエディタ」を起動すると、内容が空のウィンドウが表示され、テキスト入力ができる状態になります。このままプログラムのコード(HSPでは「スクリプト」と呼んでいます)を入力してしまって構いません。HSPの開発環境は、非常にシンプルな作りになっており、エディタに入力した内容を気ままに実行し、呼び出し保存をファイル単位で行うことが基本になっています。
さっそく、簡単な計算と表示を行うスクリプトを入力してみましょう。
a=120 b=10+20*2 mes a mes "変数b="+b c="test"+(a*b):mes c
「calc.hsp」は、5行だけの短いスクリプトです。行頭にタブがありますが、これはHSPの約束だと思ってください。タブとスペースは無視するので、プログラムの動作には影響ありませんが、後で説明するラベルとの区別がしやすくなります。
実行させるには、[F5]キーを押すか、[HSP]メニューから[コンパイル+実行]を選択します。
すると、ウィンドウが開き実行結果が表示されます。HSPは、インタプリタ形式の言語なので、実行までに時間がかかることはありません。
このように、スクリプトエディタ上に入力した内容を確認しながら、プログラムを作成していくスタイルが基本となります。スクリプトの実行が終わると、実行ウィンドウは、そのまま停止した状態になるので、終了を確認したらクローズボックス(×ボタン)で閉じるようにしてください。
スクリプト「calc.hsp」では、変数を用いた演算と、表示の方法を示しています。
HSPでは、1行目から順番にスクリプトを実行していきます。「a=120
」のように、「変数=式
」という書式により、変数の代入を行うことができます。「b=10+20*2
」の場合は、式に書かれた値が計算され、変数b
に50が代入されることになります。
a=120 b=10+20*2
このスクリプトでは、a
、b
、c
という3つの変数に代入を行っています。JavaやC言語のように変数や型をあらかじめ宣言する必要はありません。この書式は、BASICを始めとする多くの言語と同様のもので、変数名はアルファベットまたは日本語で始まる任意の名前(HSPの予約キーワードを除く)を使うことができます。
mes a mes "変数b="+b c="test"+(a*b):mes c
「mes a
」は、変数a
の内容を表示するための記述です。mes
は、HSPの命令キーワードにあたり、それに続くパラメーターとして変数a
が指定されたことになります。基本的に、HSPのスクリプトで使われる書式としては、最初に説明した「変数=式
」と、「命令 パラメーター
」が主な要素になります。
「mes
」は、パラメーターに指定したものの内容を画面上に表示するための命令で、BASICで言うところのprint
ステートメントに相当します。パラメーターには式を指定することもできます。
式には、整数値(符号あり32bit)、実数値(符号あり64bit)、文字列(任意の長さ)という3つの型を自由に混在させて記述することができます。
ダブルクォート("
)で囲まれたものは「文字列」として、数値をそのまま記述した場合は「整数値」、小数点がある場合は「実数値」として扱われます。
演算の際には、最初に出てきた型に、後から出てきた型が合わせられるというルールがあります。つまり、「3+"5"
」のように数値と文字列の加算を行うと、最初の数値型「3
」に後から出てくる文字列「"5"
」が合わせられて、整数値の「8
」が計算結果になります。ですから、4行目の「mes "変数b="+b
」は、後から出てくる変数b
が文字列として扱われ、文字列「"変数b="
」と変数bの内容である「"50"
」を結合した計算結果が表示されることになります。
5行目は、コロン(:)記号で区切ることによって、1行に2つの文を記述していますが、基本的には変数c
への代入と、その表示を行っています。