En frontend för Python 3.x till GNU GuileBakgrundGNU Guile är en implementation av Lisp-varianten Scheme, och är även det officiella extensionspråket för operativsystemet GNU. Guile är utformat för att vara enkelt att bädda in som extensionspråk i andra program. Projektet har länge haft som uttalat mål att stöda flera olika skriptspråk. De sista åren har Guile emellertid tagit kvalitativa steg framåt. Bland annat har man nu stöd för andra språk än Scheme, bland annat Ecmascript. Stöd för både Emacs Lisp och Lua är redan under utveckling. Python är ett annat populärt programmeringspsråk med flera implementationer och är välstandardiserat och -dokumenterat. Projekt-/problembeskrivningSyftet med kandidatarbetet är att implementera ett frontend för Python till GNU Guile. Syftet är att lära deltagarna mer om kompilatorer och den virtuella maskinen Guile. I projektet ingår att implementera en rimligt stor delmängd av Python. Vi kommer kunna skriva Python direkt i Guiles REPL (Read-Eval-Print-Loop) där vi byter mellan olika språk interaktivt. För en användare av ett program som utökas med Guile innebär detta att hon plötsligt kan scripta programmet i Python. MetodVi kommer att skriva en kompilator från Python till högnivåspråket Tree-IL som liknar Scheme väldigt mycket (tänk ungefär Scheme fast utan macron). Det finns färdiga front-ends som man kan lära sig av och ett aktivt community kring Guile. Projektet kommer använda sig av de redan inbyggda modulerna för parsning och kompilering som finns i Guile. Det går också att bygga på de redan implementerade front-endsen och lära sig av dem. Av Python finns också en rad olika implementationer. Eftersom de är fri programvara kan vi studera dem fritt. I projektet ingår bland annat att:
Samtidigt är det ett tillfälle för deltagarna att lära sig mer om hur processen med utveckling av fri programvara kan gå till i en kollaborativ miljö genom att studera och sätta sig in i Guile-communityn. Önskat resultatMålet är att koden ska hålla sådan hög kvalitet att den skulle kunna inkorporeras i den officiella versionen av GNU Guile. ÖvrigtNär projektet är klart ska vi försöka få det inkluderat i den officiella versionen av GNU Guile så att vårt arbete är till direkt nytta för tiotusentals användare över hela världen. För att få källkoden inkluderad i den officiella versionen av GNU Guile måste man skriva över sin upphovsrätt till Free Software Foundation. De som är intresserade av att delta i projektet bör vara förberedda på detta okrångliga förfarande som beskrivs mer här:
Projektkod
DATX02_1225
Målgrupp
D, IT
Gruppstorlek
4-6
Speciella förkunskapskrav
Objektorienterad programmering. Kurserna i Programspråk och Compiler Construction. Bra saker att ha är kunskap i Python och/eller Scheme eller intresse för att lära sig.
Handledare
Förslagslämnare:Stefan Kangas (Student, garantiplats)
Institution
Data- och informationsteknik
Uppdaterad:
01 november 2011
| ![]() Exjobb? Har ditt företag förslag på exjobb att anmäla, skicka ett email! |