# syntaktisch und typkorrekt



## kiotoqq (10. Mai 2012)

ich hab hier stehen:
(3 == 7) && (0 < 1) ist syntaktisch korrekt und typkorrekt und vom Typ boolean.
wie kann 3==7 syntaktisch korrekt sein? 3==7 ist doch falsch oder nicht?


----------



## SlaterB (10. Mai 2012)

nein, das ist syntaktisch korrekt,
möchtest du auch noch eine Begründung für deine Zweifel angeben, die dann geklärt werden könnte?


----------



## Gast2 (10. Mai 2012)

```
3 == 7
```
 ist ein boolscher ausdruck, der false liefert.


----------



## kiotoqq (10. Mai 2012)

SlaterB hat gesagt.:


> nein, das ist syntaktisch korrekt,
> möchtest du auch noch eine Begründung für deine Zweifel angeben, die dann geklärt werden könnte?



ich bitte drum...
syntaktisch heißt ja, dass es sinnmacht, und typkorrekt heißt ja, dass es grammatikalisch richtig ist, (oder andersrum?)


----------



## timbeau (10. Mai 2012)

Syntax ? Wikipedia


----------



## SlaterB (10. Mai 2012)

wenn dann hat die Semantik den Sinn am Hut,
Syntax die Grammatik,
Typkorrektheit hier die Java-Regeln für Werte-Typen


----------



## kiotoqq (10. Mai 2012)

timbeau hat gesagt.:


> Syntax ? Wikipedia



ahh, danke. es heißt also, wenn was nicht syntaktisch korrekt ist, dann kann es auch nicht typkorrekt, stimmt es?


----------



## timbeau (10. Mai 2012)

Naja, 

bla == blubb kann syntaktisch korrekt sein aber nicht typkorrekt. 


```
int bla,blubb
```

vs


```
int bla, String blubb
```

So ist zumidnest , mein Verständnis. 

Syntaktisch nicht korrekt wäre bla ====== blubb


----------



## SlaterB (10. Mai 2012)

> wenn was nicht syntaktisch korrekt ist, dann kann es auch nicht typkorrekt,

absolut, ohne ein lesbares Programm kann man über die Bedeutung, selbst auf so niedriger Ebene wie nur den Typen, nicht nachdenken


----------



## kiotoqq (10. Mai 2012)

(14 < 3) || ((1/5) == 4567)
das hier ist syntaktisch und typkorrekt vom typ boolean, wenn ich || z.b.gegen + austausche, wärs dann nicht mehr syntaktisch korrekt?


----------



## Gast2 (10. Mai 2012)

Richtig, weil du zwei booleans nicht addieren kannst.


----------



## SlaterB (10. Mai 2012)

ich persönlich kann das nicht sicher beantworten, hängt von den Definitionen ab,
für mich würde das auch der Syntax widersprechen, nachdem was ich persönlich pauschal Syntax nenne, 
allerdings geht es dann hier doch offensichtlich direkt um Typen, + auf boolean und boolean,

wenn man die Typkorrektheit als eigene Stufe fasst, könnte man auch argumentieren, 
dass eine Ebene darunter 'Ausdruck + Ausdruck' eine korrekte Syntax ist, egal welche Ausdrücke es sind,
während z.B. 'Ausdruck + Ausdruck Ausdruck' bei beliebigen Typen falsch ist


----------

