Hallo Coder Forum!
ICh beschäftige mich gerade mit den Typensystemen in Skriptsprachen da ich für eine Facharbeit die konzepte der Skriptsprachen (allgemein ) beschreiben soll. Am anfang dachte ich unwissend wie ich war alle Skriptsprachen seine nach dem Prinzip des weak-typing implementiert dies ist aber nicht so! Nun habe ich mich mit dem Thema beschäftigt und habe gemerkt das in jeder Sprache eingentlich andere Typensysteme implementiert sind und das es irgenwie auch verschiedene Definitionen der einzelnen Systeme existieren was mich jetzt etwas verunsichert hat da ich nun nicht genau weiß was richtig ist und was nicht?
also mal einen überblick
laut dem Buch professionelle PHP 5 Programmierung
books.google.de/books?id=J_dzm…wEwAQ#v=onepage&q=schwach typisiert&f=false
dynamische-Typisierung : es wird zur Laufzeit ein Datentyp festgelegt somit kann mann auch so etwas tun wie
statische-typisierung : es wird ein Datentyp zu gewießen und zur Kompilzeit ein festgelegt zum Beispiel:
diese zwei konzepte kann man jetzt auf zwei arten implementieren
strong-typing: es wird ein Fehler geworfen wenn eine Variable einen Datentyp empfängt mit dem sie inkompatipel ist
also zum beispiel ein int bekommt einen String jedoch ist es möglich das ganze explizit zu casten
weak-typing: es wird einfach automatisch gecastet wenn die Datentypen nicht zusammen passen also zum beispiel wird ein String in ein int gecastet wie in JS
so fern der sting eine zahl ist !
außerdem sind statisch-typisierte sprachen außnahmslos strong-typing allerding können auch dynamische-sprachen strong-typing sein !
so soweit so gut auf Wikipedia steht folgendes:
"
"
de.wikipedia.org/wiki/Typisierung_(Informatik)
nun steht da ja zwar ungefähr das selbe aber es wird etwas anders unterteilt zum beispiel noch in explizit un impliziet und dynamisch und statisch nur durch den zeitpunkt unterschieden werden also laufzeit oder kompilzeit ... Also kann es laut dieser definition sein das eine statisch typsierte sprache sowohl impliziet als auch expliziet sein kann und eine dynamische ebenso ?
was wiederum bedeutet das die Definition aus dem buch nicht korrekt ist ? bzw nur teilweiße da statisch und dynamisch nur etwas mit dem zeitpunkt zu tun haben ... oder ich hab es falsch verstanden ?
was ist denn nun richtig ? Bin gerade etwas verunsichert!
Ich bin sehr Dankbar wenn ihr mich aufklären könntet
Mit freundlichen Grüßen
ICh beschäftige mich gerade mit den Typensystemen in Skriptsprachen da ich für eine Facharbeit die konzepte der Skriptsprachen (allgemein ) beschreiben soll. Am anfang dachte ich unwissend wie ich war alle Skriptsprachen seine nach dem Prinzip des weak-typing implementiert dies ist aber nicht so! Nun habe ich mich mit dem Thema beschäftigt und habe gemerkt das in jeder Sprache eingentlich andere Typensysteme implementiert sind und das es irgenwie auch verschiedene Definitionen der einzelnen Systeme existieren was mich jetzt etwas verunsichert hat da ich nun nicht genau weiß was richtig ist und was nicht?
also mal einen überblick
laut dem Buch professionelle PHP 5 Programmierung
books.google.de/books?id=J_dzm…wEwAQ#v=onepage&q=schwach typisiert&f=false
dynamische-Typisierung : es wird zur Laufzeit ein Datentyp festgelegt somit kann mann auch so etwas tun wie
statische-typisierung : es wird ein Datentyp zu gewießen und zur Kompilzeit ein festgelegt zum Beispiel:
diese zwei konzepte kann man jetzt auf zwei arten implementieren
strong-typing: es wird ein Fehler geworfen wenn eine Variable einen Datentyp empfängt mit dem sie inkompatipel ist
also zum beispiel ein int bekommt einen String jedoch ist es möglich das ganze explizit zu casten
weak-typing: es wird einfach automatisch gecastet wenn die Datentypen nicht zusammen passen also zum beispiel wird ein String in ein int gecastet wie in JS
so fern der sting eine zahl ist !
außerdem sind statisch-typisierte sprachen außnahmslos strong-typing allerding können auch dynamische-sprachen strong-typing sein !
so soweit so gut auf Wikipedia steht folgendes:
"
- starke Typisierung (strong typing) und schwache Typisierung (weak typing)
- dynamische Typisierung (dynamic typing) und statische Typisierung (static typing)
- explizite Typisierung (explicit typing) und implizite Typisierung (implicit typing)
"
de.wikipedia.org/wiki/Typisierung_(Informatik)
nun steht da ja zwar ungefähr das selbe aber es wird etwas anders unterteilt zum beispiel noch in explizit un impliziet und dynamisch und statisch nur durch den zeitpunkt unterschieden werden also laufzeit oder kompilzeit ... Also kann es laut dieser definition sein das eine statisch typsierte sprache sowohl impliziet als auch expliziet sein kann und eine dynamische ebenso ?
was wiederum bedeutet das die Definition aus dem buch nicht korrekt ist ? bzw nur teilweiße da statisch und dynamisch nur etwas mit dem zeitpunkt zu tun haben ... oder ich hab es falsch verstanden ?
was ist denn nun richtig ? Bin gerade etwas verunsichert!
Ich bin sehr Dankbar wenn ihr mich aufklären könntet
Mit freundlichen Grüßen