3

Perlに変換したいCで書かれたプロジェクトがあります。私の友人はLLVMの使用を提案しました。Clangを使用してCコードをLLVMアセンブリにコンパイルしました。現在、この中間表現をPerlに変換しようとしていますが、そのバックエンドが見つからないようです。誰かが私を正しい方向に向けてくれませんか?

4

2 に答える 2

7
  1. いいえ、そのようなバックエンドはありません。少なくとも直接ではありません。EmscriptenはLLVMIRをJavascriptに変換しますが、他の何かを使用してそれをPerlに変換できるかもしれません。
  2. プロジェクトをある言語から別の言語に移動するのはかなり悪い考えです。コードは完全に読み取り不能で保守不可能になります。正直に書き直すか、Perlの外部関数インターフェイスツールを使用してCをライブラリとしてラップし、 Perlから使用します。
于 2013-03-16T14:45:21.400 に答える
6

Perlへの変換はダメです。PerlでCをエミュレートするのはめちゃくちゃ遅いので、それは行われていません。初心者のために、彼らは完全に異なる型システムを持っています。ただし、Perlから呼び出すためにコードをPerlに変換する必要はまったくありません。コンパイルされたCコードをPerlからロードできます。

あなたがしなければならないことは、それらのC関数を呼び出す方法をPerlに教えることです。Perlはスカラーなどを扱いますが、Cはintなどを扱います。これはXSを使用して行われます。

perlxstutには、これをすべて行う方法に関するドキュメントが含まれています。

于 2013-03-16T17:18:49.610 に答える