Generatore di parser: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
EnzoBot (discussione | contributi)
m Candidati (incompleto): |date ----> |data
m Voci correlate: Corretto wikilink
 
(5 versioni intermedie di 3 utenti non mostrate)
Riga 1:
{{C|Lista dichiarata incompleta e con molti collegamenti esterni|informatica|ottobre 2010}}
{{W|informatica|dicembre 2015|Spostare collegamenti esterni dal corpo della voce e creare wikilink.}}
Un '''generatore di parser''' (in inglese {{Inglese|'''parser generator'''}}, a volte anche chiamato '''compiler-compiler''') è uno strumento per la generazione del [[codice sorgente]] di un [[parsing|parser]], un interprete o un [[compilatore]] a partire dalla descrizione data da un linguaggio annotato nella forma di grammatica, generalmente [[Backus-Naur Form|BNF]], insieme a del codice associato ad ognuna delle regole della grammatica, codice che deve essere eseguito ogni volta che la regola è applicata dal parser. Questi pezzi di codice sono spesso chiamati funzioni di azioni [[semantica|semantiche]] poiché definiscono la semantica della struttura sintattica analizzata dal parser. A seconda del tipo di parser generato, queste funzioni possono costruire un ''albero sintattico'' [[parse tree|concreto]] o [[Albero sintattico astratto|astratto]] oppure possono generare del codice in un altro linguaggio, talvolta direttamente codice eseguibile.
 
== Storia ==
Il primo generatore di parser che ha usato questo nome fu scritto da [[Tony Brooker]] nel 1960 ed era usato per creare i compilatori per i computer [[Atlas Computer (Manchestercomputer)|Atlas]] presso l'[[Università di Manchester]], includendo il compilatore [[Atlas Autocode]]. Tuttavia il generatore era leggermente differente dai moderni generatori, e oggi probabilmente sarebbe considerato una via di mezzo tra un compilatore altamente configurabile e un linguaggio sintatticamente estensibile. <!--
The name 'compiler compiler' was far more appropriate for Brooker's system than it is for most modern compiler compilers, which are more accurately described as mere parser generators. It is almost certain that the Compiler Compiler name has entered common use due to [[Yacc]] rather than Brooker's work being remembered. -->
 
Riga 25:
| [http://www.parsifalsoft.com/ AnaGram] || LALR || ANSI C, C++ || ? || ? || Win32 || Commerciale
|-
| [http://accent.compilertools.net/ ACCENT] {{Webarchive|url=https://web.archive.org/web/20100516004220/http://accent.compilertools.net/ |date=16 maggio 2010 }} || GLR || C || Misti || ? || ? || Open source (GPL)
|-
| [http://www.antlr.org/ ANTLR] || LL(k) || C++, C#, Java, Python || Misti || Generato || Tutte (Java) || Open source (BSD)
Riga 45:
| [https://www.cs.berkeley.edu/~smcpeak/elkhound/ Elkhound] || GLR || C++, Ocaml || ? || ? || ? || Open source (BSD)
|-
| [http://www.devincook.com/goldparser/ GOLD] {{Webarchive|url=https://web.archive.org/web/20081102044313/http://www.devincook.com/goldparser/ |date=2 novembre 2008 }} || LALR || ANSI C, C#, Delphi, Java, Python, Visual Basic, Visual C++ || ? || ? || Win32 || Open source (zlib/libpng)
|-
| [http://grammatica.percederberg.net/ Grammatica] || LL(k) || C#, Java || Separati || Generato || Tutte (Java) || Open source (LGPL)
Riga 75:
 
== Voci correlate ==
* [[GNU bisonBison]]
* [[Yacc]]
* [[ANTLR]]
Riga 83:
*{{cita web |1=http://www.computer50.org/mark1/gethomas/manchester_autocodes.html |2=Brooker Autocodes |accesso=1º ottobre 2005 |urlarchivio=https://web.archive.org/web/20041031031946/http://www.computer50.org/mark1/gethomas/manchester_autocodes.html |dataarchivio=31 ottobre 2004 |urlmorto=sì }}
*{{cita web|http://www.skenz.it/traduttori/|Corso di linguaggi e traduttori in jflex/cup}}
*{{cita web | 1 = http://www.skenz.it/traduttori/tesine | 2 = Programmi eseguiti con jflex/cup o con flex/bison | accesso = 18 febbraio 2008 | dataarchivio = 18 aprile 2021 | urlarchivio = https://web.archive.org/web/20210418224906/https://www.skenz.it/traduttori/tesine/ | urlmorto = sì }}
 
{{portale|informatica}}