TITLE OF PAPER: From Python to PLT Scheme URL OF PRESENTATION: _URL_of_powerpoint_presentation_ PRESENTED BY: Daniel Silva REPRESENTING: Northeastern University CONFERENCE: PyCON 2004 DATE: 20040324 LOCATION: _venue_and_room_in_venue_ -------------------------------------------------------------------------- REAL-TIME NOTES / ANNOTATIONS OF THE PAPER: {If you've contributed, add your name, e-mail & URL at the bottom} Motivation Use DrScheme tools on Python Python is popular Python should map easily onto Scheme Python has features from functional programming languages Multiple implementations are good for languages Want DrScheme+Python DrScheme IDE for Scheme Shows binding information graphically Syntax coloring Test code coverage Test case integration with source code Profiler w/ color-coded output MrFlow - control/data flow analysis Scheme dialect with Namespaces Hash tables Easy to create cross language dev tools Simple tool (plugin) interface) Plugins to DrScheme allow you to add languages Java (ProfessorJ) ML - (Dromedary) Perl - ... no Python to MzScheme compiler - Spy also provides a (small) runtime system Code Generation Functions PyCode - C object stores Scheme procedures PyFunction return statement --> Scheme escapes Application via PyApply Classes All objects have an associated dictionary Inheritance information stored in dict(__bases__) All attributes stored in dictionary Moving to a CPython-style representation Modules MzScheme modules No cycles Statically loaded at top level No intermodule assignment translated as mzScheme namespaces Example for generating syntax objects - while loop Runtime System (small) Keep size minimal Hooks into C runtime. Foreign Function Interface (FFI) allows Scheme to call Python Using Scheme objects and Python objects (nearly) interchangeably by defining Scheme's python-node in the right way. Status Focused on the runtime system now Porting system calls to CPython's standard modules Show DrScheme tools working on Python code. Works Code coverage Binding information Should work Test suite Profiler Doesn't work Mr. Flow - lack of type information Future work Complete FFi Optimization Tail call translation Constant folding Common Subexpression Elimination Peephole optimizations Call Scheme from Python -------------------------------------------------------------------------- REFERENCES: {as documents / sites are referenced add them below} Paper: http://www.python.org/pycon/dc2004/papers/25/spy-pycon2004-paper-html/spy-pycon2004-paper.html Spy: http://spyweb.hopto.org/ -------------------------------------------------------------------------- QUOTES: -------------------------------------------------------------------------- CONTRIBUTORS: {add your name, e-mail address and URL below} Ted Leung, twl@osafoundation.org, http://www.sauria.com/blog Abhay Saxena, ark3@email.com -------------------------------------------------------------------------- E-MAIL BOUNCEBACK: {add your e-mail address separated by commas } -------------------------------------------------------------------------- NOTES ON / KEY TO THIS TEMPLATE: A headline (like a field in a database) will be CAPITALISED This differentiates from the text that follows A variable that you can change will be surrounded by _underscores_ Spaces in variables are also replaced with under_scores This allows people to select the whole variable with a simple double-click A tool-tip is lower case and surrounded by {curly brackets / parentheses} These supply helpful contextual information. -------------------------------------------------------------------------- Copyright shared between all the participants unless otherwise stated...