プロデル Advent Calendar 2019企画に参加させて頂きます。
数年前にQiitaに記事を投稿していましたがプロデルブログの方へ引っ越して以来、久しぶりの投稿です。Advent Calendarということで、この機会にいくつか記事を投稿できればと思います。よろしくお願いします。
今日は、日本語プログラミング言語「プロデル」でできることをご紹介します。
元々プロデルはWindowsデスクトップアプリを作ることに特化した開発環境でしたが時代の移り変わりと共に、色々な環境で動かせるようになってきました。
あまりに色々やり過ぎて整理できていなかったので、この記事でまとめてご紹介できればと思います。
##プロデルの構成
プロデルは、大きく次の4つに分かれています。インストールすると、すべて利用できます。
- プロデル言語パーサー (プログラムの構文解析等を行う)
- ランタイム環境 (パースしたプログラムを実行する)
- コンパイラ (パースしたプログラムから中間コードを生成する)
- プロデルデザイナ(開発環境:実行,デバッグ,コンパイルをGUIで提供する)
プロデルでプログラムを作るときには、専用の開発環境である「プロデルデザイナ」を使うのが便利です。
プロデルデザイナでは、プログラムを編集したり、ランタイム環境で実行したり、デバッグ作業のための解析機能を利用できます。作成したプログラムは、「実行可能ファイルの作成」でexeファイルとして作成できます。
また、プロデルデザイナを使わずにプログラムをパース・実行するだけのランタイム環境(Produire.exe,PConsole.exe)もあります。
ランタイム環境とコンパイル済み環境
プロデルプログラムを実行する方法には、ランタイム環境とコンパイル済み環境との2種類があります。
ランタイム環境
ランタイム環境は、パースしたプログラムをそのまま実行する環境です。
.rdrファイルをダブルクリックすれば、すぐにプログラムが実行でき、エラーメッセージが詳細に表示されます。
コンパイル済み環境
コンパイル済み環境は、事前にプロデルコンパイラで中間コード(MSIL)に変換したものを実行する方法です。ランタイム環境に比べて動作が速いですがエラーメッセージが分かりづらく、匿名手順など一部の構文が利用できない場合もあります(今後対応予定です)。
コンパイラは、プロデルデザイナに内蔵されているものと、コンソールで実行できるもの(rdrc.exe)があります。
https://produ.irelang.jp/downloads/compiler.html
作れるもの
元々Windowsデスクトップアプリを作ることを前提としていたためのウィンドウを使ったアプリを作るためのライブラリを中心に用意しています。
またそれ以外にも、コンソールベース(CUI)のプログラムも作ることも可能です。
monoフレームワークをインストールすれば、Linux系やmacOSのターミナルでも動作します。
さらに、Apacheなどのウェブサーバと連携して、Webアプリを作ることもできます。MySQLやSQLiteなどのデータベースにアクセスするライブラリも用意していますので、ちょっとしてWebアプリを作ることもできます。
Windowsデスクトップアプリ(Windowsのみ)
プロデルデザイナの「ウィンドウの設計」画面を使えば、ほとんどプログラムを書くこと必要なくウィンドウ画面を作ることができます。
メイン画面を表示する
待機する
メイン画面とは
ウィンドウを継承する
はじめの手順
初期化する
終わり
初期化する手順
この内容を「メイン画面」に変える
初期化開始する
ボタン1というボタンを作る
その位置と大きさを{99,67,75,23}に変える
その内容を「ボタン1」に変える
初期化終了する
この設計スケール比率を{144,144}に変える
終わり
ボタン1がクリックされた時の手順
「こんにちは」を情報アイコンで表示する
終わり
終わり
コンソールアプリ(Windows,Linux,macOS)
CUIベースのプログラムを作ることができます。コンソールアプリは、WindowsだけでなくLinux,macOSの環境下でも利用できます。
※コンソール
「日付を入力してください(xxxx/xx/xx)」とコンソールへ出力して改行する
コンソールから受け取って結果とする
結果を日時形式化して「ggy年M月d日」に整えたものをコンソールへ出力する
コンソールから受け取る
1で終了する
サーバアプリ(FastCGI)(Windows,Linux,macOS)
サーバで動作するアプリを作ることができます。簡易Webサーバを常駐させる方法やCGIを使った方法があります。
CGIで動くプロデルWebアプリを公開する
※ウェブアプリ
応答として「<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>こんにちは!</title>
</head>
<body>
こんにちは!
</body>
</html>」を送る
なお「※」の行はプロデルデザイナに実行環境を指定するための設定です。
そのほか
プロデル言語で書いたプログラムをArduino互換機であるStuduino系向けの.inoファイルとして生成するトランスレータや、FeliCa操作するプラグインなども公開しています。
プロデルブログで紹介していますのでよかったらご覧下さい。