こんにちは、Habr。 少なくともプログラミングに対して横向きの態度を持っている人の多くは、少なくとも一度は難解なプログラミング言語について聞いたことがあると思います。 同じBrainfuck。
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++ .>+.+++++++..+++.>++.<<+++++++++++++++.>.+++. ------.--------.>+.>.
それはただ私を震えさせますが、有名なハリウッド俳優からの引用からプログラミング言語を作成できる誰かがいると思っていたでしょう。
フィンランドのプログラマーであるLauri Hartikkaは、GithubでArnoldCプログラミング言語の説明とコンパイラを公開しました。 ArnoldCは、Arnold Schwarzeneggerのキャラクターからの引用をチームとして使用します。
コード例
BECAUSE I'M GOING TO SAY PLEASE a TALK TO THE HAND "a is true" BULLSHIT TALK TO THE HAND "a is not true" YOU HAVE NO RESPECT FOR LOGIC
さらに、この言語は非常に多機能であり、次のような簡単なアクションを実行できます。
追加
GET UP operand
減算
GET DOWN operand
乗算
YOU'RE FIRED operand
部門
HE HAD TO SPLIT operand
基本的な演算子(フレーズへのリンク付き)
嘘をついた
真の問題なし
私が言うつもりだから
それ以外の場合
ロジックを尊重していない場合
スティックアラウンド中
EndWhile CHILL
PlusOperator GET UP
MinusOperator GET DOWN
乗算演算子
DivisionOperator HE HAD TO SPLIT
あなたは私と同じではない
GreaterThan LET OFF SOME STEAM BENNET
または離婚を検討する
ノックノック
MethodArguments 私はあなたの服とあなたのブーツとあなたのオートバイが必要です
戻る
EndMethodDeclaration HASTA LA VISTA、BABY
CallMethod DO IT NOW
AssignVariableFromMethodCallからMARSへのASSの取得
EndMain 終了しました
手で話す
AssignVariable チョッパーへのGET
SetValue こちらが私の招待です
EndAssignVariable ENOUGH TALK
ParseError何が間違っていたのか
真の問題なし
私が言うつもりだから
それ以外の場合
ロジックを尊重していない場合
スティックアラウンド中
EndWhile CHILL
PlusOperator GET UP
MinusOperator GET DOWN
乗算演算子
DivisionOperator HE HAD TO SPLIT
あなたは私と同じではない
GreaterThan LET OFF SOME STEAM BENNET
または離婚を検討する
ノックノック
MethodArguments 私はあなたの服とあなたのブーツとあなたのオートバイが必要です
戻る
EndMethodDeclaration HASTA LA VISTA、BABY
CallMethod DO IT NOW
AssignVariableFromMethodCallからMARSへのASSの取得
EndMain 終了しました
手で話す
AssignVariable チョッパーへのGET
SetValue こちらが私の招待です
EndAssignVariable ENOUGH TALK
ParseError何が間違っていたのか
以下の例では、論理演算子がどのように実装されているかを確認できます。
a = (b || c) && d
GET TO THE CHOPPER a HERE IS MY INVITATION b CONSIDER THAT A DIVORCE c KNOCK KNOCK d ENOUGH TALK
より複雑な例を次に示します。
IT'S SHOWTIME HEY CHRISTMAS TREE result1 YOU SET US UP 0 HEY CHRISTMAS TREE result2 YOU SET US UP 0 HEY CHRISTMAS TREE result3 YOU SET US UP 0 HEY CHRISTMAS TREE result4 YOU SET US UP 0 GET YOUR ASS TO MARS result1 DO IT NOW modulo 9 4 TALK TO THE HAND result1 GET YOUR ASS TO MARS result2 DO IT NOW modulo 4795 87 TALK TO THE HAND result2 GET YOUR ASS TO MARS result3 DO IT NOW modulo 3978 221 TALK TO THE HAND result3 GET YOUR ASS TO MARS result4 DO IT NOW modulo 5559 345 TALK TO THE HAND result4 YOU HAVE BEEN TERMINATED LISTEN TO ME VERY CAREFULLY modulo I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE dividend I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE divisor GIVE THESE PEOPLE AIR HEY CHRISTMAS TREE quotient YOU SET US UP 0 HEY CHRISTMAS TREE remainder YOU SET US UP 0 HEY CHRISTMAS TREE product YOU SET US UP 0 GET TO THE CHOPPER quotient HERE IS MY INVITATION dividend HE HAD TO SPLIT divisor ENOUGH TALK GET TO THE CHOPPER product HERE IS MY INVITATION divisor YOU'RE FIRED quotient ENOUGH TALK GET TO THE CHOPPER remainder HERE IS MY INVITATION dividend GET DOWN product ENOUGH TALK I'LL BE BACK remainder HASTA LA VISTA, BABY
このコードフラグメントでは、関数はモジュロとして宣言され、mainメソッドで使用されます。
HelloWorld.arnoldc
IT'S SHOWTIME TALK TO THE HAND "hello world" YOU HAVE BEEN TERMINATED
詳細については、著者のページでこの言語に慣れることができます 。