Google Play badge

syntax


SYNTAX

Inom datavetenskap hänvisar termen syntax för ett datorspråk till den uppsättning regler som definierar kombinationen av symboler som anses vara ett korrekt strukturerat fragment eller dokument på det språket. Detta gäller både för märkningsspråk, där dokumentet representerar data och programmeringsspråk, där dokumentet representerar källkod. Ett språks syntax definierar dess ytform. Datorspråk som är textbaserade är baserade på teckensekvenserna. Visuella programmeringsspråk å andra sidan är baserade på kopplingen mellan symboler (som kan vara grafiska eller textuella) och på den rumsliga layouten. Dokument som råkar vara syntaktiskt ogiltiga sägs ha ett syntaxfel.

Syntax – formen – kontrasteras med semantik – betydelsen. Vid bearbetning av datorspråk kommer semantisk bearbetning normalt efter syntaktisk bearbetning. Men i vissa fall är semantisk bearbetning viktig för fullständig syntaktisk analys, och de görs därför samtidigt eller tillsammans. I en kompilator omfattar den syntaktiska analysen frontend, medan den semantiska analysen omfattar backend (och mittänden i de fall fasen särskiljs).

NIVÅER AV SYNTAX

Datorspråksyntax särskiljs normalt i tre olika nivåer:

Att särskilja på ett sådant sätt producerar modularitet som gör att varje nivå kan beskrivas och bearbetas separat, och ofta oberoende. Det börjar med att en lexer förvandlar den linjära sekvensen av tecken till en linjär sekvens av tokens: detta kallas lexikal analys eller lexing .

För det andra omvandlar analysatorn den linjära sekvensen av tokens till vad som kallas ett hierarkiskt syntaxträd. Detta kallas för parsning .

För det tredje löser den kontextuella analysen kontroller och namntyper. Själva analyssteget kan delas upp i två delar: det konkreta syntaxträdet eller analysträdet som bestäms av grammatiken, men det är för detaljerat för praktisk användning, och det abstrakta syntaxträdet (AST), som förenklar detta till en form som är användbar.

SYNTAX VERSUS SEMANTIK

Syntaxen för ett språk beskriver ett giltigt programs form, men det ger ingen information om programmets innebörd eller resultaten som kommer med att köra programmet. Innebörden som ges till en kombination av symboler hanteras av semantik (antingen hårdkodad eller formell i en referensimplementering). Inte alla program som är syntaktisk korrekta är semantiskt korrekta. Ett stort antal av de syntaktiskt korrekta programmen är ändå dåligt utformade enligt språkets regler; och kan (med hänsyn till språkspecifikationen samt implementeringens sundhet) resultera i ett fel vid utförande eller översättning. I vissa fall kan sådana program visa odefinierat beteende. Även vid tillfällen då ett program är väldefinierat på ett språk, kan det fortfarande ha en mening som inte avsedd av dess författare.

I ett naturligt språks exempel kan det vara omöjligt att ge en mening till en mening som är grammatiskt korrekt. Till exempel,

Download Primer to continue