Khia: statische - dynamische Semantik

Ich hab mal ne Frage:
Und zwar muss ich eine Aufgabe lösen, die mich immer mehr durcheinander bringt. Vielleicht kann mir jemand ein wenig auf die Spünge helfen?

Und zwar geht es um statische bzw. dynamische Semantik...

Ich hab mir jetzt überlegt, dass man die statische Semantik sich bereits ohne Ausführung bzw. vor Ausführung des Programms überprüfen kann.

Hier meine Frage: Kann bei der statischen Semantik einer Variablen nacheinander Werte unterschiedlicher Typen zugewiesen werden? Nein, oder? Es gilt doch immer nur die letzte Zuweisung, gelle? Also eigentlich jein?!?!?

Wie sieht das bei der dynamischen Semantik aus? Haben hier Variablendefinitionen keine Typangaben?

Vielen Dank schon mal vorab für eure Hilfe!

  1. hi,

    Und zwar geht es um statische bzw. dynamische Semantik...

    aha.
    hä?

    Wie sieht das bei der dynamischen Semantik aus? Haben hier Variablendefinitionen keine Typangaben?

    von welcher programmiersprache reden wir denn eigentlich?
    die sind ja durchaus verschieden, was variablentypen, (automatisches) type casting etc. angeht.

    gruss,
    wahsaga

    1. Naja, es geht eigentlich um keine bestimmte Programmiersprache.
      Wir sollen halt überlegen, was eher zu einer Sprache passt, in der die Typregeln zur statischen bzw. dynamischen Semantik gehören sollen.

      Dann sind da ein paar Aussagen, die wir halt zuordnen sollen.

      Z.B. Es gibt keine Variablendefinition. Gehört wozu? Meiner Ansicht nach Quatsch, gibt es nämlich immer.
      oder
      Variablendefinitionen haben keine Typangaben. Gehört wozu?
      oder
      Eine Variable darf nur Werte eines einzigen Typs aufnehmen.
      oder
      Einer Variablen können nacheinander Werte unterschiedlicher Typen zugewiesen werden.

      usw...

      hi,

      Und zwar geht es um statische bzw. dynamische Semantik...

      aha.
      hä?

      Wie sieht das bei der dynamischen Semantik aus? Haben hier Variablendefinitionen keine Typangaben?

      von welcher programmiersprache reden wir denn eigentlich?
      die sind ja durchaus verschieden, was variablentypen, (automatisches) type casting etc. angeht.

      gruss,
      wahsaga

  2. ich kann dir jetzt nur das sagen, was ich über php weiß...

    natürlich behält die varibale immer nur den zuletzt zugewiesenen wert, sonst wäre das ganz ja irgendwie sinnlos :D

    variablentypen weißt php automatisch zu... immer abhängig vom zuerst zugewiesenen inhalt...

    löschen (auch typ) geht mit unset()

  3. hallo ;-)

    Ich hab mal ne Frage:

    Oh, bist du sicher, daß du da richtig gezählt hast?

    Und zwar geht es um statische bzw. dynamische Semantik...

    Aha?  Und was ist das bitteschön? Eine Unterscheidung statisch / dynamisch ist mir für den Begriff "Semantik" nicht bekannt. Allerdings wird gelegentlich von "struktureller", "generativer" und "praktischer" Semantik gesprochen und geschrieben. Das hängt (auch) davon ab, ob man eine Untersuchung semasiologisch oder onomasiologisch betreibt.

    Ich hab mir jetzt überlegt, dass man die statische Semantik sich bereits ohne Ausführung bzw. vor Ausführung des Programms überprüfen kann.

    Hm. Du hast "überlegt, daß"? Bist du da sicher? Ich glaube eher, du hast überlegt, _ob_ "man [...] sich [...] überprüfen kann". Das kann man. Du solltest beispielsweise bei deiner Grammatik damit anfangen und dir überlegen, was intransitive Verbformen bewirken und wann sie eingesetzt werden dürfen.

    Hier meine Frage: Kann bei der statischen Semantik einer Variablen nacheinander Werte unterschiedlicher Typen zugewiesen werden?

    Nein. Weil:
    1. ist "kann" hier die falsche Verbform, korrekt wäre "können"
    2. gibt es keine "statische Semantik"
    3. haben Variablen mit Semantik so viel zu tun wie Zierfischhaltung mit Gaschromatographie

    Es gilt doch immer nur die letzte Zuweisung, gelle?

    Von welcher Programmiersprache sprichst du jetzt eigentlich bzw. sprichst du überhaupt von einer?

    Wie sieht das bei der dynamischen Semantik aus? Haben hier Variablendefinitionen keine Typangaben?

    Frag mal deinen Lehrer, der weiß das bestimmt ;-)

    Grüße aus Berlin

    Christoph S.

  4. Hallo,

    Ich hab mal ne Frage:
    Und zwar muss ich eine Aufgabe lösen, die mich immer mehr durcheinander bringt. Vielleicht kann mir jemand ein wenig auf die Spünge helfen?

    Und zwar geht es um statische bzw. dynamische Semantik...

    Oh Gott ;-)) Wer _braucht_ eigentlich dieses theoretische Zeug?
    Das hier liest sich nicht _ganz_ so abgehoben:
    http://www.ps.uni-sb.de/~smolka/Programmierung/
    Hier:http://www.ps.uni-sb.de/~smolka/Programmierung/2.pdf
    Bezeichnerbindung
    Statische und dynamische Bindungen
    Neben lexikalischen Bindungen gibt es statische und dynamische Bindungen. Statische Bindungen werden bei der semantischen Analyse einer Phrase gebildet und binden Bezeichner an Typen (monomorphe Bindung) oder Typschemata (polymorphe Bindung). Dynamische Bindungen werden bei der Ausfžhrung einer Phrase gebildet und binden Bezeichner an Werte.

    Ich hab mir jetzt überlegt, dass man die statische Semantik sich bereits ohne Ausführung bzw. vor Ausführung des Programms überprüfen kann.

    Mal praxisbezogen (in Java):

    int Quotient(int b) {
        return a / b;
      }

    ist syntaktisch korrekt. Allerdings fehlt die Deklaration von a. Das Programm ist nicht geschlossen. Das ist ein Fehler in der statischen Semantik. Er wird bei der semantischen Analyse festgestellt. In der Praxis, beim Compilieren.

    String a = "3";
      int Quotient(int b) {
        return a / b;
      }

    ist syntaktisch korrekt und geschlossen. Es ist aber nicht wohlgetypt. Auch das ist ein Fehler in der statischen Semantik. Compiler-Fehler: Die Operation / kann nicht auf den Typ String angewendet werden.

    int a;
      int Quotient(int b) {
        return a / b;
      }

    ist ebenfalls syntaktisch korrekt. Es ist auch geschlossen, weil alle Bezeichner an Typen gebunden sind. Es wird also kompiliert. Sein Ergebnis ist aber nicht vorhersagbar, bzw. von Standardwerten der jeweiligen Programmiersprache abhängig, weil a frei auftritt. Der Bezeichner a ist an keinen _Wert_ gebunden. Dieser Fehler in der dynamischen Semantik kann erst während der Laufzeit festgestellt werden.

    Hier meine Frage: Kann bei der statischen Semantik einer Variablen nacheinander Werte unterschiedlicher Typen zugewiesen werden? Nein, oder? Es gilt doch immer nur die letzte Zuweisung, gelle? Also eigentlich jein?!?!?

    Nein, eben die _Wertbindung_ hat mit der statischen Semantik noch nichts zu tun. Und auch die mehrfache Typbindung _eines_ Bezeichners ist ein Verstoß gegen die statische Semantik, weil dann eine Prüfung auf Wohlgetyptheit unmöglich wäre.

    Wie sieht das bei der dynamischen Semantik aus? Haben hier Variablendefinitionen keine Typangaben?

    Doch, sie haben eine Typbindung _und_ eine Wertbindung.

    viele Grüße

    Axel