5 ms·
Some languages cannot be compiled because their behavior is dependent on runtime values. An example is John Shutt's Kernel language. Here's what Shutt has to s
by sparkie 9y ago
Some languages cannot be compiled because their behavior is dependent on runtime values. An example is John Shutt's Kernel language.
Here's what Shutt has to say about the difference between interpreted and compiled languages: https://fexpr.blogspot.co.uk/2016/08/interpreted-programming-languages.html https://fexpr.blogspot.co.uk/2016/08/interpreted-programming...
tl;dr: The choice of compiled vs interpreted is made early on and greatly affects the design of the language semantics early on.
- p4bl0 9y agoI don't think this breaks my point. For example, I don't see of any reason a language could be compiled but not interpreted. And that alone breaks the idea that a language is necessarily either compiled or interpreted. Moreover, the distinction that Shutt makes in this blogpost between compiled and interpreted is not very clear: most of what he says rings more to me as a distinction between static and dynamic rather than between compiled and interpreted, but I concede that I read the blogpost rather quickly and without taking the time to fully grasp everything.
- khedoros1 9y agoInterpreters are more flexible; I'd expect that any compiled language could also be interpreted. I'd expect that at least some languages where the canonical implementation is an interpreter could also have an ahead-of-time compiler implementation, but that some of those languages would have at least sections of the program that need to be just-in-time compiled (or even recompiled) at runtime. That would pose extra difficulty in making a compiled implementation of the language.