シャア専用言語を作ってみた

こんにちは。JavaScript(とガンダム)を勉強中のエンジニアの庄子です。

だいぶ前に流行ったジョジョ言語等のBrainf*ck系スクリプトのインタプリタを、

シャア専用言語としてJavaScriptで実装してみました。

今さら感が否めませんが、ブログネタくらいにはなるだろうと思い、投稿してみます。

 

環境

・MAMP

・chrome

・jquery v2.1.0

 

言語仕様

基本的にはBrainf*ckの仕様と同じですが、ホワイトスペース(空白、改行等)でキーワードを区切る必要があります。

 

はっはっは            :ポインタが指す値をインクリメントする

なんということだ         :ポインタが指す値をデクリメントする

勝利の栄光を君に         :ポインタをインクリメントする

坊やだからさ           :ポインタをデクリメントする

見えるぞ、私にも敵が見える    :ポインタが指す値を出力に書き出す

見せて貰おうか          :入力から1バイト読み込んで、ポインタが指す先に代入する

認めたくないものだな       :ポインタが指す値が0なら、対応するループ終了の直後にジャンプする

自分自身の若さ故の過ちというものを:ポインタが指す値が0でないなら、対応するループ開始にジャンプする

 

ソースコードと実行環境

jsdo.itにアップしました。こちらで試せます。

http://jsdo.it/kojiro_shoji/edBU

 

テストしてみる

・”Hello, world!”を表示

基本中の基本、Hello worldです。

 

ソースコード

 

実行結果

シャア専用は(ソースコードの長さが)3倍です。

シャア専用は(ソースコードの長さが)3倍です。

 

・Fizz Buzz問題

3で割り切れる数字はFizz、5で割り切れる数字はBuzz、両方で割り切れる数字はFizzBuzzと表示します。

最初は自力で作ろうとしましたが…僕には難易度が高すぎました。なので、こちらを参考にさせて頂きました。

 

ソースコード

 

実行結果

言語仕様の違いが、戦力の決定的差ではないということを教えてやる...!

言語仕様の違いが、戦力の決定的差ではないということを教えてやる…!

 

 

感想

仕事の合間に作るつもりが、ループの処理が思ったより難しく、結局夜更かしすることに…。

自由にプログラミングしたのは久々だったので、楽しかったです。

あまり満足にテストしてませんので、バグ等あるかもしれませんが、ご愛嬌ということで。

 

これからもJavaScript(とガンダム)のお勉強がんばります。

以上です。



❏❏ TOPIC ❏❏ ------------------------------------------------------------

カスタム自由!フリーECサイトパッケージ
チャットボット導入サービス
WEBシステム開発・スマホアプリ開発はSRIAへ