Generatore di parser: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m →Voci correlate: Corretto wikilink |
|||
(46 versioni intermedie di 28 utenti non mostrate) | |||
Riga 1:
{{C|Lista dichiarata incompleta e con molti collegamenti esterni|informatica|ottobre 2010}}
Un '''generatore di parser''' (a volte 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 (in genere [[Backus-Naur Form|BNF]]) insieme a del codice associato ad ognuna delle regole della grammatica il quale deve essere eseguito ogni volta che la regola è applicata dal parser. Questi pezzi di codice sono spesso chiamati funzioni di azioni 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]]), o generare del codice in un altro linguaggio, a volte direttamente codice eseguibile.▼
{{W|informatica|dicembre 2015|Spostare collegamenti esterni dal corpo della voce e creare wikilink.}}
▲Un '''generatore di parser''' ({{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,
== 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 (
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. -->
Altri esempi di generatori di parser simili
== Tipi di generatori di parser ==
Line 11 ⟶ 13:
== Candidati (incompleto) ==
{| class="wikitable sortable"
|-
!Prodotto
!Tipo
!Linguaggi di output
!Grammatica e codice
!Analizzatore lessicale
!Piattaforma
!Licenza
|-
| [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)
|-
| [http://beaver.sourceforge.net/ Beaver] || LALR || Java || Misti || Esterno || Tutte (Java) || Open source (BSD)
|-
| [
|-
| [http://gnuwin32.sourceforge.net/packages/byacc.htm BYACC] || LALR || C || Misti || Esterno || Unix, Win32 || Dominio pubblico
|-
| [http://byaccj.sourceforge.net/ BYACC/J] || LALR || C, Java || Misti || Esterno (JFlex) || Irix, Linux, Solaris, Win32 || Dominio pubblico
|-
| [http://www.ssw.uni-linz.ac.at/Research/Projects/Coco/ Coco/R] || LL(k) || C++, C#, Java || Misti || Generato || ? || Open source (GPL)
|-
| [http://cppcc.sourceforge.net/ CppCC] || LL(k) || C++ || ? || ? || ? || Open source (GPL)
|-
| [http://www2.cs.tum.edu/projects/cup/ CUP] || LALR || Java || Misti || Esterno (JLex) || Tutte (Java) || Open source (GPL)
|-
| [
|-
| [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 (
|-
| [https://web.archive.org/web/20050901173442/http://www.cse.ogi.edu/~mpj/jacc/ jacc] || LALR || Java || Misti || ? || Tutte (Java) || Open source (BSD)
|-
| [https://web.archive.org/web/20080924103934/https://javacc.dev.java.net/ JavaCC] || LL(k) || Java || ? || Generato || ? || ?
|-
| [http://www.informatik.uni-osnabrueck.de/alumni/bernd/jay/ jay] || LALR || Java || ? || ? || Unix || ?
|-
| [http://www.hwaci.com/sw/lemon/ LEMON] || LALR || ? || ? || ? || ? || ?
|-
| [http://www.parsetec.com/lrgen/ LRgen] || LALR || C++, Qualsiasi (riscrivendo il modello) || Separati || Generato || Win32 || Commerciale
|-
| [http://pobs.sf.net/ Parser Objects] || LL(k) || Java || Misti || ? || Tutte (Java) || Open source (ZLib/LibPNG)
|-
| [https://web.archive.org/web/20051028141233/http://vl.fmnet.info/precc/ PRECC] || LL(k) || ? || ? || ? || Dos, Unix || ?
|-
| [http://sablecc.org/ SableCC] || LALR || Java (e, col motore "altgen", Python, C++, OCAML,
|-
| [{{collegamento interrotto|1=https://web.archive.org/web/20090221213519/http://
|-
| [http://spirit.sourceforge.net/ Spirit] || LL(k) || C++ || Misti || ? || - || Open source (Boost)
|-
| [http://yooparse.sourceforge.net/ YooParse] || LR || C++ || ? || Esterno (YooLex) || ? || Open source (MIT)
|-
| {{Collegamento interrotto|1=[{{collegamento interrotto|1=http://www.horion.it/download.php |data=marzo 2018 |bot=InternetArchiveBot }} HLang] |data=aprile 2019 |bot=InternetArchiveBot }} || LL(k) || interpretato run-time || Separati || Interno o esterno || Tutte || Open source (GPL)
|}
== Voci correlate ==
* [[GNU
*
* [[ANTLR]]
== Collegamenti esterni ==
*{{FOLDOC|parser%2bgenerator|Parser generator}}
*{{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 | 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}}
[[Categoria:Software di sistema]]
[[Categoria:
|