¿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.
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.txt
ha movido desde que se publicó la respuesta vinculada. Ahora se puede encontrar aquí: https://github.com/ethereum/solidity/blob/develop/docs/grammar.txt
También hay un proyecto xText y la descripción gramatical de xText es bastante similar a BNF:
xText usa ANTLR en segundo plano.
Jus12
Richard Horrocks
grammar.txt
se puede encontrar aquí: github.com/ethereum/solidity/blob/develop/docs/grammar.txtJus12