12. A computing device, comprising: one or more processors; a storage device storing code for a program that is to be executed on the computing device; a plurality of sandboxing components that are each configured to execute the program on the computing device using respective software-based fault isolation techniques that are different from each other; and an application environment selector configured to select, from among the plurality of sandboxing components and based on a set of selection criteria, a first sandboxing component with which to execute the program.
12. A computing device, comprising: one or more processors; a storage device storing code for a program that is to be executed on the computing device; a plurality of sandboxing components that are each configured to execute the program on the computing device using respective software-based fault isolation techniques that are different from each other; and an application environment selector configured to select, from among the plurality of sandboxing components and based on a set of selection criteria, a first sandboxing component with which to execute the program. 15. The computing device of claim 12 , wherein: the code for the program that is to be executed on the computing device is portable code; the computing device further comprises a plurality of translator components that are each configured to use different techniques to translate the portable code into a machine-specific instruction set of the computing device; and the application environment selector is further configured to select, based on the set of selection criteria, a first translator component with which to translate the program.