paul@392 | 1 | Displacement tables are described in various publications:
|
paul@392 | 2 |
|
paul@392 | 3 | Jan Vitek, R. Nigel Horspool:
|
paul@392 | 4 | "Taming Message Passing: Efficient Method Look-Up for Dynamically Typed Languages"
|
paul@392 | 5 |
|
paul@392 | 6 | Karel Driesen:
|
paul@392 | 7 | "Software and Hardware Techniques for Efficient Polymorphic Calls"
|
paul@392 | 8 |
|
paul@148 | 9 | Shed Skin imposes various restrictions in order to facilitate compilation to
|
paul@148 | 10 | C++:
|
paul@148 | 11 |
|
paul@148 | 12 | http://shedskin.googlecode.com/
|
paul@148 | 13 |
|
paul@148 | 14 | RPython imposes different restrictions in order to facilitate compilation to
|
paul@148 | 15 | other languages:
|
paul@148 | 16 |
|
paul@148 | 17 | http://codespeak.net/pypy/dist/pypy/doc/coding-guide.html#restricted-python
|
paul@387 | 18 | http://groups.google.com/group/shedskin-discuss/msg/3f6a4ff34561a97c?dmode=source&output=gplain
|
paul@148 | 19 |
|
paul@701 | 20 | Pythran is a restricted Python-to-C++ compiler intended for scientific
|
paul@701 | 21 | programs:
|
paul@701 | 22 |
|
paul@701 | 23 | https://github.com/serge-sans-paille/pythran
|
paul@701 | 24 |
|
paul@701 | 25 | "Pythran: Enabling Static Optimization of Scientific Python Programs"
|
paul@701 | 26 | http://stefan.pythonanywhere.com/download/13
|
paul@701 | 27 |
|
paul@574 | 28 | PySonar performs whole-program analysis to deduce types and produce annotated
|
paul@574 | 29 | program summaries (apparently being a later version of the program indexer
|
paul@574 | 30 | contributed to Jython):
|
paul@574 | 31 |
|
paul@574 | 32 | http://yinwang0.wordpress.com/2010/09/12/pysonar/
|
paul@700 | 33 | http://yinwang0.wordpress.com/2013/06/21/pysonar-slides/
|
paul@700 | 34 |
|
paul@700 | 35 | A reimplementation of PySonar by the same author has also been made available:
|
paul@700 | 36 |
|
paul@700 | 37 | https://github.com/yinwang0/mini-pysonar
|
paul@574 | 38 |
|
paul@148 | 39 | CapPython limits attribute access in order to facilitate code verification:
|
paul@148 | 40 |
|
paul@148 | 41 | http://mail.python.org/pipermail/python-dev/2008-September/082475.html
|
paul@266 | 42 |
|
paul@266 | 43 | Advocacy for limited module-level initialisation:
|
paul@266 | 44 |
|
paul@266 | 45 | http://plope.com/Members/chrism/import_time_side_effects
|
paul@290 | 46 |
|
paul@290 | 47 | A question about attributes illustrating Python's deficiencies around
|
paul@290 | 48 | compile-time error detection, met with properties dogma despite accessor
|
paul@290 | 49 | methods being genuinely appropriate in various situations:
|
paul@290 | 50 |
|
paul@290 | 51 | http://mail.python.org/pipermail/python-list/2009-November/1227265.html
|
paul@290 | 52 | http://groups.google.com/group/comp.lang.python/browse_frm/thread/c07268689549cf01/
|
paul@297 | 53 |
|
paul@297 | 54 | A discussion of how closures often obscure intent and how the use of classes
|
paul@297 | 55 | and functions is often preferable:
|
paul@297 | 56 |
|
paul@297 | 57 | http://artificialcode.blogspot.com/2009/04/python-functional-programming.html
|
paul@700 | 58 |
|
paul@700 | 59 | Nuitka is a Python-to-C++ compiler which initially focused on complete Python
|
paul@700 | 60 | compatibility in preference to static analysis:
|
paul@700 | 61 |
|
paul@700 | 62 | http://nuitka.net/
|
paul@700 | 63 |
|
paul@700 | 64 | P3 is similar to Nuitka in nature and goals, but appears to have stopped short
|
paul@700 | 65 | of the stated ambitions of significant program optimisation:
|
paul@700 | 66 |
|
paul@700 | 67 | https://github.com/jaredp/PythonCompiler
|
paul@700 | 68 |
|
paul@700 | 69 | "The P3 Compiler: compiling Python to C++ to remove overhead"
|
paul@700 | 70 | http://www.cs.columbia.edu/~aho/cs6998/reports/12-12-11_Pochtar_P3Compiler.pdf
|