www.wikidata.de-de.nina.az
Pugs ist ein alternativer Interpreter und Compiler fur Perl 6 der in Haskell GHC geschrieben wurde Das Softwareprojekt wurde am 1 Februar 2005 von Audrey Tang begonnen um die Entstehung von Perl 6 zu unterstutzen Es ist eine freie Software die wahlweise unter der GPL oder der Artistic License verwendet werden darf PugsBasisdatenBetriebssystem PlattformunabhangigProgrammiersprache HaskellLizenz MIT Lizenz 1 http www pugs com offline Inhaltsverzeichnis 1 Zweck 2 Name 3 Versionen 4 Status 5 Bedeutung 6 WeblinksZweck BearbeitenZum einen dient Pugs als Testimplementierung fur den Perl 6 Parser Wesentliche Fehler die in Pugs gemacht wurden konnen dann spater vermieden werden aber es wird auch Syntax Schwachen im Entwurf der Sprache Perl 6 zu einem Zeitpunkt aufzeigen an dem Korrekturen noch relativ einfach moglich sind Zum anderen wird der eigentliche in Perl 6 geschriebene Perl 6 Parser ein Programm sein das von Pugs zu Parrot Bytecode kompiliert wird Bereits heute ist es moglich mit Pugs Parrot Code zu erzeugen oder von Parrot erzeugten Parrot Code mit Pugs zu kompilieren Ab Version 6 2 8 kann Pugs auch Perl 6 Code zu Perl 5 kompilieren Das half Engpasse zu umgehen als sowohl die Sprache als auch Parrot deutliche Lucken hatten Mit der Version 6 2 8 haben sich die Ziele des Projektes leicht geandert Pugs soll ein vollstandiger Perl 6 Compiler werden der Perl 6 nach Parrot PIR Haskell oder Perl 5 und weiteren Sprachen z B JavaScript ubersetzen kann Dabei werden so viel Bestandteile von Pugs wie moglich von Haskell zu spater weiterverwendbaren Perl 6 Modulen umgeschrieben Name BearbeitenPugs bedeutet auf Englisch Mopse und ein Mops dient auch als Logo des Projektes Offiziell ist Pugs ein Akronym fur Perl6 User Golfing System was eine Anspielung auf Perl Golf ist Versionen BearbeitenDie Versionierung von Pugs beginnt mit 6 0 und es wird mit jedem neuen Meilenstein eine Ziffer hinzukommen so dass die Versionsnummer das Doppelte von Pi nachbildet Dies geht auf einen Scherz von Larry Wall zuruck der auf die Frage nach einem Perl 7 erklarte warum Perl in seiner Version 2 Pi nicht uberschreiten sollte Aktuell ist Version 6 2 13 20130611 11 Juni 2013 Status BearbeitenPugs kann man in einige Subprojekte gliedern Pugs Parser ist in der Lage Standard Perl zu parsen Auch werden benutzerdefinierte Operatoren unterstutzt aber eine komplette Neugestaltung der Grammatik ist noch nicht moglich Pugs Evaluator unterstutzt die meisten Builtins und auch viele objektorientierte Routinen Sein Hauptproblem ist zurzeit seine vergleichbar niedrige Geschwindigkeit Pugs Compiler zu PIL steht und ist stabil Fur die weitere Arbeit an Pugs Compiler zu PIR Parrot wartet man auf einige Features von Parrot Pugs Compiler zu JavaScript ist noch ein sehr junges Subprojekt viele Builtins werden bereits unterstutzt allerdings ist die Geschwindigkeit des resultierenden JavaScript Codes sehr gering Bedeutung BearbeitenAuch wenn seit Mitte 2007 nur noch die notigsten Wartungen geschehen war Pugs fur das Erreichen des heutigen Standes von Perl 6 wesentlich Wahrend einer Phase in der es trotz mehrjahriger Arbeit an Parrot und Rakudo kaum sichtbare Ergebnisse gab schaffte es Audrey Tang in kurzer Zeit die Diskussionen um syntaktische Einzelheiten mit praktischen Erfahrungen zu konfrontieren was die Arbeit fruchtbarer machte und die Moral hob In der Folge entstand die heute noch bestehende und fur alle Implementationen gultige Testsuite sowie erste Module und Beispielprogramme Durch einen frischen und einladenden Kommunikationsstil entstand aus Pugs eine grosse Anzahl von Teilprojekten welche die Machbarkeit etlicher Gedankenexperimente uberpruften Das heute bedeutendste ist sicher Moose das verbreitetste und machtigste OOP Rahmenwerk fur Perl 5 Hauptentwickler Stefan Little sieht darin die logische Fortfuhrung seiner Erfahrungen mit Pugs Weblinks BearbeitenPugs Website Journal zur Pugs Entwicklung von Audrey Tang Pugs im CPAN Pugs hs Perl6 User s Golfing System in Haskell abgerufen am 3 Februar 2018 Abgerufen von https de wikipedia org w index php title Pugs amp oldid 226205085