There are compiled and interpreted computer languages.
There are many languages, which are called compiled, but their “compiled” code is some kind of intermediate code, not machine code. The software which executes the intermediate code is often referred as Virtual Machines. In my eye these VMs are only interpreters. Weak ones: they require preprocessed sources.
Real compilers produce machine code. If you want speed, you need machine code. Using the right algorithm for the computing is even more important.
Using the good algorithm is essential, but then you want the software spend the time on executing operations defined by the algorithm, and not wasting the time on interpreting code and searching for the operands. The fastest code finds the operands in fixed relative positions of a single context. Searching for operands by name on several contexts which embed each other could slow down the execution of the algorithm multiple times.