DEV Community

Discussion on: What Is An "Interpreted" Language?

Collapse
 
combinatorylogic profile image
combinatorylogic • Edited

There is no debate, really. Not in the academic computer science, at least. Any attempt at defining an "interpreted" language outside of CS is doomed to fail.

There is no such a thing as an interpreted or a compiled language. There are languages that make it hard to produce an efficient compiler - e.g., some very dynamic languages like Python, or languages with fexprs, languages heavily relying on runtime reflection, etc.

It is still possible to have a not very efficient compiled implementation for such languages though, so we cannot use a presense of such features as a definition for an "interpreted language".

Besides that, nothing in a PL semantics says it's "compiled" or "interpreted", not to mention that the boundary between compilation and interpretation is very blurred.

EDIT: another important point - a programming language is defined by its semantics, while syntax and grammar are only of a secondary importance. And how do we define semantics? Normally, via term rewriting rules, i.e., an interpretation. When you look from this angle, all the languages are "interpreted first".