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