Typisierung
Typisierung?
• Festlegen des Typs einer Variablen
int i = 42;
Typisierung?
• Festlegen des Typs einer Variablen
• Das System kann überprüfen ob eine
  Verletzung des Typsystems vorlieg...
Typisierung?
• Festlegen des Typs einer Variablen
• Das System kann überprüfen ob keine
  Verletzung des Typsystems vorlie...
Wonach unterscheidet man?

     statisch   dynamisch
       stark    schwach
     explizit   implizit
statisch:
      der Compiler prüft       (ob alles korrekt ist)



dynamisch:
    keiner prüft   (Problem: Laufzeitfehler)
String s = "Hallo";
s = s.gehNachHause();
String s = "Hallo";
s = s.gehNachHause();

  statisch typisiert:
         Compiler „meckert“,
         Programm startet ni...
String s = "Hallo";
s = s.gehNachHause();

  dynamisch typisiert:
         Programm startet,
         läuft bis zu dieser ...
stark:
     zwischen den Typen wird
     streng unterschieden
schwach:
    das System versucht die Daten
    in den geford...
i = 42;
   s = "8";
ergebnis = i + s;
i = 42;
   s = "8";
ergebnis = i + s;

      stark typisiert:
             Fehler zur Kompilierungs-
             oder Lau...
i = 42;
   s = "8";
ergebnis = i + s;

      schwach typisiert:
             s wird konvertiert,
             ergebnis ist...
explizit:
     Datentyp einer Variable MUSS
     genannt werden
implizit:
     Datentyp wird ermittelt
int i = 42;
String s = "8";


   explizit typisiert:
          Datentyp wird genannt.
i = 42;
 s = "8";


implizit typisiert:
       Datentyp wird ermittelt.
Beispiel: Java?

      statisch    dynamisch
         stark    schwach
       explizit   implizit
Beispiel: Java

      statisch   dynamisch
        stark    schwach
      explizit   implizit
Beispiel: C?

      statisch    dynamisch
         stark    schwach
       explizit   implizit
Beispiel: C

      statisch    dynamisch
         stark    schwach
       explizit   implizit
Beispiel: C#?

      statisch   dynamisch
        stark    schwach
      explizit   implizit
Beispiel: C#

      statisch     dynamisch
        stark      schwach
      explizit     implizit
            int i = 2;
 ...
Beispiel: PHP?

      statisch   dynamisch
        stark    schwach
      explizit   implizit
Beispiel: PHP

      statisch   dynamisch
        stark    schwach
      explizit   implizit
Beispiel: Python?

      statisch   dynamisch
        stark    schwach
      explizit   implizit
Beispiel: Python

      statisch   dynamisch
        stark    schwach
      explizit   implizit
Fragen!
Upcoming SlideShare
Loading in …5
×

Typisierung

1,443 views
1,311 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,443
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Typisierung

  1. 1. Typisierung
  2. 2. Typisierung? • Festlegen des Typs einer Variablen
  3. 3. int i = 42;
  4. 4. Typisierung? • Festlegen des Typs einer Variablen • Das System kann überprüfen ob eine Verletzung des Typsystems vorliegt Vermeidung von Laufzeitfehlern
  5. 5. Typisierung? • Festlegen des Typs einer Variablen • Das System kann überprüfen ob keine Verletzung des Typsystems vorliegt Vermeidung von Laufzeitfehlern • Das System kann die richtige Menge Speicher für die Variable reservieren Speicheroptimierung
  6. 6. Wonach unterscheidet man? statisch dynamisch stark schwach explizit implizit
  7. 7. statisch: der Compiler prüft (ob alles korrekt ist) dynamisch: keiner prüft (Problem: Laufzeitfehler)
  8. 8. String s = "Hallo"; s = s.gehNachHause();
  9. 9. String s = "Hallo"; s = s.gehNachHause(); statisch typisiert: Compiler „meckert“, Programm startet nicht
  10. 10. String s = "Hallo"; s = s.gehNachHause(); dynamisch typisiert: Programm startet, läuft bis zu dieser Stelle, schmiert ab
  11. 11. stark: zwischen den Typen wird streng unterschieden schwach: das System versucht die Daten in den geforderten Typ zu konvertieren
  12. 12. i = 42; s = "8"; ergebnis = i + s;
  13. 13. i = 42; s = "8"; ergebnis = i + s; stark typisiert: Fehler zur Kompilierungs- oder Lauf-Zeit
  14. 14. i = 42; s = "8"; ergebnis = i + s; schwach typisiert: s wird konvertiert, ergebnis ist 50.
  15. 15. explizit: Datentyp einer Variable MUSS genannt werden implizit: Datentyp wird ermittelt
  16. 16. int i = 42; String s = "8"; explizit typisiert: Datentyp wird genannt.
  17. 17. i = 42; s = "8"; implizit typisiert: Datentyp wird ermittelt.
  18. 18. Beispiel: Java? statisch dynamisch stark schwach explizit implizit
  19. 19. Beispiel: Java statisch dynamisch stark schwach explizit implizit
  20. 20. Beispiel: C? statisch dynamisch stark schwach explizit implizit
  21. 21. Beispiel: C statisch dynamisch stark schwach explizit implizit
  22. 22. Beispiel: C#? statisch dynamisch stark schwach explizit implizit
  23. 23. Beispiel: C# statisch dynamisch stark schwach explizit implizit int i = 2; var j = 3;
  24. 24. Beispiel: PHP? statisch dynamisch stark schwach explizit implizit
  25. 25. Beispiel: PHP statisch dynamisch stark schwach explizit implizit
  26. 26. Beispiel: Python? statisch dynamisch stark schwach explizit implizit
  27. 27. Beispiel: Python statisch dynamisch stark schwach explizit implizit
  28. 28. Fragen!

×