quiz Aufgabe 2 c

Gast1
Gast

Re: quiz Aufgabe 2 c

Beitrag von Gast1 » 11. Mär 2014 13:36

Hmm ich finde das alles leicht verwirrend. Hatte es mir bis jetzt immer so gemerkt, dass Syntaxfehler Grammatikfehler sind aber dann hieß es irgendwann das alles was nicht kompiliert werden kann und direkt eine Fehlermeldung ausgibt, ein Syntaxfehler ist. In dem Vorlesungsvideo zu Abstraktionsbenen werden folgende Beispiele als Semantikfehler angeführt:

Code: Alles auswählen

int [] a = new int [10];
a[-3] = 5;

Code: Alles auswählen

String str = null;
int len = str.length;
Ich kann es zwar gerade nicht testen aber ich bin mir sicher, dass der Compiler bei beiden eine Fehlermeldung ausgeben würde. Nach der Definition wären somit beide Beispiele Syntaxfehler und keine Semantikfehler.

rstyler
Gast

Re: quiz Aufgabe 2 c

Beitrag von rstyler » 11. Mär 2014 14:27

Diese Diskussion zu Syntax/Semantik läuft hier:
viewtopic.php?f=261&t=29909#p158409

Zur Beruhigung:
Prof. Karsten Weihe hat geschrieben:Was immer es an Unterschieden in der Definition von Syntax vs Semantik so gibt, wird für die Klausur nicht relevant sein. :)
Im Übrigen hast du Recht, IMHO sind das alles Semantik-Fehler, aber die Unterscheidung kann manchmal haarig sein. Deswegen gab es auch die Definition, die es "leichter" machen sollte.

Puffryze
Gast

Re: quiz Aufgabe 2 c

Beitrag von Puffryze » 11. Mär 2014 14:55

@Gast1

Wenn man die beiden Codestücke in BlueJ implementiert meckert der Compiler nicht.

Code: Alles auswählen

public class Semantikfehler{
   String str = null;
   int len = str.length();
     
   public Semantikfehler()
   {
    int[] a = new int[10];   
    a[-3] = 5;
   }    
        
}
Wenn ich jetzt das Array und die Stringlänge ausgeben würde, würde das Programm eine Runtime-Exception werfen.

Also behalte dir einfach für morgen, dass was auf den Folien steht und du bist save :)
kann mich meinen Vorgängern nur anschließen

Antworten

Zurück zu „Archiv“