Stiamo avviando un progetto in cui avremo bisogno di scrivere parser per una serie di formati di file binari, ognuno dei quali rappresenta dati molto simili (serie di valori temporali da diversi dispositivi di misurazione).
Dato che partiamo da zero, mi piacerebbe farlo bene e vedo due possibili approcci:
-
scrive parser binari dedicati e generati in modo autonomo per ogni formato separatamente o
-
rappresentano i formati binari utilizzando una grammatica e quindi utilizzano alcuni algoritmi standard per l'analisi / tokenizzazione lessicale.
Ogni volta che cerco un consiglio su come costruire un parser, trovo la maggior parte dei ragazzi che difende il secondo approccio. Tuttavia, non ho molta esperienza con grammatiche e linguaggi formali e temo che ci possa essere una curva di apprendimento prima di ottenere risultati.
Quindi, fondamentalmente ho queste domande:
- Qual è il problema con la codifica dei parser "a mano"?
- Esiste un "limite di dimensione" pratico di un problema quando si paga per investire nell'apprendimento dell '"approccio formale"?
- La maggior parte degli esempi di analisi si concentrano su file testuali. Qual è il modo migliore per specificare la grammatica per un parser binario?