On Tue, Mar 7, 2017 at 4:44 AM, Luca Ferrari <fluca1...@infinito.it> wrote:

> Usually a script is something that is not compiled, rather interpreted
> on the fly (where "interpreted" could include any sort of JIT or alike
> compilation).

This is one of those things where the ground has shifted enough to make the
distinction meaningless. Perl compiles to an internal AST, as does Python
--- but there are "compilers" for both, at various levels (the Perl 5
"compiler" just compiles to the same calls the interpreter would make, and
there was some work on actual Python compilation that iirc recently ended
as not providing enough gain for the effort). Java and Erlang compile to
bytecode (JVM and BEAM, respectively) which must be interpreted, usually
with JIT compilation. There are C interpreters. Haskell can be either
compiled or interpreted. And then there's the whole level of added
confusion that comes from LLVM: the original use model was you compiled to
LLVM bytecode, and that was translated on the fly to native code on
whatever cluster host received the job.

I no longer bother with the distinction. This line will only blur further.

brandon s allbery kf8nh                               sine nomine associates
allber...@gmail.com                                  ballb...@sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net

Reply via email to