[python-users] Transpiler

Christopher Arndt chris at chrisarndt.de
So Feb 9 18:22:54 CET 2014


On 09.02.2014 16:43, Dirk Hünniger wrote:
> ich denke ich fand eine Lösung für meine Frage von gestern. In scala
> kann ich mir das hinschreiben von Typen weitgehend schenken

Ich sehe in deinem Code zwei Typdeklarationen und mehr braucht man auch
in anderen Sprachen nicht.

> und habe
> trotzdem statische Typenprüfung und eine Laufzeit 50 mal schneller als
> Python.

Mit Cython bekomme ich ähnliche Ergebnisse (und muss auch nur zwei
Typdeklarationen hinzufügen):

fib.pyx:

    cpdef int fib(int n):
        if n < 0:
            raise NotImplementedError
        elif n <= 1:
            return 1
        else:
            return fib(n-1) + fib(n-2)

timefib.py:

    import time
    import pyximport; pyximport.install()
    import fib

    print "Calculating fib(40)..."
    s = time.time()
    print fib.fib(40)
    print "Time:", time.time() - s

$ python2 timefib.py
Calculating fib(40)...
165580141
Time: 2.25675296783


(Die reine Pythonversion braucht bei mir ca. 45 sec.)



Mehr Informationen über die Mailingliste python-users