Hot Soup Processor

出典: フリー百科事典『ウィキペディア(Wikipedia)』

Hot Soup Processor
パラダイム 手続き型命令型
登場時期 1994年
設計者 おにたま
開発者 おにたま
最新リリース HSP3.2β(2008年8月7日現在)
影響を受けた言語 BASICC言語
プラットフォーム Microsoft Windows 98以降
ウェブサイト Hot Soup Processor オフィシャルホームページHSPTV!
  

Hot Soup Processor(ホットスーププロセッサー)は1994年おにたまにより開発されたプログラミング言語環境(正確にはプログラミングツール)である。略称はHSP

基本的にMicrosoft Windowsプラットフォームが持つ機能を手軽に使えるようなツールとして開発されたため、OS向けの低水準な記述は(不可能ではないが)あまり推奨されない。

なお一部バージョンにおいて、アンチウィルス製品マルウェアと誤認識される現象が報告されている。[1]

目次

[編集] 歴史

[編集] 誕生

Hot Soup Processorは、米ダートマス大学で開発されたBASIC言語の書式をベースにして1994年に開発が開始され、1996年以降フリーウェアとして公開されている。BASICとの互換性はない。

[編集] 発展

2005年8月1日にHSP3.0が登場。 文法体系の見直し、Windowsプラットフォームへの親和性の向上などが行われ、一部が従来のHSP2.x系と互換性のない書式に変更された。 これは添付されている互換マクロを利用することで、一部は擬似的に互換を取ることが可能である(関数を#undefとマクロにより命令風に置き換えるなど)。現在は未対応なものの今後、2.x系と同様、演算子の優先度などに関係なく左優先方式にも対応する予定である。ただし、新しく作成する場合はスクリプトの見やすさの面や他の言語との相互互換性,将来性などのこともあり新方式(関数などを利用した方式)で作成することが推奨されている。 また、HSP3.0のリリースからちょうど2年後にあたる2007年8月1日にHSP3.1が登場、HSPスクリプトエディタの機能改善や、新規のプラグイン・モジュールなどの追加、Peasエディタやかんたん入力機能によるスクリプト入力補助、Javaランタイム上でHSPを動作させるためのHSPLetの標準サポート、ライセンス形式の改定(BSDライセンス)による仕様やソースコードのオープン化などが行われた。[2]

HSP3の登場から新ポータルサイトHSPTV!が立ち上がりHSP3ユーザーのコミュニケーションの場として提供されている。またHSPTV!で同サイトのCGIプログラマを募集するなどの取り組みも試みられている。

2003年から毎年HSPプログラムコンテストが開催されている。

[編集] 特徴

Hot Soup Processorは手続き型言語であり、中間言語インタープリタのプログラミングツールとして設計された。主な特徴として:

  • 文法が簡潔なため低年齢(例えば小学生)でも簡単に文法を覚えられる(低年齢向けの解説書が出版されている)。
  • 行番号は利用しない(できない)。
  • 構文の大文字・小文字を区別しない。
  • 変数の使用に事前の定義が必要ない(自動的にグローバル変数またはモジュール内定義変数として確保される)。
  • 変数・ラベルはモジュールという他と隔離された名前空間で分離することができる。
  • ラベルを使用したサブルーチンの別個記述が可能である。
  • Windowsでの使用を前提としているが、Macintoshへの移植も不完全とはいえ公式に進められている(まだ正式版が登場していないが開発が停滞しているらしい)。
    • また、有志によって非公式的にLinuxにも移植されている。
    • しかし、今のところ、移植版の場合はWindows版よりかなり古いバージョンがベースになっている。
  • DLLをプラグインとして利用することができ、それによってWindowsのさまざまな機能を利用することが出来る。DirectXOpenGLなどの3Dグラフィックスを扱うものもある。
  • プリプロセッサを持つ。
  • BASICとよく似た構文を別名として利用できる。
  • COMオブジェクトへの対応も行われており、これを手軽に活用できる。

[編集] 開発環境

HSPには専用のスクリプトエディタが付属している。コンパイルを行うツールを利用すれば外部エディタでの開発も可能である。

[編集] 主な構文

以下の表はHSP2.x系とHSP3との違いである

項目 HSP2.x系 HSP3
定数 整数、文字列 整数、文字列、実数
変数の型 整数型、文字列型 整数型、文字列型、実数型、comobj型、モジュール変数(struct)型、ラベル型、拡張型
式の評価 演算子の優先度なし、左方優先 演算子の優先度あり
代入演算子 +=, -=, ++, -- +=, -=, ++, --のほか *=, /= 等、ほぼすべての代入演算子に対応
関数 未対応 対応(標準関数、ユーザー定義関数、拡張関数)
マクロ 仮対応 対応

HSP2.x系では命令中のラベル名にラベル名であることを明示するアスタリスクが省略できる、変数名やラベル名などに半角英数字以外に全角文字が使用できたりといくつかの仕様上の欠陥がある。HSP3.x系では以上の点は修正されている。システム変数はHSP3.x系で一部廃止され、関数やマクロに置き換わっている。HSP3.x系では拡張プラグインにより様々な構文(変数/命令/関数/システム変数など)を拡張できる(現時点では定数の拡張はできない)。

[編集] 命令リスト

これは、HSPで使う命令の一例である。

[編集] 一般的な通常命令

良く使う命令
命令 意味
mes 文字列の表示
pos 位置指定
color 色指定(256×256×256色)
if ~だったら~する(分岐命令
font 文字大きさ設定
boxf 矩形の絵画
repeat repeatからloopまでの間の処理を繰り返す
loop
goto 指定したラベルに行く
gosub 指定したラベルに行き、returnがあると(gosubの)次の行へ行く
return
screen 大きさ、位置などを指定してスクリーンを作る(bgscr命令で枠なしスクリーンも可能)

[編集] サンプルプログラム

  • 以下はHSP2.x系/HSP3.x系(互換マクロ使用/不使用)全対応になっている(極一部のバージョンでは不具合などにより正常に動作しない可能性あり)。
;#include "hsp261cmp.as"                              ; HSP3でHSP2.x系とある程度の互換性をとる場合に必要なヘッダファイル
    cls 0                                             ; HSP3で使用する場合、必要なことがある
*start ;ラベル:start
; 起動時の表示位置指定(バージョンによる分岐)
#ifdef __hsp30__                                      ; HSP3か
#ifdef __hsp261cmp__                                  ; HSP2.x互換マクロを使用しているか
    x=(dispx-640)/2:y=(dispy-480)/2                   ; 使用している場合
#else
    x=(ginfo(20)-640)/2:y=(ginfo(21)-480)/2           ; 使用していない場合
#endif
#else
    x=dispx-640/2:y=dispy-480/2                       ; HSP2.x系
#endif
    screen 0,400,300,0,x,y                            ; 画面サイズ
    color 000,000,000:boxf                            ; 背景色指定(RGB)
    cls 0                                             ; 画面全消去(白)
    gsel 0,1                                          ; 0(0は最初に表示されるウィンドウ)ウィンドウを通常表示(2で常に手前に表示)
    title "Wikipedia Program TEST!!   - Yuki"         ; タイトル表示
    mes "Welcome to wikipedia!!"                      ; Welcome to wikipedia!!と表示する
    color 0,0,0 ;フォント色指定
    font "MS ゴシック",10,0                         ; フォントとサイズ指定
    x=100:y=100:pos x,y                               ; オブジェクトの表示位置指定
    objsize 200,24,20                                 ; オブジェクトのサイズ指定
    button "OK",*owari                                ; ボタン
    button "Go to Wikipedia!!",*go                  ; ボタン
    stop                                              ; 停止
*go                                                   ; ラベル:go
    exec "http://ja.wikipedia.org/wiki/Hot Soup Processor",16   ; URLやパソコン内部のファイル外部表示
    goto *owari                                       ; ラベル:owariへ移動
*owari                                                ; ラベル:owari
    end

[編集] 関連項目

[編集] 参考文献

  • 『はじめてのHSP』 工学社 ISBN 4-87593-289-8
  • 『HSPゲームプログラミング クックブック 2.6』 秀和システム ISBN 4-7980-0495-2
  • 『HSPプログラミング入門 2.55』 秀和システム ISBN 4-7980-0209-7
  • 『HSPプログラミング入門 2.6』 秀和システム ISBN 4-7980-0821-4
  • 『HSPスクリプトプログラミング逆引きテクニック 2.55』 秀和システム ISBN 4-7980-0186-4
  • 『無料ツールでゲームプログラミング HSP編』 エンターブレイン ISBN 4-7577-1863-2
  • 『12歳からはじめる、わくわくHSPゲームプログラミング教室』 ラトルズ ISBN 4-89977-078-2

[編集] 外部リンク

他の言語