Results 1 -
2 of
2
Making Mobile Code Both Safe and Efficient
, 2003
"... Mobile programs can potentially be malicious. To protect itself, a host that receives such mobile programs from an untrusted party or via an untrusted network connection will want some kind of guarantee that the mobile code is not about to cause any damage. The traditional solution to this problem h ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Mobile programs can potentially be malicious. To protect itself, a host that receives such mobile programs from an untrusted party or via an untrusted network connection will want some kind of guarantee that the mobile code is not about to cause any damage. The traditional solution to this problem has been verification, by which the receiving host examines the mobile program to discover all its actions even before starting execution. Unfortunately, aside from consuming computing resources in itself, verification inhibits traditional compiler optimizations, making such verifiable mobile code much less efficient than native code. We have found an alternative solution...
Dipl.-Inf. Guido Tack ii
"... selbstständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel verwendet habe. Saarbrücken, 29.03.2006 iii iv Alice is a functional programming language that extends Standard ML with support for distributed and concurrent as well as constraint programming. One key feature of th ..."
Abstract
- Add to MetaCart
selbstständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel verwendet habe. Saarbrücken, 29.03.2006 iii iv Alice is a functional programming language that extends Standard ML with support for distributed and concurrent as well as constraint programming. One key feature of the system is that code is communicated in a high-level platform-independent format, called Alice Abstract Code, which is statically generated from Alice source code. The system ensures efficient execution by run-time compilation to native code. However, the native code compiler is not portable and it is hard to maintain. This thesis develops a portable execution unit based on byte code. A new run-time compiler compiles the Abstract Code to Alice byte code that is executed by a registerbased interpreter. Specialized instructions and dynamic code rewriting are used to speed up interpretation. The module system of Alice imposes a strict separation of software blocks. This is only resolved at run-time as modules are linked dynamically. Thus, the run-time compiler has much more knowledge about the current state of the system than the static compiler. One optimization that is particularly effective at run-time is inlining. Two different forms of inlining (inlining of primitive operations, procedure integration) are investigated to reduce the overhead of procedure calls. The compilation strategy of the native code compiler is generalized to selective compilation in order to avoid compilation of rarely executed procedures. The byte code system sets the new standard for platform-independent execution in Alice, starting from release 1.2. This thesis presents a careful analysis of the system and shows that its performance is competitive to the native code system. v vi

