More interesting is that Intel PC BIOSs contain AML byte code - this code is in the ACPI DSTD and is interpreted by the Linux ACPI AML interpreter. So even the Linux kernel contains an interpreter to run BIOS ACPI code. But this interpretation of byte code code goes even further in the low-level system side. Soon we will see newer PCs will moving away from the traditional BIOS boot mechanism and using Extensible Firmware Interface (EFI). The boot mechanism allows EFI bootloaders to be compiled into an EFI byte code image using a PE/COFF (Portable Extensible Common Object File Format) executable header. So even the system bootstrapping can run intepreted byte code.
We have a zoo of many flavours of byte code; much effort is put into making them run efficiently on different processors. Some may argue that code is nearly as fast as native code, and the gain from portability and flexibility is a price worth paying at the cost of a slower execution.
Whatever the argument, I do wonder how much longer my laptop battery would last of my CPU was executing compiled native code instead of churning away interpreting different forms of byte code. I'm very curious to find out what percentage of CPU cycles are used in running native code and in running intpreted code, and how this will look in 10 years time.... you never know, perhaps by 2020 large chunks of the kernel will be interpreted(!)