- ベストアンサー
Perlソースコードをコンパイルすることはできないのでしょうか?
Perlはインタプリタ言語とされますが、実行の際には機械語に翻訳されているのでしょうから、機械語のコードをオブジェクトファイルとして保存して、そのまま使うことはできないのでしょうか? そうすれば実行するときに翻訳する必要がなく、実行速度が多少上がるのではないかな、と思いました。 直接関係のない関連事項でも、宜しくお教えください
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
http://aspn.activestate.com/ASPN/docs/ActivePerl/5.8/lib/Pod/perlrun.html Perl のコマンドラインオプション -u を指定するとスクリプトをコンパイル後コアダンプします。 undump コマンドを使ってcore ファイルから実行ファイルが作成できるというようなことが上記サイトの説明として載っています。 あと、ツールでPerl2exe というのもあるらしいです。
その他の回答 (4)
- umasikajiro
- ベストアンサー率67% (545/803)
windowsでしたらBLUEPIXYさんの書かれたper2.exeやPerl デベロッパーキット http://0xcc.net/diary/20040716.html http://www.indigostar.com/perl2exe.htm http://www.activestate.com/Products/Perl_Dev_Kit/?utm_source=ASPN_ActivePerl&utm_medium=banner&utm_campaign=PerlDevKit 他 http://www.perl.com/doc/manual/html/utils/perlcc.html http://search.cpan.org/~mbarbon/ http://par.wikia.com/wiki/Main_Page
- tropic_snow
- ベストアンサー率61% (51/83)
バイトコードを生成したい、ということでしょうか。 参考URL中の、「バイトコードとコンパイラー・バックエンドを使う」の辺りを参考にして下さい。 ただし、どんな場合でも有効に働くわけではありません。 アルゴリズムによる最適化を第一に考え、バイトコードの使用は「極限まで」速くしたい場合の最後の手、という気がしますけどね。
- sakusaker7
- ベストアンサー率62% (800/1280)
前提が間違っています。 内部表現に変換されてそれを解釈実行するルーチン群が動いているのであって、 JavaのVMのように機械語レベルのコードまで落ちることはありません。 実行速度を上げたいということなら、perlのFAQにありますので 探してみてください。
- OsieteG00
- ベストアンサー率35% (777/2173)
PerlではなくてCなどをCGIとして使用すればよいのではないでしょうか?
お礼
なるほど それならコンパイル済みですね 参考になりました