DEV Community

Discussion on: What Is An "Interpreted" Language?

Collapse
 
jeikabu profile image
jeikabu

With widespread use of AOT, JIT, and native language bindings not to mention exotic things like Roslyn and hardware implementations (e.g. Java processor), the distinction is perhaps murky and mostly accademic.

In practical terms, it comes down to a programmer's workflow. Do you run a compile step? No: interpreted.

Collapse
 
codemouse92 profile image
Jason C. McDonald

Interesting approach, but I'm not sure the Java processor really makes it a compiled language in the typical sense of the term. They still run it off their own custom bytecode, instead of assembling it down to actual machine language for common architectures. It's kinda "cheating" to me (but props that it works regardless).

Collapse
 
jeikabu profile image
jeikabu

I'm playing devil's advocate.

It's not all that exotic, ARM has Jazelle.

Similarly, many CPUs have complex instructions that are decoded at execution time into smaller, native instructions (i.e "interpreted").

Since the beginning Java has had javac- the "Java compiler". Surely having a compiler makes you compiled.

But mostly it doesn't really matter. It's an imprecise term that can be interpreted as pedantically as you like (pun intended).

Thread Thread
 
codemouse92 profile image
Jason C. McDonald • Edited

Since the beginning Java has had javac- the "Java compiler". Surely having a compiler makes you compiled.

Remember the definition, which I didn't make up.

Compiler — converts code to either source code in another language, or to bytecode. (Contrast with assembler.)

You can compile to anything, but if the product of the compilation is not actually executable in and of itself, but requires an interpreter to execute, isn't that still an interpreted language?

After all, Python compiles to Python Bytecode (*.pyc), but that still can only be executed through the Python interpreter. According to the language's own documentation, Python is an interpreted language, and not a compiled language.