1. ホーム
  2. language-design

[解決済み] 誰かが新しいプログラミング言語を書くとき、彼らはそれを何で書くのだろう?

2022-04-21 03:18:21

質問

無知をお許しください。PHPに手を出し、SOの閲覧に足を踏み入れているところですが、長年疑問に思っていたことを質問したくなりました。

全く新しいプログラミング言語を書くとき、何を書きますか? を使用するのでしょうか?

プログラマーの皆さんは、このことをとても尊敬しているのですが、私にとっては、鶏と卵のような不可解なことなのです。あなたはどうしますか?自分自身にこう言ってみてください。 今日、私は新しい言語を発明するつもりだ!」。 と言って、起動する。メモ帳?すべてのコンパイラは既存の言語の上に構築されており、悩むとすれば、これまでに考案されたすべてのプログラミング言語を1つの巨大な枝木に描き、最終的には...に行き着くということだろうか。よくわからないけど、何か 古い?

私の貧弱な知性では、これは魅力的なことだと思います。お願いです、私を教育してください

解決方法は?

愚かな質問ではありません。素晴らしい質問です。

すでに回答しているように、短い答えは「別の言語」です。

そうすると、面白い疑問が湧いてきますね。もし、その言語が最初に書かれたものだとしたら、どうでしょう? そのハードウェアはどうでしょうか?組み込み機器に携わる人々にとっては、非常に現実的な問題です。すでに回答したように、「別のコンピュータの言語」です。実際、組み込み機器によってはコンパイラを入手できないものもあり、そのプログラムは常に別のコンピュータでコンパイルされることになります。

しかし、もっとさかのぼることができます。初めて書かれたプログラムはどうでしょう?

高水準言語用の最初のコンパイラは、アセンブリ言語と呼ばれるもので書かれていたはずです。アセンブリ言語は、言語内の各命令がCPUの1つの命令に対応する言語です。非常に低レベルな言語であり、非常に冗長で、書くのに非常に手間がかかる。

しかし、アセンブリ言語を書くにも、アセンブリ言語を"機械語に変換するアセンブラと呼ばれるプログラムが必要なのです。さらにさかのぼる。最初のアセンブラは、機械語(マシン語)で書かれていた。2進数のみで構成されたこのプログラムは、コンピュータ本体の生の言語と一対一で直接対応している。

しかし、まだ終わらない。生の数字だけを書き込んだファイルでも 今も 翻訳が必要です。やはりファイルにある生の数字をコンピュータに取り込む必要があります。

信じられないかもしれませんが、初期のコンピュータは、前面にスイッチが並んでいました。2進数を表すまでスイッチを入れ、次に別のスイッチを入れると、その1進数がコンピューターのメモリーに読み込まれます。そして、ディスクファイルやパンチカードからプログラムを読み込むことができる最小限のコンピュータープログラムをロードするまで、スイッチを切り替えることを続けたのです。さらにスイッチを押せば、プログラムが動き出す。80年代に大学へ行ったとき、そのような能力を持ったコンピュータを見たことがありますが、スイッチでプログラムを読み込むという仕事は与えられませんでした。

また、それ以前は、コンピュータのプログラムは、ハードワイヤで接続する必要がありました。 プラグボード !