¿Gramática EVM en ANTLR o algo similar?

¿Dónde puedo encontrar una gramática legible por máquina para EVM? (y por Solidez)

Además, además de Solidity, ¿qué otros lenguajes de alto nivel existen actualmente que compilan códigos de operación EVM?

La razón por la que pregunto es que estoy buscando (o tratando de crear) algunas herramientas de análisis estático que analicen EVM o Solidity y encuentren exploits como TheDAO.

Respuestas (2)

La cuestión de la gramática, específicamente para Solidity, ha surgido antes:

...al igual que la pregunta de qué idiomas están disponibles para escribir contratos inteligentes:

Además de los lenguajes mencionados en la respuesta anterior (bastante antigua), también hay un lenguaje experimental basado en Python llamado Viper .

Finalmente, creo que el análisis estático es algo que la gente de Browser Solidity ha estado observando (ver aquí ), que junto con las mejoras de EVM descritas en el número 3404 supuestamente harán que el código sea más fácil de analizar estáticamente.

Editar:

El archivo de Solidity se grammar.txtha movido desde que se publicó la respuesta vinculada. Ahora se puede encontrar aquí: https://github.com/ethereum/solidity/blob/develop/docs/grammar.txt

Vi la pregunta vinculada en la gramática BNF. Desafortunadamente, todos los enlaces están muertos, por lo que esa respuesta ya no es útil.
Mmm, buen punto. Solidity grammar.txtse puede encontrar aquí: github.com/ethereum/solidity/blob/develop/docs/grammar.txt
Esto se parece mucho a ANTLR. ¿En qué idioma está esto?

También hay un proyecto xText y la descripción gramatical de xText es bastante similar a BNF:

Solidez.xtexto

xText usa ANTLR en segundo plano.