Webブラウザでプロデルを再び。「スミレ畑」


Webブラウザ上で日本語プログラミング言語「プロデル」のプログラムを実行できるWebアプリ「スミレ畑」を公開しました。OSやWebブラウザ, PC/スマホを問わずプロデルの日本語で書かれたプログラムを試せるようになります。

対応環境は、新旧のEdge, Firefox, Safari, ChromeなどWebAssemblyに対応するWebブラウザです。WindowsはもちろんAndroidやmacOS上でも動作するはずです。

使い方

https://sumire.utopiat.net/play/ へアクセスします。

読み込み終わると、左側がプログラム編集枠、右側が実行結果の出力枠が表示されます。プログラム編集枠の下部に[実行する]ボタンがあります。

プログラム編集枠に、プロデルのプログラムを入力します。

「こんにちは」と報告する

と入力して、下部の[実行する]ボタンをクリックします。実行すると、右側に実行結果が表示されます。

時刻を表示する
1+1を表示する
10から100までの乱数を表示する
今日から10日後の曜日を出力する

といったプロデルのプログラムもOKです。

次のように書くことでダイアログで入力を受け付けられます。

「名前は」と聞く
「今日は晴れですか?」と質問する

言語仕様

スミレ畑では、日本語プログラミング言語「スミレ」の実行環境が利用できます。

スミレの文法は、プロデルの文法に準じています。書き方は、プロデルのマニュアルをご覧下さい。基本型である文字列,配列,辞書などが利用できます。プロデルプラグインが必要な機能(GUI部品やキャンバス,ネットワーク関連,ファイル操作)は、利用できません。

プラグインに依存しないコンソールアプリは、一通り動作するはずです。

どうやって動いているの?

先日リリースされたBlazor WebAssemblyという技術を利用しています。これはC#など.NETに対応した言語処理系でコンパイルしたプログラムを、Webブラウザだけを使って実行できるフレームワークです。

WebAssemblyは、Webブラウザ上で動くプログラミング言語の一つです。Blazor WebAssemblyは、そのWebAssembly言語で構築された.NET環境のフレームワークです。なおBlazorは、ASP.NET Coreを構成する技術とのことです。

WebAssemblyは、特定のOSに依存しない技術のため、結果としてWindowsのみならずAndroidやmacでもブラウザ上で.NETのプログラムが動きます。

このウェブアプリは、プロデルではなく「スミレ畑」と名付けました。「スミレ」は、プロデルの言語処理系や実行環境を.NET Coreへ移植した日本語プログラミング言語です。Blazor WebAssemblyでは、.NET Standardの環境向けにコンパイルしたバイナリがそのまま動作するため、今回スミレの実行環境をBlazorで動作するように修正して、Webブラウザ上でプロデルプログラムを解釈して実行するアプリとして作りました。

Blazor WebAssemblyは夢の技術!

プロデルは、.NET Frameworkを動作対象にしてコツコツと作ってきました。ただ近年Windows PC以外のデバイスも普及して、これからはより様々なプラットフォームでプロデルを動かせ試せるようにすることが理想だと思っていました。

少し前にSilverlightというFlashのようなWebブラウザのプラグインをインストールして使える.NETのリッチな実行環境が提供されていました。プロデルのサイトでも数年前にSilverlight上で動作するプロデルを公開して、Webブラウザ上で動くプロデルを楽しむことができました。しかしHTML5が主流になり、プラグインそのものが廃れていき、それに伴ってSilverlightのサポートブラウザも最終的にはIEだけとなり、沢山のデバイスで動くSilverlightの夢はあっけなく消えてしまいました…

.NET界隈ではmonoやXamarin, UWP, .NET Coreと言ったWindows PCに縛られない技術が沢山登場してきています。これらの環境へプロデル実行環境の移植を試みてみましたが、特にGUI部品などの膨大なライブラリをプロデル向けに用意するには手間が掛かり、移植できてもWebブラウザほどの手軽さは得られそうにもなく、結局進まず挫折してしまいました。

そんな中でBlazor WebAssemblyは、プロデルの言語処理系の主要部分を簡単に移植でき、悲願だったWebブラウザで動かせるプロデルが一瞬で実現できてしまいました。上記のような挫折があるだけに夢のような技術だと思っています。Blazorを試した感想として、UIはWebで、ロジックはデスクトップアプリを書いているような不思議な感覚でした。作り方はVue.js等のJavaScript系フレームワークに似ていて、ファイル構成は昔のJavaアプレットに似ていると思います。もっと調べていく必要がありそうですが、その間にもより充実した環境となりそうな予感がしています。面白くなってきました。

これからどうなる

興奮して話が逸れましたが、スミレ畑は試作の速報ということで、できることできないことを色々調べながら、作っていきたいと思います。

ともあれ、OSやWebブラウザを問わずプロデル文法で日本語プログラミングができる「スミレ畑」をぜひ試してみてください。

https://sumire.utopiat.net/play/

  • いいね (9)
  • 続きを読みたい (12)

コメントを残す