Corpus ID: 62536221

Extending and embedding the python interpreter

  title={Extending and embedding the python interpreter},
  author={Guido van Rossum},
Python is an interpreted, object-oriented programming language. This document describes how to write modules in C or C++ to extend the Python interpreter with new modules. Those modules can define new functions but also new object types and their methods. The document also describes how to embed the Python interpreter in another application, for use as an extension language. Finally, it shows how to compile and link extension modules so that they can be loaded dynamically (at run time) into the… Expand
Using Java reflection to automate extension language parsing
Using Java reflection and related mechanisms to solve three limitations in extension language - domain framework interaction, name-based dynamic class loading, and a language-neutral extension language abstraction. Expand
Embedded interpreters
  • Nick Benton
  • Computer Science
  • Journal of Functional Programming
  • 2005
The basic idea of using type-indexed embedding/projection pairs when writing interpreters in statically-typed functional languages is described and how it may be extended to languages with recursive types and applied to elementary meta-programming is described. Expand
C APIs in Extension and Extensible Languages
This paper discusses how design tradeoffs are handled in the APIs of popular scripting languages, and the impact on their use as embedded or extensible languages. Expand
Controlling Access to Resources Within The Python Interpreter
Version 2.5 of the Python programming language contains no mechanism for restricting access to resources by Python code. This is a slight hindrance to the language as it is used in many situations,Expand
Dynamic Language Bindings for C Libraries with emphasis on their application to R
A middleware architecture for scripting languages is discussed that provides for seamless dynamic scripting access to the C API of native libraries without the need for compilation of wrapper modules. Expand
An Implementation of Python for DrRacket
The Python programming language is becoming increasingly popular in a variety of areas, most notably among novice programmers. This paper presents an implementation of Python for DrRacket whichExpand
Supporting pure composition by inter-language bridging on the meta-level
This thesis presents a new bridging strategy for Piccola that combines the advantages of the two approaches, and presents a lazy evaluation technique that significantly reduces the performance overhead introduced by the meta-level bridging layer. Expand
Compiling dynamic languages via statically typed functional languages
This thesis is that one can build effective compilers for dynamic languages by translating them into statically typed functional languages which have good compilers and automatic memory management, and believes that modern statically typed languages provide precise control over data representations, and come with runtime systems that have competitive performance. Expand
Implementing Python for DrRacket
An implementation of Python for Racket and the DrRackets IDE is presented, which allows Python programmers to use Racket libraries and vice versa, as well as using DrRacket's pedagogic features. Expand
Passing a language through the eye of a needle
How the embeddability of Lua impacted the design of the Lua operating system. Expand