技術

8.2.2. 安全性保証

初出時には第8章でしたが現在(2017/09/16時点)では原文のほうで新たに8章と9章が追加され、本章は10章となっているようです。
内容は初出時のまま残しておきますが原文へのリンクだけ10章のものを指すよう更新しました。

LLVMによるプログラミング言語の実装チュートリアル日本語訳
第8章 万華鏡: まとめとLLVMのその他の便利な点
第2.2節 安全性保証

前節で挙げた言語は、どれも安全な言語である。
例えば、Javaで書かれたプログラムでは、そのアドレス空間をいじったり、そのプロセスをクラッシュさせることは出来ない。(JVMにバグが無いと仮定したとして。)
言語の安全性は、言語のデザインや、ランタイムのサポート、そしてしばしばOSのサポート等の連携を要求する、興味深い特徴である。

もちろんLLVMで安全な言語を実装することはできるが、LLVM IRそのものは安全性を保証しない。
LLVM IRでは、安全でないポインタのキャストを行ったり、freeした後のアドレスにアクセスしたり、バッファオーバーランしたり、その他諸々の問題を引き起こしたりも出来る。
安全性は、LLVMの一番上の層として実装する必要があるが、好都合な事に、いくつかのグループがこれについて研究している。
この詳細について興味を持ったなら、llvmdevメーリングリストに質問を投げてみるといい。

コメントを残す

メールアドレスが公開されることはありません。



※画像をクリックして別の画像を表示

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください