Skip to content

日本語スクリプト言語JapaScript

みなさんこんにちは。近藤です。
僕も9leap 9Days Challengeにむけて準備体操をしているところです。

さて、ふとshi3zさん達おやじどもが、「むかしは日本語でプログラミングを書くぴゅう太ってのがあってな」と昔話をしていたので、ちょっと調べてみると、日本語でプログラミングを書く、というのはいろいろあるみたいですね。

古く、ぴゅう太ではたとえばforループは「マワレ 〜 カラ 〜 トジル」みたいな感じでプログラムを書いていたそうです。

また、その後、純粋なコンパイル言語として開発されたC言語ベースの「Mind」では、以下のような感じでプログラムが書けたそうです。


午前?とは                           ←「午前?」の定義 
    時刻を得て                            
    時が 12より 小さいこと。                   

メインとは                                
    午前?                    ←「午前?」の引用 
        ならば 「おはよう」を                  
        さもなければ                       
            「こんにちは」を                 
        つぎに                          
    表示し 改行すること。                      

半分とは 2で 割ること。                   ←「半分」の定義  

四分の一とは 半分の 半分。                  ←「半分」を引用して
                                 「四分の一」を定義
メインとは                                
        値1は 変数                       
        合否は 変数                       
    起動パラメータから 単語切り出し 値1と 合否に 入れ      
    合否が 偽?                           
        ならば 「数値の指定が誤りです。」で 重大エラー     
        つぎに                          
    値1の 四分の一を 数値表示し 改行すること。  ←「四分の一」実証

日本語プログラミング言語Mind
すごいですね。
なにかなぜ日本語にここまでこだわるのか謎ですけど気迫は伝わってきます。
「偽?」あたりが謎ですが、lispとかを英語圏の人が使うのはこんな感じなのかもしれません。

さらに最近では「なでしこ」というものもあるそうです。
こちらは クジラが「こんにちは」と言う というようなプログラムを書けるのだとか。凄いですね。

さて、ところでJavaScriptですが、識別子(変数名や関数名)に日本語が使えるって知ってました?


var 変数=5;

こんな感じでかけてしまうんです。

これをうまいことやると、日本語JavaScriptが書けるのではないか。
いや、むしろこれはJavaScriptではなく、JapaScriptとなるのではないか。

そんなわけで作ってみました。
書き方はこんな感じ


<script type="text/japascript">
金額を確認するとは
    結果を返す 聞く『「いくら持ってんだ?金を出せ」, 0
ということ

相手の所持金 = 金額を確認した結果
もし『相手の所持金 > 500』ならば 出せ『相手の所持金 + 「円を手に入れた!」』
そうでなければ出せ『「しけてんなぁ」』
</script>

どうです?
なんだか気持ち悪い感じになりましたね

「え、JavaScriptに見える」ですって?
タグのところをよく見て下さい。
「type=”text/japascript”」になってるでしょ?

実はscriptタグに未知の言語が書いてあると、たいていのブラウザでは無視されるんです。
それをdocument.getElementsByTagNameで取得し、適当なJavaScriptプログラムを文字列変数に突っ込んで、evalしてやればOK。
パーサーすら書かずに日本語JavaScriptができました。

プログラムはこんな感じです。


<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<script type="text/japascript">
金額を確認するとは
    結果を返す 聞く『「いくら持ってんだ?金を出せ」, 0』
ということ

相手の所持金 = 金額を確認した結果
もし『相手の所持金 > 500』ならば 出せ『相手の所持金 + 「円を手に入れた!」』
そうでなければ出せ『「しけてんなぁ」』
</script>

</script>
<script type="text/javascript">
String.prototype.replaceAll = function(str1,str2){
    return this.split(str1).join(str2);
};
var 出せ = alert;
var 聞く = window.prompt;
var temp = document.getElementsByTagName("script");
for(var i = 0; i < temp.length; i++){
    var script = temp[i].innerText;
    if(temp[i].type == "text/japascript"){
        script = script.replaceAll("『", "(");
        script = script.replaceAll("』", ")");
        script = script.replaceAll("するとは\n", "する=function(){");
        script = script.replaceAll("\n", ";");
        script = script.replaceAll("「", "\"");
        script = script.replaceAll("」", "\"");
        script = script.replaceAll("変数", "var");
        script = script.replaceAll("もし", "if");
        script = script.replaceAll("ならば", "");
        script = script.replaceAll("そうでなければ", "else ");
        script = script.replaceAll("ということ", "};");
        script = script.replaceAll("した結果", "する()");
        script = script.replaceAll("結果を返す", "return ");
        alert(script);
        eval(script);
    }
}
</script>

まあギャグですけど、こんな感じの遊びもできますよってことで
近藤でした!

文・近藤誠

このエントリーをはてなブックマークに追加
はてなブックマーク - 日本語スクリプト言語JapaScript
Post to Google Buzz
Share on GREE

Related posts:

  1. [投稿]JavaScriptでBASICっぽい言語をつくる

Facebook comments:

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*