re2c 4.0

Martedì 19 novembre è stato presentato il rilascio re2c – generatore di analizzatori lessicali (ovvero il compilatore di espressioni regolari in codice per il linguaggio di programmazione di destinazione). re2c è specializzato nella generazione di lexer rapidi e facilmente integrabili. Si distingue dall'analogo più noto flex per la sua interfaccia flessibile, la generazione di lexer ottimizzati non tabulari e il supporto per l'estrazione di sottocommatch (submatch extraction) basata su automi a stati finiti deterministici con etichette (TDFA). re2c è utilizzato in progetti dove la velocità dell'analizzatore è fondamentale, come in Ninja e PHP.

Nella versione 4.0, il sottosistema di generazione del codice è stato completamente riprogettato, permettendo di aggiungere supporto per otto nuovi linguaggi (D, Haskell, Java, JavaScript, OCaml, Python, V, Zig) oltre a quelli già supportati (C/C++, Go, Rust), e un meccanismo generale per l'aggiunta di nuovi linguaggi attraverso file di configurazione. Il generatore di codice è responsabile della traduzione dell'automa a stati finiti già costruito e ottimizzato in codice, quindi il suo compito è scegliere le strutture di controllo, i tipi di dati, il modello di programma generale, ecc., appropriati per il linguaggio di destinazione. In precedenza, tutta questa logica era parte del codice sorgente di re2c, e per modificarla o aggiungere un nuovo linguaggio era necessario applicare patch al codice sorgente e ricompilare re2c. Tali patch non venivano accettate nel repository principale senza un insieme standard di esempi e test, il che complicava ulteriormente l'intero processo. Ora tutta questa logica è stata trasferita in file di sintassi – file di configurazione testuali che possono essere forniti dall'utente (per impostazione predefinita re2c utilizza quelli standard). Il codice sorgente di re2c è completamente privo di dettagli specifici di un linguaggio e si basa solo sul file di sintassi. L'utente può ridefinire parzialmente un file di sintassi esistente o scriverne uno nuovo da zero. Per tutti i linguaggi ufficialmente supportati è disponibile documentazione completa con esempi.

A proposito, l'idea stessa dei file di sintassi è nata grazie a un commento su LOR, per cui grazie re2c 4.0the_coder.

Nel rilascio sono state incluse molte altre modifiche per semplificare l'interfaccia utente, migliorare la gestione dei gruppi di cattura (capturing groups) e aggiungere un ambiente online per la modifica e la compilazione degli esempi: http://re2c.org/playground.

Fonte: linux.org.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster