Compilers

Welk soort grammatica wordt gebruikt om de grammatica van veel programmeertalen weer te geven en vormt de basis van parsing?

  1. AAlleen reguliere grammatica's
  2. BDe grammatica van natuurlijke taal
  3. CContextvrije grammatica
Antwoord en toelichting tonen

Antwoord: C. Contextvrije grammatica

Genestelde haakjes en structuren waarin een if-statement een ander if-statement bevat, kunnen niet met reguliere expressies worden weergegeven. De grammatica van de meeste programmeertalen wordt weergegeven met een contextvrije grammatica, een verzameling herschrijfregels zoals "expressie → expressie + term", en parsing gebeurt op basis van deze grammatica. Er zijn parsingmethoden zoals LL, waarbij regels van boven af worden toegepast, en LR, waarbij van onder af wordt opgebouwd, en er zijn ook tools die parsers automatisch uit een grammatica maken. Reguliere grammatica's zijn geschikt voor lexicale analyse en kunnen geen geneste structuren aan.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Compilers

  1. Welke vorm van de abstracte syntaxisboom van de expressie 2 + 3 * 4 is juist?
  2. Welke uitspraak over driehoeksadrescode (three-address code), een tussenrepresentatie, is juist?
  3. Wat wordt bepaald bij de levendigheidsanalyse (liveness analysis) die als voorbereiding op registertoewijzing wordt uitgevoerd?
  4. In een functie bedraagt het grootste aantal gelijktijdig levende waarden 5. Als de interferentiegraaf buiten deze 5 geen beperkingen oplegt, hoeveel registers zijn dan minstens nodig om alle waarden zonder spill in registers te plaatsen?
  5. Hoeveel keer worden de iteratietest en sprong uitgevoerd als een lus met 100 iteraties wordt herschreven met loop unrolling waarbij de body viermaal achter elkaar wordt gezet? (100 is deelbaar door 4.)

Vergelijkingen bij dit onderwerp