問題タブ [esoteric-languages]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - これらのアセンブリニーモニックについての提案はありますか?
大学の前学期、コンピュータ言語クラスの私の先生は私たちにホワイトスペースという難解言語を教えてくれました。非常に忙しいスケジュール(中期)で言語をよりよく学ぶために、私はPythonでインタープリターとアセンブラーを作成しました。アセンブリ言語は、プログラムの作成を容易にするように設計されており、サンプルプログラムは、指定されたアセンブリニーモニックを使用して作成されました。
夏になった今、Whitespace 0.3のインタプリタとアセンブラを書き直すことを目的とした新しいプロジェクトが始まり、その後さらに開発が進んでいます。以前よりも設計に取り組む時間が非常に長いため、ここでは、アセンブリ言語のニーモニックの改訂セットを提供する概要を示します。この投稿は、彼らの議論のためのwikiとしてマークされています。
過去にアセンブリ言語の経験はありますか?別の名前に変更すべきだと思った指示はありましたか?箱の外で、ニーモニックの名前が付けられたパラダイムとは異なるパラダイムで考えていることに気づきましたか?これらの質問のいずれかに「はい」と答えられる場合は、ここで大歓迎です。主観的な回答をいただければ幸いです。
スタック操作(IMP:[スペース])
スタック操作は、より一般的な操作の1つであるため、IMP[スペース]が短くなっています。4つのスタック命令があります。
算術(IMP:[タブ] [スペース])
算術コマンドは、スタックの上位2つの項目を操作し、それらを操作の結果に置き換えます。最初にプッシュされたアイテムは、オペレーターの左側にあると見なされます。
ヒープアクセス(IMP:[Tab] [Tab])
ヒープアクセスコマンドは、スタックを調べて、保存または取得するアイテムのアドレスを見つけます。アイテムを保存するには、アドレスを押してから値を押し、storeコマンドを実行します。アイテムを取得するには、アドレスをプッシュして取得コマンドを実行します。これにより、スタックの最上位の場所に格納されている値が配置されます。
フロー制御(IMP:[LF])
フロー制御操作も一般的です。サブルーチンは、ラベル、および条件付きおよび無条件のジャンプのターゲットによってマークされます。これにより、ループを実装できます。インタプリタが正常に終了できるように、プログラムは[LF][LF][LF]を使用して終了する必要があります。
I / O(IMP:[タブ] [LF])
最後に、ユーザーと対話できる必要があります。数字と個々の文字を読み書きするためのIO命令があります。これらを使用して、文字列操作ルーチンを作成できます。読み取り命令は、スタックの最上位からの結果を格納するヒープアドレスを取得します。
質問:以前のニーモニックをどのように再設計、書き直し、または名前変更しますか?また、その理由は何ですか?
esoteric-languages - 難解言語ゾンビの実行方法
ゾンビで書かれたプログラムをコンパイルして実行するにはどうすればよいですか?たとえば、次のソースコードを記述して「helloworld」を画面に印刷した場合、それから.exeファイルを作成するにはどうすればよいですか。ありがとう!
programming-languages - Q、U、Yで始まる言語の「HelloWorld」
アルファベットのすべての文字に対して「helloWorld」プログラムを収集するという、ちょっとした楽しいプロジェクトを開始しました。たとえば、Aの場合はAda、Bの場合はBoo、 Cの場合はC ++、Dの場合はD、Eの場合はErlangなどです。
しかし、少し行き詰まりました。Q、U、Yの文字で始まるプログラミング言語が見つかりません。
esolang wikiからではなく、誰かが望ましい言語はありますか?
アップデート:
誰かが興味を持った場合に備えて、コレクションを完成させ てブログで利用できるようにしました
whitespace - 変数名にスペースを使用できる言語はありますか
変数名にスペースを使用できる重要な言語はありますか(またはこれまでにありましたか)?
Whitespaceという言語は知っていますが、実際にデモンストレーション以外の目的で使用されている言語に興味があります。
私は純粋な好奇心からこれを尋ねます。
esoteric-languages - Malbolge でのプログラミングを簡単にする方法はありますか?
Andrew Cookeは、Malbolgeの最初の "Hello World"プログラムを作成してから 2 年後に、遺伝的アルゴリズムを作成する必要がありました。飯沢尚は、ループ版の制作から8年を経て制作にこぎつけた。「Hello World」プログラムを作成する簡単な方法はありますか? 何か他のものを出力したい場合 (つまり、「すべてのベースは私たちのものです」など)、遺伝的アルゴリズムを使用する以外に、それを行うためのより簡単な方法は何でしょうか?
esoteric-languages - Golfscript で文字列のインデックスを見つけるにはどうすればよいですか?
文字列 "ABCDE" が与えられた場合、Golfscript で別の文字列 "C" の出現インデックスを見つけるにはどうすればよいですか?
? 演算子が機能していないようです ( http://www.golfscript.com/golfscript/builtin.html#? ):
"C" "ABCDE" ?
obfuscation - コードの難読化、「Wind Talkers」スタイル
第二次世界大戦 (および第 1 次世界大戦のようです) にさかのぼると、戦争当事者が使用する暗号化方式はクラックされ続けていました。その後、言語を理解したある天才が、難解な自然言語でメッセージを送信する方が、どの暗号よりも優れていることに気付きました。これは、言語が構文に関して相互に非常に大きな違いがあるためです。たとえば、ナバホ族と日本語などです。ナバホ族に基づくコードは解読されませんでした。タイトルは映画の引用です。
だから、これがどこに向かっているのかを見ることができます。ほとんどの人が知らないが、主要な認証モジュールを作成するのに十分なほど強力な、利用可能なネイティブコンパイラを備えた優れた言語は何ですか? Cobol のことを考えましたが、ネイティブ コンパイラを見つけることができませんでした。これは、最初に C やその他の標準言語に変換してから C をコンパイルするのではなく、直接機械語にコンパイルするコンパイラを意味します。
アセンブリ レベルではおそらくすべて同じであることは認識していますが、判読できない高レベル コードを記述できることが、状況によっては役立つ可能性があると考えています。
java - Javaでifステートメントを使用しない
これは非常に奇妙で、非常に具体的な質問です。
最終的に、私はJavaソースを取り込んで、それを使用しないように変換するプログラム変換を作成しようとしています(とりわけ)
- 配列
- ループ
- ユーザー定義のメソッド
- Ifステートメント
これらを使わずにプログラムを書くことは不可能だと先生から言われた後、これは私が自分で設定した課題です。
関数のインライン化や配列の置換など、これらのほとんどは解決しましたが、ifステートメントの管理方法を理解できません。
C ++では、ラベルとgotoを使用し、おそらく?:を使用しますが、JavaはGOTOステートメントをサポートしていません。
私の質問はこれです:コードのセクションを考えると、
機能的に同じになるように変換するにはどうすればよいですか。ただし、ifキーワードは使用しません。ループ構造も問題外であることに注意してください。
これを考えると、elseおよびelseifステートメントを作成するのは簡単です。ただし、GOTOステートメントがなく、メソッドが問題外であるため、これを使用してループを作成する方法もわかりません。
編集:スイッチも許可されておらず、再帰も許可されていないことに注意してください(ユーザーメソッドを定義できず、再帰的なメイン関数がすべてのプログラムで機能するとは限らないという事実によって除外されます)?:演算子はすべての状況で機能するわけではありません。AFAIKは、操作の一部として値を割り当てたいため、?:を使用してvoid関数を呼び出すことはできません。
これらの条件は、IB Computer Science SLがコースを必要とすることから来ています。私はHLを受講しており、クラスとして、「if」ステートメントを含むSLの「習熟」要素を笑っていました(そして、事実の3/15が「ユーザー定義」である場合paramsとreturntypesを持つメソッド)課題は、正しく機能するプログラムを作成しながら、SLでのマスタリーテストに事実上失敗することです。
回答:(bdaresによる)
java - 高度な Java コンソール入力
自己練習として、コンソールを介して I/O を行うBFインタープリターを Java で作成しています。ほとんどの場合は問題ありませんが、お気づきかもしれませんが、BF は一度に 1 文字 (改行を含む) の入力を受け取ります。これは、私が知る限り、標準のコンソール入力ライブラリが機能しないことを意味します。これは、文字列全体を取り込んで、最後にリターンを要求するためです。入力時に印刷せず,
に、に収まる次のキーストロークを取り込みたい。したがって、BF が入力を要求し、と入力すると、BF プログラムが後でそれ自体を出力しない限り、コンソールに表示されません。char
a
a
a
これどうやってするの?