Compilers vs Interpreters
Like Fruits vs Vegetables, they are not mutually exclusive.
Compiling implementation technique, translate a source language to another (usually lower level) form generating bytecode or machine code == compiling transpiling to another high-level language == compiling
translates, but does not execute. The user takes the output and runs it
Interpreting takes in source code and executes it immediately.
Examples
GCC/Clang are compilers, they take in C code and compiles it to machine code.
Early implementations of Ruby was just an interpreter. The code was parsed and executed directly by traversing the syntax tree.
Cpython: python code is parsed and converted to an internal bytecode format, and executed in a VM. Interpreter from the user’s perspective. But looking at Cpython internals, there definitely are aspects of a compiler