高レベルの言語を低レベルの言語にコンパイルするのは簡単です。行われている例は無数にあります。多くの接線を外すことなく、Cにコンパイルされた初期のC ++コンパイラを指すことができます。
しかし、「クリーン」と「読み取り可能」をミックスに投入し始めると、事態は本当に難しくなります。簡潔で読みやすいコードは、あなたが書いていたものの意味と意図を表します。コンピューターは、意味の解釈と作成に悪名高い。名前付き変数で終わる可能性が高いですint_147
よりinput_buffer_length
。もちろん、このプロジェクトを本当に機能させたい場合は、大規模なAIプロジェクトに参加して、Lispを適切に読み取り可能なC ++に変換することもできますが、完全に正直に言うと、Common Lispコンパイラーは非常に優れています。
LispからC ++を生成する難しさよりも重要なのは、これの有用性です。生成されたC ++が読み取り可能になるのはどのような目的ですか?Lispがソースコードである場合、中間表現は無関係です。元のLispを理解していないプログラマーにC ++を渡したい場合、別の問題が発生しています。生成されたC ++を変更したい場合はどうなりますか?彼らがあなたのLispにきれいに翻訳しないものをC ++で書くとどうなりますか?
それを解決したとしましょう。10年後、数億ドルのDoD助成金を使い果たした後、Lispを慣用的なC ++に、またはその逆に変換できるこの巨大で複雑な(ただし完璧な)言語翻訳エンジンを構築しました。人々に新しいプログラミング言語を教えるか、2つの言語をリンクできる新しいコンパイラーを開発するだけでは、これ以上の成果は得られないでしょうか。
ああ、そう。あなたの上司はあなたにC ++を書くことを望んでいますが、そうではありません。履歴書を更新して、新しい仕事を見つけてください。