( ꒪⌓꒪) ゆるよろ日記

( ゚∀゚)o彡°オパーイ!オパーイ! ( ;゚皿゚)ノシΣ フィンギィィーーッ!!!

プログラミング言語 「天使ちゃんマジ天使」と「ブブゼラ」を作ってみたよ

今AngelBeats!見てます。天使ちゃんマジ天使でいいと思います。


で、だいぶ前に作ったScala版のちょっと草植えときますね型言語 Grassを改造して、プログラミング言語 「天使ちゃんマジ天使」とプログラミング言語ブブゼラ」を作ってみたよ。


Grassは、id:uenoB 作の型無しラムダ計算がベースをした関数型言語らしいです。(6/22追記)
ちょっと草植えときますね型言語 Grassについてはこちら。
世界で最初のGrassプログラム - Garage uenoB
ちょっと草植えときますね型言語 Grass

プログラミング言語 「天使ちゃんマジ天使」

ちょっと草植えときますね型言語 Grassの派生言語というかまんまです。
Grassで使用する文字(w,W,v)をそれぞれ(天使, マジ, ! )に置き換えただけです。


wを出力するプログラム:

天使ちゃんマジマジ天使天使ちゃん天使ちゃん天使ちゃん


Hello,world:

天使ちゃん!天使ちゃんマジ天使天使ちゃん天使ちゃん天使ちゃんマ
ジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマ
ジマジマジマジ天使マジマジマジマジマジ天使天使ちゃん天使ちゃん
天使ちゃん!天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマ
ジ天使天使ちゃんマジ天使天使ちゃんマジマジマジマジマジマジ天使
天使ちゃん天使ちゃん天使ちゃんマジ天使天使ちゃん!天使ちゃんマ
ジマジ天使マジ天使天使ちゃん!天使ちゃん天使ちゃんマジマジ天使
!天使ちゃんマジマジマジ天使天使ちゃんマジマジマジマジマジ天使
天使ちゃん天使ちゃんマジ天使天使ちゃんマジマジマジマジマジマジ
天使マジマジマジマジマジマジマジ天使マジマジマジマジ天使マジマ
ジマジマジマジ天使マジマジマジマジマジマジ天使マジマジマジマジ
マジマジマジマジマジマジマジマジマジマジ天使天使ちゃん天使ちゃ
ん天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジ天使マ
ジ天使マジマジマジ天使天使ちゃんマジマジマジマジ天使天使ちゃん
天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマジ
マジマジ天使天使ちゃん天使ちゃん天使ちゃん天使ちゃん天使ちゃん
天使ちゃんマジマジマジマジマジマジ天使天使ちゃん天使ちゃん天使
ちゃん天使ちゃん天使ちゃん天使ちゃんマジマジマジマジマジマジマ
ジマジマジマジマジマジマジマジマジマジマジマジマジマジマジ天使
天使ちゃん天使ちゃん天

長いので以下略


ヒドイですね?

プログラミング言語ブブゼラ

ちょっと草植えときますね型言語 Grassの派生言語というかまんまです。
Grassで使用する文字(w,W,v)をそれぞれ(ェ, エ, ベ )に置き換えただけです。


wを出力するプログラム:

ヴェエエェェェェ


Hello,world:

ヴェベェエェェェェエェェェェェェエエエエエェエエエエエェェェェ
ベェェェェエエエェェエェェエエエヴエエエェェェェエェェベェエエ
ェエェェベェェエエェベェエエエェェエエエエエェェェエェヴェエエ
エエエエェエエエエエエエェエエエエヴェエエエエエェエエエエエエ
ェエエエエエエエエエエエエエエェェェェェェェェエェエェエエエェ
ェエエエエェェェェェェェエエエエエヴェェェェェェェエエエエエエ
ェェェェェェェエエエエエエエエエエエエエエエエエエエエエェェェ
ェェヴェェェェェェェェェェェェェェェェエェェェェェェェェェェェ
ェェェェェェェェェエェェェェェェェェェェェェェエェェェェェェエ
エェェェェェェエエエェェェェヴェェエエエエエエェェェェェェェェ
ェェェェェェェェェェェェエェェェェェェェェェェエエェェェェエヴ
エエェェェェエエエエェエエエエエェェェェェェェェェェェェェェェ
ェェェエエエエエエエエエエエェエェェェエエェエエエェエエエヴエ
ェエエエエエエエエエエエエヴエエエエエェェェェェェェェェェェェ
ェェェェェエェェェェェェェェェェェェェェェェェェェェェェェェェ
ェェェェェェェェェェェェヴェエェェェェェェェェェェェエエェェェ
ェェェェェェェェエエエェェェェェェェエエエエェエエヴエエヴエェ
ェェェェェェェエエエエヴエエェェェェェェェェェェェェェェェェェ
ェェェェエエエエエエエェェェェェェェェェェェェェェェェェェェェ
ェェェェェェェェエエヴエエエエエエエェェェェェェェェエェェェェ
ェェェェェェェェェェェェェェェェェェェェェェェェェェェェエエェ
ェェェェェェェェェヴェェェエエエェェェェェェェェェェェェェエエ
エエェェェェェェェェエエエエエェェェェェェェェェヴェェェェェェ
ェェェェェェェェェヴェェエエエエエエェェェェェェェェェェェェェ
ェェェェェェェェェェェェ


ワールドカップ観戦時にお役立てください(?)

Grassのジェネレータ

まぁScalaのパーザーコンビネータの練習で作ったんですが、こんな感じでトークンを指定するとGrassで使用する文字を置き換えたてきとーオレオレ言語を作るジェネレータです。

    println( "プログラミング言語 天使ちゃんマジ天使" )
    val angelg = new GrassParser( List("天使"),List("マジ"),List("!") )

    println( "プログラミング言語 ブブゼラ" )
    val bubuzera= new GrassParser( List("ェ"),List("エ"),List("ベ") )


ソースはこっち


ProgramGenerator/Grass/Grass.scala at master · yuroyoro/ProgramGenerator · GitHub

Brainf*ck派生言語のジェネレータ

似たようなもので、Brainf*ck派生言語のジェネレータも作りました。


こんな感じでBFの各トークンを指定することで派生言語を生成します。

    val bfParser = new BFParser(
      List("+"),
      List("-"),
      List(">"),
      List("<"),
      List("."),
      List(","),
      List("["),
      List("]"),size, maxLoop)

Brainf*ckについてはこちらを


ジェネレータのソースはこれ。


ProgramGenerator/BrainFuck/BFGenerator.scala at master · yuroyoro/ProgramGenerator · GitHub


以下いくつかのサンプルを。それぞれのHelloWorldの例ですよ。カオスですね?

brainf*ckでジョジョ言語

id:toyoshiさんがつくったジョジョ言語をやってみます。


ジョジョ言語についてはこちらを。


brainf*ckでジョジョ言語 - toyoshiの日記

    val jojoParser = new BFParser(
      List("オラ"),
      List("無駄"),
      List("スターフィンガ" , "やれやれだぜ"),
      List("ロードローラ" , "貧弱"),
      List("ハーミットパープル"),
      List("新手のスタンド使いか"),
      List("あ・・・ありのまま今起こったことを話すぜ" ),
      List("ザ・ワールド" ), size, maxLoop )

    println()
    println( "JoJo言語" )
    jojoParser.run("""
オラオラオラオラオラオラオラオラオラッ!!

「あ・・・ありのまま今起こったことを話すぜ
俺は奴の前で階段を登っていたと思ったら、いつの間にか降りていた
な…何を言っているのかわからねーと思うが、
俺も何をされたのかわからなかった…
頭がどうにかなりそうだった…催眠術だとか超スピードだとか、
そんなチャチなもんじゃあ断じてねえ。
もっと恐ろしいものの片鱗を味わったぜ…」

スターフィンガー!
オラオララララ!
オラッ!オラオラララララオラオラオラァ!!!
スターフィンガー!!!
オラァオラオラオラオラオラオラッオラ!!
オラオラァァァァァオララララララララララ!
スターフィンガー!

オラオラオラオラオラ! つけの領収書だぜ!

力比べというわけか!
知るがいい…!『ザ・ ワールド』の真の能力は…まさに!『世界を支配する』能力だと言うことを!

「ロードローラだ!ロードローラだ!ロードローラだ!」
無駄ッッッ!

ザ・ワールドッッ

スターフィンガー!
「ハーミットパープル」
スターフィンガー
オラオラ!

「ハーミットパープル」

オラオラオラオラオラオラオラ
ハーミットパープル!ハーミットパープル!

オラオラオラ

ハーミットパープル!
スターフィンガー!

無駄ァ!
ハーミットパープル

無駄!無駄!
無駄無駄無駄無駄無駄無駄無駄無駄無駄無駄
WRYYYYYYYYYYYYYY!
“ジョースター・エジプト・ツアー御一行様”は貴様にとどめを刺して全滅の最後というわけだな

ハーミットパープル!
ロードローラだ!

オーラオラオーラオラオラオラオーラオラオラオラオラッ!
ハーミットパープル!
無駄無駄無駄無駄無駄無駄無駄無駄ッ
ハーミットパープル!
オラオラオラアアアアアアアア!
ハーミットパープル!
無駄ッ無駄ッ無駄ッ無駄無駄無駄ァツ!

ハーミットパープル

もうおそい! 脱出不可能よッ! 無駄無駄無駄無駄無駄無駄無駄無駄ぁぁ!
ハーミットパープル!

最高に『ハイ!』ってやつだアアアアア!アハハハハハハハハハーッ!!
スターフィンガー
オラ
ハーミットパープル!

てめーの敗因は・・・たったひとつだぜ・・・DIO たったひとつの単純(シンプル)な答えだ・・・ 『てめーは おれを怒らせた』
""")
プログラミング言語Misa

みさくら語でBrainf*ckしたものですのおぉおぉっあっっ!


プログラミング言語 Misa

    val misaParser = new BFParser(
      List("+" , "あ" , "ぁ" , "お" , "ぉ" ),
      List("-" , "っ" , "ッ") ,
      List(">" , "→" , "〜" , "ー"),
      List("<" ,  "←" ,  "★" , "☆"),
      List("." , "!" ),
      List("," , "?" ),
      List("[" , "「" , "『") ,
      List("]" , "」" , "』"),size, maxLoop )

    println()
    println( "プログラミング言語Misa" )
    misaParser.run("""
ごっ、ごぉおっ、ご〜きげんよおぉおおぉおほっ。ほおぉおぉおっ。

「ごきげん☆みゃぁああ”あ”ぁ”ぁああ〜っ」

さわやかな朝の☆ご挨拶! お挨拶がっ。
澄みきった青空にこだましちゃうぉ〜ああぉおおおぉん。

「は、はひっ、はろおぉっ☆わぁるどおおぉっぉ〜っ」

こ、この文章は☆おサンプル! おおぉおぉおおサンプルプログラム!!
どんなおプログラム言語でも基本のご挨拶させていただくのぉぉおッ!

「ぽうっ」

長々と書くのがこ、ここでの〜、ここでのぉおおぉおぉぉおたしなみぃぃいぃ。

「長いぃ。長すぎましゅう。ご挨拶にこんなプログラム長すぎまひゅぅうぅ☆
 んおおぉぉ、ばかになる、おばかになっちゃいましゅ〜ッ」

長いのがっ、バッファの奥まで入ってきましゅたぁあぁあっ!
ばっふぁ☆溢れちゃいまひゅぅ〜。あみゃぁあ”あ”ぁ”ぁああ”あ”ぁぁ。

「で、出ます☆ んおおぉぉおおっ、エラー出ちゃいまひゅっ」

ほひぃ☆! え、えらーっ、んお”お”ぉお”お”ぉおぉおおぉっっ。

「出た☆ 出た出た出た出たぁぁあっ えらあぴゅるーっって出たあぁっ」

はしたない☆! ぉおおぉはしたないっ! おはしたない言語ですっっっっっっっ!
おほっほおぉっっっほおぉっっっっっっっっっ!

「えらあらいしゅきぃぃぃいぃっっ」

止まらない すごい エラーみるく
こってりしたのがいっぱい出てるよぉぉぉおおぉぉおおぉぉおっっ。

「んほぉっ☆ っおぉぉぉおお国が分からなくなっちゃいまひゅう〜っ」

ま、まだ出るぅ☆ 出てるのおぉっ☆ エラーまだまだ出ましゅぅぅ!
ばんじゃ〜ぁぁあい、ばんじゃいぃぃ、ばんにゃんじゃぁんじゃあぁぁああぁい!
""")
プログラミング言語長門有希

長門っぽいのでBrainf*ckしたもの……。


プログラミング言語/Brainfuck - プログラミングスレまとめ in VIP

    val yukiParser = new BFParser(
      List("…"),
      List("・"),
      List("………。"),
      List("…………。"),
      List("………………。"),
      List("……………。"),
      List("「"),
      List("」"),size, maxLoop)

    println()
    println( "プログラミング言語長門有希」" )
    println()
    yukiParser.run(
"""
涼宮ハルヒのこと……… 。それと、わたしのこと……… 。あなたに教えておく…… 。

(涼宮とお前が…何だって?)

「うまく言語化できない………。情報の伝達に齟齬が発生するかもしれない………………
…… 。でも、聞いて………。涼宮ハルヒとわたしは普通の人間じゃない……………… 。

(なんとなく普通じゃないのは、わかるけどさ)

そうじゃない…………… 。 性格に普遍的な性質を持っていないという意味ではなく、文
字通りの意味で、彼女とわたしはあなたのような大多数の人間と同じとは言えない………。
この銀河を統括する情報統合思念体によってつくられた対有機生命体コンタクト用ヒュー
マノイドインターフェイス…………… 。それが、わたし…………。

(はい?)

通俗的な用語を使用すると宇宙人に該当する存在…………。

(う、ちゅうじん?)

わたしの仕事は涼宮ハルヒを観察して、入手した情報を統合思念体に報告すること…………。

(えっ?)

生み出されてから3年間、私はずっとそうやって過ごしてきた・・・。この3年間は特別な
不確定要素がなく、いたって平穏。でも最近になって無視出来ないイレギュラー因子が涼
宮ハルヒの周囲に現れた…… 。それが、あなた。」

情報統合思念体にとって銀河の辺境に位置するこの星系の第3惑星に特別な価値などなか
った………。でも現有生命体が地球と呼称するこの惑星で進化した二足歩行動物に知性と
呼ばれる思索能力が芽生えたことにより、その重要度は増大した………………。もしかし
たら自分たちが陥っている自律進化の閉塞状態を打開する可能性があるかも知れなかった
から………。宇宙に偏在する有機生命体に意識が生じるのはありふれた現象だったが、高
次の知性を持つまでに進化した例は地球人類が唯一だった。統合思念体は注意深くかつ綿
密に観測を続けた…… 。

そして3年前………………。惑星表面で他では類を見ない異常な情報フレアを観測した………………… 。
弓状列島の一地域から噴出した情報爆発は瞬く間に惑星全土を覆い、惑星外空間に拡散し
た………………。

その中心にいたのが涼宮ハルヒ………………。
以後3年間、あらゆる角度から涼宮ハルヒという個体に対し調査がなされた……… 。

しかし未だその正体は不明………………。それでも統合思念体の一部は、彼女こそ人類の、
ひいては情報生命体である自分たちに自律進化の切っ掛けを与える存在として涼宮ハルヒ
の存在を解析を行っている………。情報生命体である彼らは有機生命体と直接的にコミュ
ニケートできない・・・。言語を持たないから…… 。 人間は言葉を抜きにして概念を伝
達する術を持たない………………。だからわたしのような人間用のインターフェイスを作
った・・・・・・。情報統合思念体はわたしを通して人間とコンタクト出来る・・・・・・。

涼宮ハルヒは自律進化の可能性を秘めている………………。恐らく彼女には自分の都合の
良いように周辺の環境情報を操作する力がある…………。それが、わたしがここにいる理
由。あなたがここにいる理由…………………… 。

(待ってくれ。正直言おう、さっぱりわからない。)

信じて………………。

(そもそも、何で俺なんだ?いや、百歩譲ってお前の…その、情報なんとか体云々ってい
うのを信用したとして、なぜ俺に正体を明かすんだ?)

あなたは涼宮ハルヒに選ばれた・・・・・・・・・。涼宮ハルヒは意識的にしろ無意識的
にしろ、自分の意思を絶対的な情報として環境に影響を及ぼす………………。あなたが選
ばれたのには必ず理由がある……… 。

(ねぇよ。)

ある………………。あなたと涼宮ハルヒが、全ての可能性を握っている・・・・・・。

(マジで言ってるのか?)

もちろん………………。

『度を越えた無口な奴が、やっと喋るようになったかと思ったら、永延電波な事を言いや
がった。こんなトンデモ少女だったとは、さすがに想像外だぜ』

(あのな、そんな話なら直でハルヒに言った方が喜ばれると思うぞ。はっきり言うが、俺
はその手の話題には付いていけないんだ。悪いがな。)

情報統合思念体の意識の大部分は、涼宮ハルヒが自分の存在価値と能力を自覚してしまう
と予測できない危険を生む可能性があると認識している・・・。今はまだ様子を見るべき・・・・・。

(俺が今聞いたこと、ハルヒに伝えるかもしれないじゃないか)

彼女はあなたがもたらした情報を重視したりしない………………。

『確かに。』

情報統合思念体が地球に置いているインターフェイスは私一つではない………。情報統合
思念体の意識の一部は積極的の動きを起こして情報の変動を観測しようとしている… 。あ
なたは涼宮ハルヒにとっての鍵。危機が迫るとしたらまず、あなた………………。
"""
    )