Syntaxfel

Image
Syntaxfel i en vetenskaplig kalkylator .
Image
Syntaxfel i en internetapplikation (2021)

Syntaxfel ( engelska syntaxfel ) är vanligtvis brott mot syntaxreglerna för ett naturligt eller artificiellt språk. I grammatik hänvisar termen till ordningen av delarna av en mening, inom datavetenskap hänvisar det vanligtvis till den så kallade sammanhangsfria delen av de syntaktiska reglerna för ett programmeringsspråk . Program med syntaxfel avvisas av en kompilator eller tolk . Ett syntaktiskt korrekt program kan leda till runtime- fel om det innehåller semantiska fel.

definition

Syntaxfel i naturliga språkens grammatik , till exempel tyska, är brott mot reglerna för meningsstruktur enligt vilka ord kombineras till större funktionella enheter ( meningar ) och relationer som helhet, beroende etc. formuleras mellan dessa delar av meningen .

Syntaxfel i programmeringsspråk känns igen av analysatorn i analysfasen för en kompilatorkörning, närmare bestämt i den syntaktiska analysen . Parsern måste inte bara känna igen att den analyserade källkoden inte motsvarar den formella grammatiken för programmeringsspråket, utan också skicka ett förståeligt felmeddelande. Eftersom inte alla egenskaper hos ett programmeringsspråk kan beskrivas av kontextfria grammatiker, kan vissa fel, t.ex. B. Överträdelser av typreglerna för programmeringsspråket, erkänns också endast av kompilatorn i semantisk analys . Andra tänkfel i programmet kan inte identifieras alls vid sammanställningstid; Kompilatorer infogar dock ofta testkod där, vilket leder till ett körtidsfel endast under programkörning. I motsats till detta kan semantiska fel, dvs. fel i den avsedda betydelsen av en programtext, inte alls kännas igen.

Exempel

Ett utbrett exempel på syntaxfel på tyska är formuleringar som

jämförde den sexuellt dokumenterade frekvensen av Jack London med Erich Mühsams

I grammatiska termer hänvisar den adverbiala definitionen "sexuell" till partikeln "dokumenterad" och beskriver således en omständighet att dokumentera. Den avsedda betydelsen är dock en annan: Det är inte dokumentationen som är sexuell utan frekvensen. Så det måste vara korrekt: den dokumenterade sexuella frekvensen .

Syntaxfel kan också uppstå på grund av en felaktig kombination av orden ( semantik ). Till exempel:

Svarstiderna för säkerhetsleverantörer är ofta mycket snabba ...

Tiderna är inte snabba eller långsamma, men korta eller långa. Det måste vara korrekt antingen Svarstiderna för S. är ofta mycket korta eller reaktionerna från S. är ofta mycket snabba ...

Syntaxfel i datorprogram orsakas ofta av felaktigt placerade eller saknade tecken som semikolon , kommatecken och parenteser eller meningsfulla ord som foreller BEGIN. Integrerade utvecklingsmiljöer är vanligtvis utformade på ett sådant sätt att sådana fel känns igen omedelbart och signaleras till programmeraren.

Ett exempel på ett syntaxfel i Java :

public class Beispiel {
    public static void main(String[] args) {
        System.out.println("Hallo Welt!")
    }
}

I det här exemplet skulle en typisk Java-kompilator kritisera det saknade semikolonet efter stängningsfästet i rad 3, vilket Java-syntax kräver. Kompilatorns utdata ger programmeraren information om typ och ungefärlig plats för felet:

Syntax error, insert ";" to complete BlockStatements Beispiel.java line 3

Filnamnet på källtexten , raden och det faktiska felmeddelandet matas vanligtvis ut här. Ordningen och antalet utgångar varierar från kompilator till kompilator.

Individuella bevis

  1. ^ Alfred V. Aho, Ravi Seti, Jeffrey D. Ullmann: Compilerbau . tejp 1 . Addison-Wesley, Bonn 1988, ISBN 3-89319-150-X , s. 194 .
  2. Üd Rüdiger Bernhardt i en recension av Florian Illies: 1913 - Vad jag verkligen ville berätta. Vår tid 11/30/2018
  3. Christian Fenselau: Virusskannrar kan vara farliga. t-online.de 6.4.2016 ( online )