Fredrik Gustafsson och Viktor Holmberg

Gradvis typat Python med Cython

Sammanfattning

I denna rapport undersöks Cython, ett experimentellt programmeringsspråk vilket tillför viss funktionalitet till Python, bland annat valfria statiska typannotationer. Huvudfrågan i denna rapport är vilken prestandapåverkan denna statiska typinformation har, men även dess effekter på typsäkerhet och mjukvarukonstruktionsaspekter i Python berörs i korthet.

För att utröna på vilket sätt typannotationerna påverkar prestanda utformades tre testfall. Testfallen typades till ett antal versioner med olika grad av statisk typning, varpå exekveringstiden mättes.

Gradvis typning med Cython visade sig vara ett utmärkt sätt att optimera vissa Pythonkod, särskilt numeriska beräkningar. Cythons valfritt statiska typsystem är dock inte ett fullgott alternativ till helt statiskt typade språk ur ett mjukvarukonstruktionsperspektiv.