hakobera's blog

技術メモ。たまに雑談

プログラミング言語? ほむほむっ.js

偉大なる元ネタ
プログラミング言語「ほむほむ」 - ( ꒪⌓꒪) ゆるよろ日記

終電逃して暇だったのでJavaScript でも書けるんじゃないかと思って書いてみたら、できたので公開しておきます。

プログラミング言語?「ほむほむっ」 - jsdo.it - Share JavaScript, HTML5 and CSS

「ほむほむっ」で hello,world

ほむほむっ ほむほむっほむほむ ほむ
ほむほむっほむ ほむっ ほむっほむほむほむっほむ
ほむほむほむっほむっほむほむ ほむほむほむほむ
ほむ ほむほむっほむほむ ほむほむっほむほむ
ほむっほむっほむっ
ほむっほむっほむほむほむっほむっ ほむほむっほむっ
ほむっほむっほむっ
ほむほむっほむ ほむほむっほむほむ ほむっほむほむ
ほむほむほむっほむっほむほむ
ほむほむっほむっほむほむっほむ
ほむほむっほむほむっほむほむっ

解説

前提
  • 1時間くらいで書いたので、いろいろとやっつけ。
  • 実用性はまったくない
プログラミング言語

ソースを読めばわかりますが、プログラミング言語じゃなくて、単なる「ほむコンバータ」です。
やっていることは、以下の通りです。

  1. 「ほむほむっ」=> モールス信号に変換
    • 「ほむ」が「.」で、「ほむっ」が「-」、空白文字はそのまま
  2. モールス信号をアルファベットに変換
    • 変換表は Wikipedia にのっているやつを使った
    • ただし、記号の対応表は一部変更
  3. 2. で得られた文字列を JavaScript のソースとして eval

ちなみに、「ほ」、「む」、「っ」、空白文字以外は無視されるので、好きな文字列を書き加えることができるので、以下も hello,world として変換されます。

私は・・・・鹿目さんとの出会いをやり直したい。
彼女に守られる私じゃなくて、彼女を(ry ほむほむっ
ほむほむっほむほむ
ほむ ほむほむっほむ ほむっ ほむっほむほむほむっほむ
ほむほむほむっほむっほむほむ ほむほむほむほむ
ほむ ほむほむっほむほむ ほむほむっほむほむ
ほむっほむっほむっ
ほむっほむっほむほむほむっほむっ ほむほむっほむっ
ほむっほむっほむっ
(◕‿‿◕) < 「僕と契約して魔法少女になってよ!」
「だが断る!!」
ほむほむっほむ ほむほむっほむほむ ほむっほむほむ
ほむほむほむっほむっほむほむ
ほむほむっほむっほむほむっほむ
ほむほむっほむほむっほむほむっ
応用例
  • 同じ文字列の繰返しはできない(「マミマミ」はダメ、「マミる」はできる)
  • つまり、以下のように書き換えれば、「マミる」ができる
Homu.compile = function(src) {
    var compiled = src.replace(/[^マミる\s]/g, '');
    compiled = compiled.replace(/マミ/g, '-');
    compiled = compiled.replace(/る/g, '.');
    return compiled;
};

まとめ

  • ネタ言語の中間言語として、モールス信号を使うアイデアはなかなか面白いかもしれない。ただし、実用性はない。
  • このエントリを書いていて、昨日は疲れていたらしいことはわかった。