こんばんは 宮平と申します。
文字列置換を使ってSugarSyntax、日本語プログラミングをやろうと勉強しています。
プロデルの機能として文字列置換を使ったSugarSyntaxができるようにしてもらえないでしょうか?
予約語としてではないです。
あと、どうしてこういった文字列置換でSugarSyntaxをするという考えをする人が出てこないのでしょう?開発環境に実装されていても可笑しくない機能だと思います。
ご意見ありがとうございます。
> 文字列置換を使ったSugarSyntax
というのは、糖衣構文のことでしょうか?
具体的にはどういった時に、どういった書き方ができることでしょうか?
ご教授いただければ幸いです。
「こんにちは、プロデルへようこそ」を表示する、を
print("こんにちは、プロデルへようこそ")、に文字列置換してluaでプロデルの書き方を行うことができます。
完全にプロデルの書き方を他の言語に代用するのは難しいと思いますが。
自然言語のように新しい言い回しを作ることが簡単に出来るようになれば面白いです。
翻訳ソフト並の文字列置換機能を持った開発環境が必要になります。
ユーザー辞書も単純に文字列置換するだけのものではなく、条件によって複雑に変わる文字列置換の設定が出来る物が必要です。
> 文字列置換してluaでプロデルの書き方を行うことができます
おそらく、それは糖衣構文(シンタックスシュガー)というよりもコードジェネレータに近いのだと思います。
糖衣構文は、主に同じ言語の中で、長い表記になる構文を省略して短く書くことができる構文を指すことが多いような気がします。
宮平さんの話は、単に「簡単に書く」ということよりも、プロデルなどで書いた日本語プログラムを他の言語へ変換するということなのだと思います。
> 文字列置換でSugarSyntaxをするという考えをする人が出てこないのでしょう?
そういう意味でプロデルから他の言語のコードを生成するプログラムがあっても面白いとは思います。
ただ逆になぜ、プロデルで動かすことができるプログラムをわざわざ他の言語に置き換えてから、コンパイルする必要があるのでしょうか、と思うこともできませんか?
例で頂いたような、簡単なプログラムであれば、単純な置き換えで対処できますが、
プロデルは単に言語の違いだけでなく、クラスライブラリも日本語的に書けるような工夫をしてプロデル用に開発しています。
その違いが単純な置き換えでできる、というわけではないと思います(やってみるとわかると思います)
何がしたくて、当初のSyntaxsugarのようなことがやってみたいかによってくると思います。
>ただ逆になぜ、プロデルで動かすことができるプログラムをわざわざ他の言語に置き換えてから、コンパイルする必要があるのでしょうか、と思うこともできませんか?
Javaなど普及している英語的な言語を日本語的にできれば素晴らしいですし、それも馴染みのある日本語プログラミングに近ければなお良いです。
書き方より何が出来る言語でそれを如何に見つけ出すかが大変で、コードジェネレータによる日本語化は資料集めの手助けになると思います。
書き方も見やすさで大切だと思います。
実際に試すことの出来るソフトがあれば良いのですけれど、単純な置換しかできないソフトばかりです。自作するしか無いみたいです。
なでしこの酒徳さんも前に機械翻訳で日本語プログラミングなどと考えたことがあるそうです。
「トークン分割→意味解析→コード変換」までの処理を作る必要があります、と言われて手間が言語一つを作るより掛かるらしいようですが、一つの言語を作るのにトークン分割→意味解析の部分は考えなくても良かったりするのですか?
翻訳エンジンも自前で作る必要がある、と言われましたがプロデルを作るのに複雑な文字列置換のプログラムを組む必要はなかったのですか?
> プロデルを作るのに複雑な文字列置換のプログラムを組む必要はなかったのですか?
プロデルは、プログラムを文字列置換する(C#などのプログラムへ文字列レベルで置き換える)
という発想で実現しているわけでありません。
Javaと同じように、字句解析し、構文解析し、構文木を構築し
中間表現に置き換えてプログラムを実行しています。
> 一つの言語を作るのにトークン分割→意味解析の部分は考えなくても良かったりするのですか?
なでしこの実装方法がどのようになっているかは知りませんが...
JavaやC言語では、字句解析、構文解析、意味解析を順番に行えば良いのですが
日本語プログラミングの場合、区切り文字がない(スペースや記号で単語が区切れるわけではない)ので
字句解析と構文解析、意味解析を同時に行う必要があります。
その部分は、確かに難しい部分です。
近いうちに、条件式については、プロデルで書かれたプログラムの解析結果を利用できるような
仕組みに対応する予定ですが、プログラム全体を、他の言語に置換することがプロデルの目標ではないので
その点は、優先度は低いと思います。
では。
こんばんは、Lineです。
文字列定数中の式展開というのは、
値段は、120
「お会計は、[値段×1.05]円です。」を表示する
ーーマニュアル「式の書き方」より抜粋
というように、かぎかっこの中に角括弧を入れて
角括弧中の式を実行した結果を文字列定数中に埋め込むものです。
要望は、
1. 現在の[]による記述を廃止して、新たな記述を設ける。
2. 現在の[]による文字列定数中の特殊な文字に対するエスケープ方式を廃止して、新たな記述方式を設ける。
の2つです。
かなり無理のある要望だとは分かっております。
しかし現状の構文だと、場合によっては他のスクリプト言語に比べて、冗長な記述になる場合があります。
たとえば、文字列中の「[」と「]」で囲まれた文字列を探す正規表現を考える場合、
正規表現:文字列から「\[[].*?\[]]」を取り出す
現在のプロデルでは以上のように記述します。
なぜなら、プロデルで [ と ] は文字列定数中で意味のある記号のため、
それぞれ [ と ] で囲んでエスケープしなければなりません。
さらに、[ と ] は正規表現でも意味のある記号のため、
\ を記号の左側につけてエスケープしなければなりません。
これを他のスクリプト言語(Ruby)で書き直すと、
str.match("\[.*?\]")
というようになります。
2つの言語によるプログラム例から、文字列定数の部分だけを取り出して比較すると、
\[.*?\]
\[[].*?\[]]
というように、
プロデルはほかのスクリプト言語に比べ、冗長で分かりづらい記述になっています。
このようなケースは少ないかもしれませんが、
いずれにしても、正規表現では [ と ] の記号をよく使うため、
現在のプロデルのように、[ と ] で囲んでエスケープすると、冗長な記述になってしまいます。
具体的にどのような記述を新たに設けるかは、
言語仕様にかかわることなので、ゆうとさんに判断をしていただきたいのですが、
私は次のような案を持っています。
1. Ruby方式の式展開構文:#{ 式 }(半角/全角)
なでしこでは式展開の構文に{}を使っていますが、
これだけだと、ほかの意味を持つ記号(正規表現など)とダブってしまいます。
そこで、Ruby方式を採用して、前に # をつけることで、記号がダブることを防ぎます。
また、この方式に使う記号は IME による変換を必要としない記号のため、素早く入力することができます。
2. \(バックスラッシュ)による記号のエスケープ
現在の [ と ] によるエスケープの場合、どうしても冗長で分かりにくくなってしまうので、
簡潔な \ によるエスケープを採用します。
長々と申し訳ありません。
これで以上です。
検討よろしくお願いいたします。
ご意見ありがとうございます。
> 正規表現:文字列から「\[[].*?\[]]」を取り出す
私も経験ありますが、確かに、正規表現の時は不便ですね。
また、複数行にまたがる文字列を指定するときも、
[や」を探して、[ ]で囲む必要があったので、
改善する必要があると思います。
> 1. Ruby方式の式展開構文:#{ 式 }(半角/全角)
> 2. \(バックスラッシュ)による記号のエスケープ
当初からバックスラッシュにする方法は検討していました。
ただ、ファイルのパスを指定する際に「\\」と書かなければいけないのが
不便だなと思っていたのと、改行を表すのに「\n」と書くよりも
[改行]と書けた方が読みやすいと思っていましたので
現状のような仕様にしました。
最新版で、“「”と“」”を重ねて書くことで、
現在の[ ]による記述を無効にする構文を用意しました。
例 「「\[.*?\]」」
C#では @" " などと書くことで、バックスラッシュを
無効にすることができますが
これに似た方法であれば、現状のプロデルの仕様を大きく変更せずに
導入できますので、取り入れてみました。
正規表現の問題もこれなら問題ないかと思います。
しばらく運用してみて問題があれば、再検討してみます。
ではでは
こんばんは、プロデラーです。
質問ですが、Windows Media Playerプラグインのリファレンスはありますか?
デザイナの表示メニューの「種類と手順の一覧」から見ると、手順はわかりますが、設定項目の設定値がわからないので、困っています。
お願いします。
リファレンスを作成しました。
最新版をダウンロードしてご覧ください。
ご指摘ありがとうございます。
では
最新版ダウンロードしました。
リファレンスありがとうございます。
ゆっくりコントロールについて勉強してみようと思います。
こんにちは。smorkinです。
お世話に鳴ります。
毎度お願いばかりで恐縮です。
「ファイルの操作」の中に、「ごみ箱へ移動」
という項目を追加していただけないでしょうか。
お時間のある時にでも、ご検討いただけたら幸いです。
※もし既に存在するようでしたら、ご容赦を。
> 毎度お願いばかりで恐縮です。
いえいえ。
> 「ファイルの操作」の中に、「ごみ箱へ移動」
> という項目を追加していただけないでしょうか。
早速対応しました。
http://rdr.utopiat.net/docs/reference/core/file.htm#" target="_blank">http://rdr.utopiat.net/docs/reference/core/file.htm#ごみ箱へ移動する
お試しください。
ゆうと 様、早速のご対応、ありがとうございます。
アップデートして確認いたしました。
どうもありがとうございました。
◆動作環境情報◆
プロデル: 0.7.288
OS:Windows 7 32bit)
メモリ:3.24 GB
こんばんは じいじです。
新年あけましておめでとうございます。本年もよろしくお願いいたします。
この度、じいじのホームページの一部の変更をするにあたりまして、お世話になっているプロデルの公式ページのリンクを張らせて頂こうと思いまして、お伺いをします。
よろしいでしょうか?
本年もよろしくお願いいたします。
お返事遅くなりました。
プロデルのトップページへのリンクは、特に届け出の必要はありませんので、ご自由にリンクしてお使いください。
リンクありがとうございます。
早速リンクさせていただきます。
お返事ありがとうございました。
こんばんは!xvmmです!
YouTubeアカウントを移行するため、動画を再アップロードしました
「YouTubeでインストール方法を見る」のリンクの張替えをお願いします。
ご迷惑をおかけしまして、誠に申し訳ございません><
▼プロデル
http://www.youtube.com/watch?v=9FSLdFAaWpg&feature=youtu.be" target="_blank">http://www.youtube.com/watch?v=9FSLdFAaWpg&feature=youtu.be
▼TTSneo
http://www.youtube.com/watch?v=o_CssldgbXc&feature=youtu.be" target="_blank">http://www.youtube.com/watch?v=o_CssldgbXc&feature=youtu.be
お世話になっております。
お返事遅くなりましたが、リンク変更の件、対応いたしました。
ご連絡ありがとうございます。
では
はじめましてぐらっふです。
突然で申し訳ないですが、
ゆうとさんの日本語プログラミング言語に関する考えをお聞きしたいです。
質問掲示板に書き込むかどうか迷ったのですが、
プロデルに関することではないのでこちらに書き込ませていただきます。
考えというのは様々ありますが、私がまずお聞きしたいことは次の2つです。
・そもそもなぜ記述に日本語を用いるのか、
CやJavaに用いられているキーワードを日本語に置き換るだけでは駄目なのか?
例えば、
クラス スペルチェックツール {
真偽値 検査(文字型 文章) {
返却 真
}
}
というような感じです。
・プログラミング言語を日本語文法で記述する利点と欠点
またゆうとさんは、プロデルをどういう方向性で発展させたいとお考えですか?
(教育目的なのか、使い捨てのマクロ目的なのか)
ご質問ありがとうございます。
> そもそもなぜ記述に日本語を用いるのか、
「日本人ならプログラムも日本語で書きたいから」が素直な理由です。
プロデルも安定してきたので、私自身もちょっとしたツールは、プロデルで書いています。
(プロデルユーザさんの意見もあればよいのですが)
作ってみて日本語で書ける良さがあると思っています。
例えば、C言語やJavaで変数名や関数名を付けるのに迷ったことはないでしょうか?
辞書を引いてみたり、ニュアンスの異なる英単語を当ててしまったり
することがあるんじゃないかと思います。(英語が達者な方であれば別ですが)
日本語なら、思った単語をそのまま書けばよいので、変数や関数の名前を
考える手間もいらないですし、数ヶ月後に読み返しても「何だっけこれ?」と
いうことがあまりないように思います。
これが日本語プログラミングの魅力の一つだと思います。
> CやJavaに用いられているキーワードを日本語に置き換るだけでは駄目なのか?
ぐらっふさんの「例えば、」で挙げていただいたようなプログラムなら
キーワードを置換するプリプロセッサなどのツールを作れば、JavaやC#で実現できます。
これも一つの方法だと思います。
実際にVBAなどでは、(予約語を除けば)変数名やプロシージャ名を付けている方もいるようです。
ただ私自身は、「例えば」に挙げていただいたようなプログラムは、
日本語プログラミングではないと思っています。
プロデルの発想として、ただ単純に英単語を日本語で置き換えただけでは、
日本語で書くことの利点は、(プログラミング経験者であればあるほど)
少ないと思います。
(つまり、慣れてしまえば「class」も「クラス」も変わらず
日本語だと、ただ打ちにくくなっただけ、ということです)
今の日本語プログラミング言語の特徴は、プログラムを
助詞(てにをは)を使って日本語らしい文法で書けることです。
「例えば」のメソッド呼出しの例をJava風に日本語で書けば
スペルチェックツール.検査(文章);
となると思います。つまり記号や、メソッド・引数の書き順に意味があります。
一方、プロデルでは助詞を使って
スペルチェックツールで文章を検査する
と書けます。
このように助詞を使うことで動作や対象、データの方向が明確になり、
後からコードを読み返すときの、わかりやすさにつながると思っています。
これが日本語プログラミングのもう一つの特徴であり利点だと思います。
助詞を使って日本語らしくプログラムを書くには
プロデルのような日本語プログラミング言語が必要ですし、
ライブラリも助詞の良さを生かして作る必要があります。
欠点として指摘される点を挙げるならば
「日本語プログラミングは、タイピング量が多くて面倒だ」
ということです。
ただこれは、プロデルデザイナのようなエディタが貧弱なだけであって
エディタがもっとがんばれば、さほど問題にならないと思っています。
このあたりについては、今後の課題です。
> プロデルをどういう方向性で発展させたいとお考えですか?
C言語やJava、Rubyなどがそうであるように、
プロデルも特定の用途を目的としたプログラミング言語ではありません。
あえて言えば、プロデルはGUIを使ったツールやユーティリティを
手早く作れるというのが魅力だと考えています。
最近では、Webアプリが作れる環境も用意しています。
カメを使ったLogoの機能も用意されていますが、
これはおまけ的な位置づけであり、教育利用を目的しているわけでありません。
また、事務処理などの使い捨てのバッチ処理プログラムを書くといった用途も
(当然できますが)プロデルが目指しているものでもありません。
あくまでも、長く使うことができるソフトウェアを“作る”ことができる開発環境を
プロデルは、目指しています。
疑問にお答えできていれば幸いです。
おおむね同意できます。
オブジェクト指向を日本語で表現するとき、
確かにプログラムを読む際には、
> このように助詞を使うことで動作や対象、データの方向が明確になり、
> 後からコードを読み返すときの、わかりやすさにつながると思っています。
これは同意できます。
日本語で書くことで可読性が抜群に上がるわけですね。
しかし、プログラムを書く際は、
操作対象のインスタンス(レシーバー)につく助詞が一つに定まらないため、
レシーバに対して何の助詞をつければよいかということがすぐに分からないと思います。
Javaの場合だと、
str.saveFile("file.txt", "UTF-8");
というように「.」(ドット)の左側が必ず、レシーバーということがぱっと見ただけで分かります。
つまり、記述する際にはレシーバーを「.」の書く前に入れてやればいいわけです。
しかし、日本語プログラミング言語だと、
レシーバーに対してつける助詞は、レシーバーに対する操作を決定づける動詞(メソッド)で決まるわけです。
これは大きな欠点だと思います。
レシーバーと、レシーバーに対して行う操作であるメソッドは、頭の上に思い浮かびますが、
レシーバーに対して何の助詞をつけて、引数に対して何の助詞をつければよいかが
(レシーバーと引数は、プロデルではほぼ対等なものですが)
すぐに思い浮かばないと思います。
これは、実際にプロデルを使っているので分かるのですが、
レシーバーに対して何の助詞をつけて、引数に対して何の助詞をつければよいか
すぐに思い浮かばなかったり、
思い浮かんでも、実際の実装とは違ったりすることが多々あります。
このあたりは開発環境を強力にして対応させるのでしょうか?
あと、2chのプログラム板にスレッドを立てました。
スレッドの宣伝では全くもってありません。
ただ、日本語プログラミング言語「プロデル」を知ってもらおうというわけです。
それに本家の掲示板だけでは利用者が少なくどうしても閉塞的になったり、議論も広がらないので、
2chにスレッドを立てたわけです。
2chスレッドの目的としては、
・プロデルをより多くの人に知ってもらう、使ってもらう。
・プロデルに関する意見交換や議論
・本家お膝元では言いにくい意見など…
といったところです。
ユーザーの皆さんも使っていただければありがたいです。
http://hibari.2ch.net/test/read.cgi/tech/1322496819/" target="_blank">http://hibari.2ch.net/test/read.cgi/tech/1322496819/
ちなみに、この一連の質問はこのスレッドでの意見を元にしています。
お返事遅くなりました。
> レシーバーと、レシーバーに対して行う操作であるメソッドは、頭の上に思い浮かびますが、
> レシーバーに対して何の助詞をつけて、引数に対して何の助詞をつければよいかが
> すぐに思い浮かばないと思います。
> レシーバーに対して何の助詞をつけて、引数に対して何の助詞をつければよいか
> すぐに思い浮かばなかったり、
> 思い浮かんでも、実際の実装とは違ったりすることが多々あります。
ご指摘の通り、(レシーバに限らず)助詞があることが混乱の元になるという
こともあるかもしれません。
この点に対する答えは、私自身も持っていません。
ただ、このあたりは言語仕様がどうこうというよりも、
Javaにあるようなコーディング規約(大文字小文字の書き分けなど)のように
「この動詞ではこの助詞が必ずレシーバ」といったようなルールを
確立していけばよいのではないのか、と考えています。
現状のプロデルのライブラリがその点で確立しているとは言い難いところもありますが、
ユーザの方の意見や経験を元に精査していく必要はあると思っています。
もちろん、開発環境がヒント表示や入力補完などで、補うことも必要だと思います。
> あと、2chのプログラム板にスレッドを立てました。
様々な場所で、プロデルや日本語プログラミングについての意見交換が
行われるのは歓迎いたします。
「日本語プログラミング」という言葉だけだと、
TTSneoやなでしこではなく、その前にあった
Mindだったり、ぴゅー太だったり、日本語COBOLだったり、
極端ですが人工知能と結びつける人もいらっしゃいます。
また、プログラミングというのは、記号を駆使して短く書けるのが良いんだ
という意見が多いのが実際のところなんではないでしょうか。
私としては、基本的にはプロデル利用者の意見を大切にしていきたいと
考えておりますし、また他の日本語プログラミング言語とは違う視点で
プロデルを作っていきたいと考えております。
こんばんは、けいと言います。
要望なのですが、ブラウザ部品で、サイトへのログイン処理をサポートする命令を作成することは難しいでしょうか。
また、ツイッタークライアントなどを作成するための命令もあると嬉しいのですが、可能でしょうか。
両者とも、「なでしこ」では実現しているのですが、若干のバグと使いにくさがありますので、プロデルで作成いただけますと、幸いです。
お忙しいとは思いますが、ご検討いただけますでしょうか。
よろしくお願い致します。
ご意見ありがとうございます。
ツイッタークライアント機能については前向きに検討したいと思います。
OAuth等の認証方法をまだ理解していませんが、近いうちに対応したいと思います。
もうしばらくお待ちください。
早速のご検討ありがとうございます。
ログイン機能についても、お願いできればと思います。
よろしくお願い致します。
こんにちは。smorkinです。
お世話に鳴ります。
「テキスト領域」「書式付きテキスト」の設定項目に、
「行番号」「行内容」「全行数」などの項目を
追加していただけないでしょうか。
お時間のある時にでも検討していただければ幸いです。
よろしくお願いいたします。
最新版でとりあえず「行番号」「行内容」「行数」「列」を追加しました。
ご意見ありがとうございます。
ゆうと 様、早速対応していただき、ありがとうございます。
先ほど確認いたしました。
これでいろいろな手順がやりやすくなります。
ありがとうございました。
こんにちは ゆうとです。
プロデルの更新情報を配信するTwitterアカウントを開設しました。
http://twitter.com/jpl_produire" target="_blank">http://twitter.com/jpl_produire
最新版チェックにご活用ください!!
不具合報告等は、これまで通り掲示板でお願いいたします。
RSSやWebスライスでも更新情報を提供しています。
プロデルの知名度を上げるためにTwitterを利用するのはどうでしょうか。
例えば、ライバルではありますが、
同じ日本語プログラミング言語のなでしこをフォローしてみるというのはどうですか?
ご意見ありがとうございます。
早速、いくつかのアカウントをフォローしてみました。
プロデル公式Twitterも少しずつフォロー数が増えてきました!!