[Chicago] Differences between Interpreted and Compiled Languages.

kirby urner kirby.urner at gmail.com
Mon Aug 10 20:27:16 CEST 2015


On Mon, Aug 10, 2015 at 11:06 AM, Lewit, Douglas <d-lewit at neiu.edu> wrote:

> Hi there Kirby,
>
> You're right.  I almost forgot about the .pyc files!  But sometimes Python
> creates them and at other times Python does not.  I've noticed that those
> .pyc files show up when I write some code and then treat the file as a
> module rather than run the file as an independent program.
>
> What is Hy?  I never heard of that before.
>
> Thanks!
>
> Best,
>
> Douglas.
>
>
The bytecode files are essential.  3.4 puts them in a subfolder by
default.  There's no running Python source code directly, it always
compiles to bytecodes first.

We say Python is "interpreted" but that's more to say the bytecodes are not
the chip's native assembly language, whereas C compiles because that's what
it puts out:  machine code native to the chip.

With Python, the VM is between the source code and the chip.  Even when you
just use the REPL (interactive console) the expressions compile to
bytecodes first.  The dis module for disassembly lets you view those
bytecodes if curious.

Hy is a language that applies LISP syntax to Python while compiling to the
same VM.

Python does not have to compile to the C language VM.  Jython compiles to
JVM bytecodes while IronPython compiles to the bytecodes used by the .NET
Common Language Runtime (CLR).

I'm somewhat interested in the Python -> Java -> Clojure spiral (one keeps
going through all three, but with different topics) as all share the same
VM.

Kirby
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/chicago/attachments/20150810/a9057953/attachment.html>


More information about the Chicago mailing list