高見知英の技術ログ

技術関係のログをQiitaから移行してきました。プログラミングのほか、使っているアプリの細かい仕様についてなど書いていきます。

PascalPad作ってみた

このブログはLazarus(FreePascal)アドベントカレンダー12日目の記事です。

qiita.com

ちょこっとしたプログラムの動作検証を行なうときにいちいちコードを書き込める場所を探すのが面倒なので、PascalPadというツールを作ってみました。

github.com

とりあえず機能的にはとりあえず使える段階なので、リリースを作っています。Windowsの実行バイナリも添付しておりますので良ければどうぞ。

github.com

Pascal Script

Lazarusには、初期状態でPascal Scriptというコンポーネントがインストールされています。Inno Setupの内部で使われているらしい*1

wiki.lazarus.freepascal.org

これを使うとPascalコードを読み込んでそのまま実行 なんてことが可能です。Script といいつつCompileメソッドを使ってコンパイルを行なったあと、Executeメソッドで実行できる というものですが、別に両方のメソッドを一つのメソッド内で呼び出せばスクリプト言語のような感覚で利用が可能です。

また、プラグインを追加して内部で使える関数を増やしたり、OnCompileイベントでTPSScript.AddMethodメソッドやTPSScript.AddFunctionメソッドで関数を追加するなど、結構使い道はありそうです。

まあ多種多様なプログラム言語に気軽に触れられるようになった今、なぜわざわざPascalをユーザーに使わせるのか という問題もありますが、たとえばプログラムの内部処理をPascalで補うとか、ゲームなどの細かい挙動をスクリプトで制御するとか、使い道はありそう。

*1:そういえばPascalスクリプトと言えばPPAなんてものもあったな・・・ 今はどうなっているのだろう?