Skip to main content
added 8 characters in body
Source Link
Olive
  • 470
  • 2
  • 8

It is not possible to create a fully bootstrapped interpreter. However, it is entirely possible to create a bootstrapped compiler that targets some lower language which is then interpreted. For example, you could write a Java compiler in Java that targets JVM bytecode. This isn't full bootstrapping in the original sense, as it still requires an interpreter for this bytecode that's written in another language. However, this approach still reaps much of the benefits of bootstrapping.

This is quite similar to compiled languages with self-hosted compilers that target an existing intermediate representation. For example, the major compilers for both Rust and Zig (as well as many other languages I do not have the pleasure of knowing) are self-hosted but target the LLVM bytecode.

It is not possible to create a bootstrapped interpreter. However, it is entirely possible to create a bootstrapped compiler that targets some lower language which is then interpreted. For example, you could write a Java compiler in Java that targets JVM bytecode. This isn't full bootstrapping in the original sense, as it still requires an interpreter for this bytecode that's written in another language. However, this approach still reaps much of the benefits of bootstrapping.

This is quite similar to compiled languages with self-hosted compilers that target an existing intermediate representation. For example, the major compilers for both Rust and Zig (as well as many other languages I do not have the pleasure of knowing) are self-hosted but target the LLVM bytecode.

It is not possible to create a fully bootstrapped interpreter. However, it is entirely possible to create a bootstrapped compiler that targets some lower language which is then interpreted. For example, you could write a Java compiler in Java that targets JVM bytecode. This isn't full bootstrapping in the original sense, as it still requires an interpreter for this bytecode that's written in another language. However, this approach still reaps much of the benefits of bootstrapping.

This is quite similar to compiled languages with self-hosted compilers that target an existing intermediate representation. For example, the major compilers for both Rust and Zig (as well as many other languages I do not have the pleasure of knowing) are self-hosted but target the LLVM bytecode.

Source Link
Olive
  • 470
  • 2
  • 8

It is not possible to create a bootstrapped interpreter. However, it is entirely possible to create a bootstrapped compiler that targets some lower language which is then interpreted. For example, you could write a Java compiler in Java that targets JVM bytecode. This isn't full bootstrapping in the original sense, as it still requires an interpreter for this bytecode that's written in another language. However, this approach still reaps much of the benefits of bootstrapping.

This is quite similar to compiled languages with self-hosted compilers that target an existing intermediate representation. For example, the major compilers for both Rust and Zig (as well as many other languages I do not have the pleasure of knowing) are self-hosted but target the LLVM bytecode.