EVM-Grammatik in ANTLR oder ähnliches?

Wo finde ich eine maschinenlesbare Grammatik für EVM? (und für Solidität)

Abgesehen von Solidity, welche anderen Hochsprachen existieren derzeit, die zu EVM-Opcodes kompiliert werden?

Der Grund, warum ich frage, ist, dass ich nach statischen Analysetools suche (oder versuche, diese zu erstellen), die EVM oder Solidity untersuchen und Exploits wie TheDAO finden.

Antworten (2)

Die Frage der Grammatik - speziell für Solidity - ist schon einmal aufgetaucht:

...wie auch die Frage, welche Sprachen für das Schreiben von Smart Contracts verfügbar sind:

Zusätzlich zu den in der vorherigen (eher alten) Antwort erwähnten Sprachen gibt es auch eine auf Python basierende experimentelle Sprache namens Viper .

Schließlich glaube ich, dass die statische Analyse etwas ist, das sich die Leute von Browser Solidity angesehen haben (siehe hier ), was zusammen mit den in Ausgabe #3404 beschriebenen EVM-Verbesserungen angeblich die statische Analyse von Code erleichtern wird.

Bearbeiten:

Die Datei von Solidity grammar.txtwurde verschoben, seit die verknüpfte Antwort gepostet wurde. Es ist jetzt hier zu finden: https://github.com/ethereum/solidity/blob/develop/docs/grammar.txt

Ich habe die verknüpfte Frage zur BNF-Grammatik gesehen. Leider sind die Links alle tot, so dass diese Antwort nicht mehr nützlich ist.
Hm, guter Punkt. Solidity grammar.txtkann hier gefunden werden: github.com/ethereum/solidity/blob/develop/docs/grammar.txt
Das sieht ANTLR sehr ähnlich. In welcher Sprache ist das?

Es gibt auch ein xText-Projekt und die xText-Grammatikbeschreibung ist BNF ziemlich ähnlich:

Solidität.xtext

xText verwendet ANTLR im Hintergrund.