Diskussion:OTX

aus Wikipedia, der freien Enzyklopädie

Dynamische/Statische Typisierung

Seit Version 0.9.4 ist die Sprache dynamisch typisiert.

Beispiel 1: Der Fehler in folgendem Ablauf kann nur zur Laufzeit gemeldet werden.

<otx:variable name="exc1">
  <otx:realisation>
    <otx:dataType xsi:type="otx:OutOfBoundsException" />
  </otx:realisation>
</otx:variable>
<otx:variable name="exc2">
  <otx:realisation>
    <otx:dataType xsi:type="otx:TypeMismatchException" />
  </otx:realisation>
</otx:variable>

<otx:action id="id1002">
  <otx:realisation xsi:type="otx:Assignment">
    <otx:result xsi:type="otx:ExceptionReference" referTo="exc1"  />
    <otx:term xsi:type="otx:ExceptionReference" referTo="exc2" />
  </otx:realisation>
</otx:action>

Beispiel 2: Der Typ auf der rechten Seite ist unbekannt und kann nur zur Laufzeit definiert werden.

<otx:action id="id1002">
  <otx:realisation xsi:type="otx:Assignment">
    <otx:result xsi:type="otx:ListReference" referTo="list"  />
    <otx:term xsi:type="event:GetNewValue" >
      <event:event xsi:type="event:EventReference" referTo="evt" />
    </otx:term>
  </otx:realisation>
</otx:action>

Beispiel 3: Es gibt keine Cast-Operatoren/Funktionen und es gibt Funktionen die schwach typisiert sind. Z.B. UserExcetpionCreate erzeugt ein Objekt von Typ UserException und ist von ExceptionTerm vererbt.

Beispiel 4: Leere Listen und Maps sind untypisiert.

Beispiel 5: Die Funktionen (=OTX Terms), die Lists zurückgeben, sind untypisiert(Terms, die von ListTerm vererbt sind). Der Term aus Erweiterung kann abwechselnd entweder ein Objekt von Typ List<String> oder ein Objekt von Typ List<Integer> zurückgeben. Die möglichen Typüberprüfungen können nur zur Laufzeit stattfinden.


Die Beispiele sind richtig. Allerdings sind sie eher Ausnahmen im aktuellen Datenmodell. In der nächsten Version sollen diese Ausnahmen entweder als Ausnahme bestand haben oder durch statische Konstrukte ersetzt werden.

Die überagende Mehrzahl der Terme arbeitet mit einer starken, statischen Typisierung daher habe ich die aktuelle Version wieder auf stark, statisch gesetzt.

Wir sollten nicht außer acht lassen, dass der Standard noch nicht fertig ist und sich noch einige Fehler im Datenmodell befinden. (nicht signierter Beitrag von 194.114.62.72 (Diskussion) 11:14, 21. Okt. 2010 (CEST))


OTX ist ab 18.10.2011 offiziell dynamisch typisiert. (nicht signierter Beitrag von 84.21.34.141 (Diskussion) 12:05, 18. Okt. 2011 (CEST))


Meines Wissens ist das nicht korrekt, OTX ist nach wie vor statisch typisiert, denn jede Variable und jeder Kontext in OTX hat zu jedem beliebigen Zeitpunkt immer den gleichen Typ. Der Typ ändert sich niemals. Er wird bei der Deklaration angegeben. Was jedoch hinzugekommen ist ist die Möglichkeit automatisch auf den richtigen Typ zu casten. Siehe statische Typisierung und dynamische Typisierung. (nicht signierter Beitrag von 141.113.85.91 (Diskussion) 10:30, 2. Nov. 2011 (CET))

Überarbeitung wegen Finalisierung des Standards

Da auch OTX Part 3 nun kurz vor der Veröffentlichung steht und die Datenmodellversion OTX 1.0.0 erschienen ist, habe ich den Artikel überarbeitet. Dabei sind einige Altlasten herausgefallen, sowie das veraltete OTX 0.9.4 XML Beispiel.

Insbesondere habe ich Wert darauf gelegt, dass der Standard nun so beschrieben wird, wie er JETZT ist, und nicht wie er entwickelt wurde.

Falls Einwände zur Überarbeitung bestehen, bitte ich hiermit um Diskussion. (nicht signierter Beitrag von Fresco3009 (Diskussion | Beiträge) 15:46, 13. Jul 2012 (CEST))