A Python interpreter written in Go
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test
.gitignore Add generated binary to .gitignore Jun 24, 2015
.travis.yml Add .travis.yml and badges in README.md Mar 30, 2015
LICENSE Add LICENSE Jun 10, 2016
Makefile Implement a stateless REPL Jun 24, 2015
README.md Reflect state of the project in README.md Jun 10, 2016
args.go Cleanup and comments Jun 28, 2015
builtin.go Cleanup and comments Jun 28, 2015
code.go Cleanup and comments Jun 28, 2015
fetchbench.sh Add benchmarks from The Benchmarks Game Jun 24, 2015
frame.go Cleanup and comments Jun 28, 2015
function.go Cleanup and comments Jun 28, 2015
gothon.go Cleanup and comments Jun 28, 2015
gothon.png Add a fancy logo Mar 24, 2013
marshal.go Add function interface, restructure reader Jun 27, 2015
module.go
object.go Add function interface, restructure reader Jun 27, 2015
reader.go Cleanup and comments Jun 28, 2015
stack.go Elmininate gothon directory, all in main package Jun 24, 2015
sys.go Add function interface, restructure reader Jun 27, 2015
types.go

README.md

Build Status Go Report Card GoDoc

Gothon Gothon Logo

A Python interpreter written in Go written as part of the course Abstract Machines (german) at Vienna University of Technology.

Scope

Gothon is only an interpreter, not a compiler. It relies on CPython (the de facto standard Python runtime) to compile human readable source code into machine readable bytecode.

Gothon is intended to interpret bytecode (which is generated using CPython ahead of time) and actually run the program. It is limited in this aspect on purpose. The goal of the project (at least for now) is not to build a compiler, but a virtual machine that leverages the compiler built into CPython.

Current Status

Gothon is able to interpret the most basic instructions generated by CPython. This means arithmetic and function calls.

Future

Gothon will at some point be able to

  • resolve import statements.
  • understand classes.
  • deal with exception handling.
  • ...

Contributions to the project are welcome.

The Go Gopher was created by Renée French. The Python Logo is a registered trademark of the Python Software Foundation