Wat is Lexicale analyse?

Eerste fase van een compiler, waarin de tekenreeks van de broncode wordt opgedeeld in tokens (woorden) zoals identifiers, getallen, operatoren en gereserveerde woorden. Witruimte en commentaar worden hier ook verwijderd.

Japanse benaming: 字句解析

“Lexicale analyse” komt voor in 4 oefenvragen uit 1 onderwerpen, bijv. Compilers.

Vakgebied: Compilers

Nu oefenen: vragen over Lexicale analyse

Welke uitspraak over de rol van lexicale analyse in een compiler is juist?

  1. AEr wordt in de vorm van een boom gecontroleerd of de statements van het programma voldoen aan de grammatica van de taal
  2. BDe reeks tekens van de broncode wordt in tokens verdeeld, zoals identifiers en operatoren
  3. CEr wordt gecontroleerd of de types van variabelen kloppen en of geen ongedefinieerde namen worden gebruikt
Antwoord en toelichting tonen

Antwoord: B. De reeks tekens van de broncode wordt in tokens verdeeld, zoals identifiers en operatoren

Lexicale analyse is de eerste fase van de compiler en verdeelt bijvoorbeeld "count = count + 1;" in de tokens identifier count, symbool =, identifier count, symbool +, getal 1 en symbool ;. Ook witruimte en commentaar worden hier verwijderd. Omdat de regels voor tokens met reguliere expressies kunnen worden geschreven, kunnen ze snel met eindige automaten worden verwerkt. Het in boomvorm controleren van de grammatica is de taak van de volgende fase, parsing (syntactische analyse), en het controleren van types en namen is de taak van semantische analyse.

Wat wordt vaak gebruikt om de regels voor het herkennen van tokens bij lexicale analyse weer te geven?

  1. ADe regels voor afronding bij floating point
  2. BReguliere expressies en de eindige automaat die ze verwerkt
  3. CDe vervangingsregels van de cache
Antwoord en toelichting tonen

Antwoord: B. Reguliere expressies en de eindige automaat die ze verwerkt

Soorten tokens kunnen beknopt met reguliere expressies worden geschreven, zoals een identifier als "begint met een letter, gevolgd door letters en cijfers" en een getal als "een of meer cijfers". Een reguliere expressie kan worden omgezet in een eindige automaat (een machine met een eindig aantal toestanden), die door bij elk gelezen teken van toestand te wisselen tokens afsplitst in tijd evenredig met de lengte van de invoer. Lexers worden daarom vaak gemaakt met tools die ze automatisch uit reguliere expressies genereren. Afrondings- en cacheregels hebben niets met lexicale analyse te maken.

“Lexicale analyse” in de toelichting

Vragen met “Lexicale analyse” (4)

  1. Welke uitspraak over de rol van lexicale analyse in een compiler is juist?
  2. Wat wordt vaak gebruikt om de regels voor het herkennen van tokens bij lexicale analyse weer te geven?
  3. Wat doet de parsing (syntactische analyse) van een compiler?
  4. Welk soort grammatica wordt gebruikt om de grammatica van veel programmeertalen weer te geven en vormt de basis van parsing?

Verwante termen

Syntactische analyse (parsing) JIT-compilatie (just-in-time) Abstracte syntaxisboom (AST) Basic block Common subexpression elimination Constant folding Control-flow-graaf (CFG) Inlining Instructiescheduling Intermediaire representatie (IR)

Naar de woordenlijst