Was ist eine Typdefinition?

Beim Lesen von Datentypen wird „Typdefinition“ häufig ohne vorherige Erklärung der Bedeutung verwendet.

Zum Beispiel: In https://en.wikipedia.org/wiki/Type_system haben wir den Satz „… da C ++ strengere Regeln für Typdefinitionen …“

Hilfe bei der Klärung des Unterschieds zwischen beispielsweise type und Typdefinition wird sehr geschätzt!

Kommentare

  • Wissen Sie, was ein Typ ist? Dann ist eine Typdefinition , wie der Begriff andeutet, die Definition eines Typs. Ich ' bin mir nicht sicher, was Ihre eigentliche Frage hier ist.

Antwort

„Definieren“ eines Typs ist das Erstellen eines neuen Typs, der aus einem oder mehreren bereits vorhandenen Datentypen besteht. Beispielsweise wird der Typ „Komplexe Zahl“ häufig als geordnetes Paar von „reellen Zahlen“ deklariert:

Type Complex Real a Real b End 

a und b sind Real- und Imaginärteil .

Dieses Beispiel für Pseudocode ist eine „Typdefinition“.

Kommentare

  • Ich habe ' Ich glaube nicht, dass ' gefragt wird … Das Definieren eines abstrakten Datentyps ist natürlich eine Typdefinition, hat aber nichts mit strong zu tun oder schwache Eingabe (Teil der Frage)

Antwort

Aus „The C ++ Programming Language“ von Bjarne Stroustrup den Ersteller von C ++.

Ein Typ definiert eine Reihe möglicher Werte und eine Reihe von Operationen (für ein Objekt).

Auch die folgenden Definitionen hängen mit dem Typ aus demselben Buch zusammen.

Eine Deklaration ist eine Aussage das führt einen Namen in das Programm ein. Es gibt a an Typ für die benannte Entität

Ein Objekt ist ein Speicher, der einen Wert eines bestimmten Typs enthält.

Ein Wert ist eine Menge von Bits, die gemäß einem Typ interpretiert werden.

Eine Variable ist ein benanntes Objekt.

Kommentare

  • Dies ist nicht ' Erwähne Typdefinition nicht.

Antwort

Variablen können verschiedene Arten von Werten enthalten, z. B. Ganzzahlen, Realzahlen, Zeichen … Dies wird als TYP der Variablen bezeichnet. Einige Sprachen werden dynamisch eingegeben. Das bedeutet, dass der Interpreter oder der Compiler den Typ der Variablen für Sie bestimmt. In statisch typisierten Sprachen müssen Sie den Typ selbst definieren, wenn Sie die Variable deklarieren. Dies ist die TYPDEFINITION.

In stark typisierten statischen Sprachen verbieten die Regeln das Mischen verschiedener Typen. Wenn Sie beispielsweise eine reelle und eine ganze Zahl hinzufügen möchten, müssen Sie die ganze Zahl explizit in reelle umwandeln.

In einer schwach typisierten Sprache können Sie Typen mischen. Da sich die Bitmuster auf niedriger Ebene jedoch zwischen den Typen unterscheiden, können unerwünschte Ergebnisse erzielt werden.

Die meisten Sprachen liegen irgendwo dazwischen. Es wird klar sein, dass unerwünschte Effekte nicht akzeptabel sind, während die Notwendigkeit einer expliziten Umwandlung den Code schwer macht. Daher führen die meisten Compiler für einige Standardoperationen eine implizite Umwandlung durch. Das Hinzufügen einer reellen und einer ganzen Zahl provoziert in diesem Fall implizit eine Umwandlung in eine reelle.

Kommentare

  • Was ist " pe " ? Außerdem sehe ich ' nicht, wie sich das, was Sie ' nach dem ersten Absatz geschrieben haben, auf die Frage bezieht.
  • @ David: pe = exempli gratia = Zum Beispiel = zum Beispiel … Der Satz " … da C ++ strengere Regeln für Typdefinitionen hat … " zeigt meiner Meinung nach, dass die Frage im Zusammenhang mit schwacher und starker Typisierung gestellt wird.
  • Aha – dass ' s " zB ", auf Englisch – bearbeitet.
  • in der Tat. Mein Fehler.
  • Diese Antwort zeigt eine Vielzahl schwerwiegender Missverständnisse von Typen und Typensystemen. Praktisch jeder Satz dieser Antwort ist falsch, verwirrend oder irreführend. Bei Typsystemen geht es zunächst nicht nur um Variablen: 3+'a' ' beinhaltet keine Variablen, sondern wird typgeprüft. Dynamisch " typisierte " Sprachimplementierungen nicht ' t " Entscheide " den Typ von irgendetwas. Implizite Konvertierungen ' machen eine Sprache nicht " dynamisch " oder " schwach " eingegeben.Im Allgemeinen sind statische und dynamische " Typisierung " keine entgegengesetzten Enden eines Spektrums, sondern sprechen einfach nur über verschiedene Dinge.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.