2021-03-18
プログラミング言語はいくつあるでしょう? 何を持って1つのプログラミング言語と呼ぶかに依りますが「Online Historical Encyclopaedia of Programming Languages」の数え方では8,945言語とのこと。

言語は1つで十分と人間界でも言えないように、コンピューターと会話するための言語も1つというわけにはいきません。 様々なコンピューターの設計があり、様々な用途があり、様々な言語開発者のこだわりがあります。 自分にぴったりなものがないと感じたら、創ってしまうことが気軽にできるソフトウェアの世界、世界中で新しい言語が誕生します。 中学生が開発した「Blawn」も有名ですね!(15歳が独自プログラミング言語「Blawn」を発表 わずか数週間で開発 - ライブドアニュース


Go言語が好きだけど、ちょっと不満があることできっと誕生したV言語でGeo3x3を実装してみました。(src on GitHub、公式ロゴできました!Thanks < macoto1655)

module geo3x3 pub fn encode(lat f64, lng f64, level int) string { if level < 1 { return "" } mut res := "E" mut flat := lat mut flng := lng if lng < 0.0 { res = "W" flng += 180.0 } flat += 90.0 // 0:the South Pole 180:the North Pole mut unit := 180.0 for _ in 1 .. level { unit /= 3.0 x := int(flng / unit) y := int(flat / unit) res += (x + y * 3 + 1).str() flng -= f64(x) * unit flat -= f64(y) * unit } return res }

Go言語よりちょっとコンパクトに書けてなかなかいい感じです。 値を変化させるときにはRustのようにmutを付けることと、文字を囲む時の記号が ' ではなく、` なのがポイントで、好みが分かれるところかも。

V言語は、C言語のソースコードを生成するトランスパイラとして実装されています。

C言語の最初の #include 行を書くのが嫌 → 1行追加するトランスパイラ言語
forやifをIchigoJamのように大文字で書きたい → FORやIFを小文字に変換するトランスパイラ言語
{}じゃなくてbegin/endで書きたい → #define begin { を追加するトランスパイラ言語
・・・

好みに合わせて無限にできそうですね。
自分だけの言語、一度創ってみること、オススメです!


プログラミング好きなこどもたちのおまつり、PCNこどもプロコン今週末!


プログラミング好きな高専生のおまつり、jigインターン今週末締め切り!

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS