Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Implementing my own Python interpreter

Reply
Thread Tools

Implementing my own Python interpreter

 
 
Ognjen Bezanov
Guest
Posts: n/a
 
      10-13-2008
Hello All,

I am a third year computer science student and I'm the process of
selection for my final year project.

One option that was thought up was the idea of implement my own version
of the python interpreter (I'm referring to CPython here). Either as a
process running on another OS or as a process running directly on the CPU.

Now, I can't seem to find a decent source of information on the python
interpreter. I have made the assumption that Python works very much like
Java, you have code that is compiled into bytecode, which is then
executed in a virtual machine. IS this correct? Is there a good source
to give me an overview of Python internals? (I can look at the code, but
I would find it easier to understand if I can see the "big picture" as well)

Also, any pro's out there willing to chime on the feasibility of
implementing python to run directly on the hardware (without an
underlying OS)? I don't expect 100% compatibility, but would the basics
(branching, looping, arithmatic) be feasible?

Thank you,


Ognjen

 
Reply With Quote
 
 
 
 
Ognjen Bezanov
Guest
Posts: n/a
 
      10-13-2008
Grant Edwards wrote:
> On 2008-10-13, Ognjen Bezanov <> wrote:
>
>> I am a third year computer science student and I'm the process of
>> selection for my final year project.
>>
>> One option that was thought up was the idea of implement my
>> own version of the python interpreter (I'm referring to
>> CPython here). Either as a process running on another OS or as
>> a process running directly on the CPU.
>>
>> Now, I can't seem to find a decent source of information on
>> the python interpreter.

>
> You mean the virtual machine?


Yes, I presume there is a CPU implementation that executes the byte
code, but that is pretty much the limit of my knowlede
>
>> I have made the assumption that Python works very much like
>> Java, you have code that is compiled into bytecode, which is
>> then executed in a virtual machine. IS this correct?

>
> Yes. There are python compilers that generate bytecode for a
> variety of VMs:
>
> * CPython -- Python Virtual Machine (PVM)
> * Jython -- Java Virtual Machine (JVM)
> * Iron Python -- .Net Virtual Machine
>
>> Is there a good source to give me an overview of Python
>> internals? (I can look at the code, but I would find it easier
>> to understand if I can see the "big picture" as well)

>
> The internals of what? One of the compilers? The PVM?


Well, how does python execute code (note, when I talk about "Python", I
mean the CPython implementation)? I know that for C we first compile
into into assembly, then assemble that into machine code. What is the
process for Python? I assume:

Python code ---[compile]--> Python bytecode ---[execute on Virtual
machine]--> machine code.

But I'm not sure.

>
>> Also, any pro's out there willing to chime on the feasibility
>> of implementing python to run directly on the hardware
>> (without an underlying OS)? I don't expect 100% compatibility,
>> but would the basics (branching, looping, arithmatic) be
>> feasible?

>
> I would think so.
>
> Without any file, terminal, or network I/O, I don't see how
> you'll be able to do anything useful...
>


Well, It is more of a academic task, I don't think I will end up with a
groundbreaking python implementation or anything like that, but it would
be interesting (and a learning experience for me).

I would probably implement some simple I/O (so keyboard input and
character output to screen) as part of the implementation.

 
Reply With Quote
 
 
 
 
Stefan Behnel
Guest
Posts: n/a
 
      10-14-2008
Ognjen Bezanov wrote:
> Also, any pro's out there willing to chime on the feasibility of
> implementing python to run directly on the hardware (without an
> underlying OS)? I don't expect 100% compatibility, but would the basics
> (branching, looping, arithmatic) be feasible?


You should take a look at Cython, which translates Python code to C. It does
not build a complete Interpreter (it doesn't reimplement the data types and
their operations, for example), but it does implement most of the control flow
and a lot of other things that make the generated code fast. In case you come
to the conclusion that reimplementing Python is too big for a final year
project, you might as well find a couple of good ideas in Cython's list of
potential enhancements. Check the Wiki.

http://cython.org/

Stefan
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
FAQ 2.3 I don't have a C compiler. How can I build my own Perl interpreter? PerlFAQ Server Perl Misc 0 03-25-2011 10:00 PM
implementing a scheme-like interpreter in Java - data type choice metaperl Java 0 08-22-2007 05:34 PM
Python embedded interpreter: how to initialize the interpreter ? ycollet@freesurf.fr Python 3 01-03-2007 01:00 AM
Implementing our own providers Pradeep ASP .Net 3 06-07-2006 02:04 PM
Implementing my own memcpy Rajan C Programming 70 07-11-2005 07:25 AM



Advertisments