Lexikalisering

Från Wikipedia
Hoppa till: navigering, sök
För det språkvetenskapliga begreppet, se lexikalisering (lingvistik)

Lexikalisering är inom datalogi den process som består i att en serie tecken tolkas och omvandlas till lexikala element, eller s.k. tokens. Lexikalisering innebär att indata omvandlas till exempelvis reserverade ord, konstanter, operatorer och parameterar.

Exempel[redigera | redigera wikitext]

Indata till en Google-sökning (alltså det användaren skriver i sökrutan) kan se ut så här:

bison OR oxe

Den funktion som utför själva sökningen måste på något sätt få veta att användaren vill hitta alla sidor som innehåller antingen ordet "bison" eller ordet "oxe". Lexikaliseringen är det steg i parsningen av sökuttrycket som identifierar "bison" och "oxe" som de ord som användaren vill söka efter, och "OR" som den operator som innebär att användaren är intresserad av att söka både efter sidor som innehåller "bison" och sidor som innehåller "oxe". I exemplet ovan är "bison" och "oxe" konstanter, och "OR" är ett reserverat ord. Lexikaliseringen innebär att detta sökuttryck skiljs från till exempel bison or oxe eller "bison OR oxe".

Däremot kan syntaktiska fel inte identifieras under lexikaliseringen. Ansvaret för syntaktisk analys ankommer på den komponent som tar emot de lexikala element som lexikaliseringen genererar. Ett uttryck i programspråket C som

int hej(int "text" int)
{
 printf void "mera text" if;
};

kan tolkas korrekt under lexikaliseringen, men är syntaktiskt felaktigt. Den komponent som kontrollerar ett uttrycks syntaktiska eller grammatiska korrekthet kallas en "parser".

Ett vanligt sätt att skapa den komponent som hanterar lexikaliseringen är att använda program som lex eller flex. Ett exempel på ett Java-baserat lexikaliseringsprogram är JFlex. Två exempel på datorprogram som genererar programkod för en parser är yacc och bison.

Externa länkar[redigera | redigera wikitext]