The Medusa Project

  • View
    1.964

  • Download
    6

  • Category

    Software

Preview:

Citation preview

MEDUSA Python is no longer the big fat slow

thing that you always thought it to

be…

Compilers - The very things driving the software development industry.

They form the heart of every little app that comes out in the market eachsecond to the huge Operating Systems that are literally running theentire world around us.

They form the very backbone of the software development industry butmodern trends show that speed and flexibility is of the essence and moreand more development is now focused on scripting languages owing toits easy and effortless nature.

Languages like Python and Ruby provide the programmer with muchmore flexibility, diversity and viability at a much higher level ofabstraction.

However, with great power comes great responsibility.

We address the problem of scripting languages being too slowand inefficient for large-scale deployment by creating a newplatform for the Python programming language to run in amuch faster and efficient manner allowing large scaledeployments.

Presenting Medusa. Our answer to the problem.

To support most if not all of the base Python 2.7.3language specification.

To provide a seamless replacement for the existing Pythonsub system and maintain full compatibility with the existingcoding standards.

To achieve significant speed boosts over the traditionalPython interpreter via JIT compilation.

To rectify and create enhancements over the usual Pythoncode constructs and provide a safer, faster and moreintelligent environment for Python to run in.

Our methodology involves the following phases:

Concept: This involves the initial brainstorming and structuring of thecode model, which is to be the final product.

Inception: Basic blocks of the model is realized and are implemented abasic level with open ends to facilitate code patching.

Construction: Actual modules are created and tested

Transition: The modules are moved to a release phase if passed elsesent back to last step.

Production: A working release version is drafted.

You begin with a python file

Which gets tokenized into tokens

The tokens are then parsed into an Abstract Syntax Tree (AST)

Abstract Syntax Tree >>>> >>>> Optimized Dart Code

The Dart Virtual Machine

runs the code

JIT and viola!

Hello World!

YESSS! IT

WORKS!

A program to recursively find the 36th Fibonacci Number

Oh My! A 294% speed boost?! Impressive huh? But you

know what? WE CAN DO EVEN BETTER!

A program to perform the Towers of Hanoi puzzle with 25 disks

Oh Yeah! A 1237% speed boost! Medusa rocks!!

Recommended