Syntax Definition Formalism - Syntax Definition Formalism

Den Syntax Definition formalism ( SDF ) är en metasyntax används för att definiera Kontextfria grammatiker : det vill säga ett formellt sätt att beskriva formella språk. Det kan uttrycka hela utbudet av kontextfria grammatik . Dess nuvarande version är SDF3 [1] . En parser och parser-generator för SDF-specifikationer tillhandahålls som en del av den fria ASF + SDF Meta-miljön . Dessa fungerar med SGLR ( Scannerless GLR-parser ). En SDF-analysator matar ut paresträd eller, i fråga om oklarheter , analyserar skogar.

Översikt

Funktioner hos SDF:

  • Stöder hela utbudet av sammanhangsfria språk
  • Tillåter modulära syntaxdefinitioner (grammatik kan importera underprogram) som möjliggör återanvändning
  • Stödjer anteckningar

exempel

Följande exempel definierar en enkel booleskt uttryckssyntax i SDF2:

module basic/Booleans

exports
  sorts Boolean
  context-free start-symbols Boolean

context-free syntax
   "true"                      -> Boolean
   "false"                     -> Boolean
   lhs:Boolean "|" rhs:Boolean -> Boolean {left}         
   lhs:Boolean "&" rhs:Boolean -> Boolean {left}       
   "not" "(" Boolean ")"       -> Boolean           
   "(" Boolean ")"             -> Boolean

 context-free priorities
   Boolean "&" Boolean -> Boolean >
   Boolean "|" Boolean -> Boolean

Programanalys och transformationssystem med SDF

Se även

Vidare läsning

externa länkar