Typ Data

In bestimmten technischen Feldern (besonders Computerprogrammierung und Statistik) ist ein Datentyp eine Klassifikation, die einen von verschiedenen Typen von Daten, solcher als reellwertig, ganze Zahl oder Boolean identifiziert, der die möglichen Werte für diesen Typ bestimmt; die Operationen, die auf Werten dieses Typs getan werden können; die Bedeutung der Daten; und der Weg Werte dieses Typs kann versorgt werden. Die meisten Datentypen in der Statistik haben vergleichbare Typen in der Computerprogrammierung, und umgekehrt, wie gezeigt, im folgenden Tisch:

Der Rest dieses Artikels richtet Datentypen von einer Informatik-Perspektive. Für ihren Gebrauch in der Statistik, sieh statistischen Datentyp.

Übersicht

Datentypen werden innerhalb von Typ-Systemen verwendet, die verschiedene Weisen anbieten, zu definieren, durchführend, und mit ihnen. Verschiedene Typ-Systeme sichern unterschiedliche Grade der Typ-Sicherheit. Formell kann ein Typ als "jedes Eigentum eines Programmes definiert werden, das wir bestimmen können, ohne das Programm durchzuführen".

Fast alle Programmiersprachen schließen ausführlich den Begriff des Datentyps ein, obwohl verschiedene Sprachen verschiedene Fachsprache verwenden können.

Allgemeine Datentypen können einschließen:

Zum Beispiel, auf der javanischen Programmiersprache, vertritt der "int" Typ den Satz von ganzen 32-Bit-Zahlen, die sich im Wert von-2.147.483.648 bis 2,147,483,647, sowie die Operationen erstrecken, die auf ganzen Zahlen, wie Hinzufügung, Subtraktion und Multiplikation durchgeführt werden können. Farben werden andererseits durch drei Bytes vertreten, die die Beträge jeder von roten, Grün, und blau, und eine Schnur anzeigen, die dass der Name der Farbe vertritt; zulässige Operationen schließen Hinzufügung und Subtraktion, aber nicht Multiplikation ein.

Die meisten Programmiersprachen erlauben auch dem Programmierer, zusätzliche Datentypen, gewöhnlich durch das Kombinieren vielfacher Elemente anderer Typen und das Definieren der gültigen Operationen des neuen Datentyps zu definieren. Zum Beispiel könnte ein Programmierer einen neuen Datentyp genannt "komplexe Zahl" schaffen, die echte und imaginäre Teile einschließen würde.

Ein Datentyp vertritt auch eine Einschränkung, die auf die Interpretation von Daten in einem Typ-System gelegt ist, Darstellung, Interpretation und Struktur von Werten oder im Computergedächtnis versorgten Gegenständen beschreibend. Das Typ-System verwendet Datentyp-Information, um Genauigkeit von Computerprogrammen zu überprüfen, dass Zugang oder die Daten manipuliert.

Klassen von Datentypen

Maschinendatentypen

Alle Daten in auf der Digitalelektronik gestützten Computern werden als Bit (Alternativen 0 und 1) auf dem Tiefststand vertreten. Die kleinste addressable Einheit von Daten ist gewöhnlich eine Gruppe von Bit genannt ein Byte (gewöhnlich ein Oktett, das 8 Bit ist). Die durch Maschinencodeinstruktionen bearbeitete Einheit wird ein Wort (bezüglich 2011, normalerweise 32 oder 64 Bit) genannt. Die meisten Instruktionen interpretieren das Wort als eine Binärzahl, solch, dass ein 32-Bit-Wort nicht unterzeichnete Werte der ganzen Zahl von 0 bis oder unterzeichnete Werte der ganzen Zahl von dazu vertreten kann. Wegen der Ergänzung von two, der Maschinensprache und Maschine braucht zwischen diesen nicht unterzeichneten und unterzeichneten Datentypen größtenteils nicht zu unterscheiden.

Es gibt einen spezifischen Satz von arithmetischen Instruktionen, die eine verschiedene Interpretation der Bit im Wort als eine Schwimmpunkt-Zahl verwenden.

Maschinendatentypen müssen ausgestellt oder in Systemen oder auf niedriger Stufe Programmiersprachen bereitgestellt werden, feinkörnige Kontrolle über die Hardware erlaubend. Die C Programmiersprache liefert zum Beispiel Typen der ganzen Zahl verschiedener Breiten, solcher als und. Wenn ein entsprechender heimischer Typ auf der Zielplattform nicht besteht, wird der Bearbeiter sie unten in Codeverwenden-Typen zerbrechen, die wirklich bestehen. Zum Beispiel, wenn eine ganze 32-Bit-Zahl auf einer 16-Bit-Plattform gebeten wird, wird der Bearbeiter sie als eine Reihe von zwei ganzen 16-Bit-Zahlen stillschweigend behandeln.

Mehrere Sprachen erlauben binäre und hexadecimal Druckfehler für die günstige Manipulation von Maschinendaten.

In der höheren Niveau-Programmierung werden Maschinendatentypen häufig verborgen oder als ein Durchführungsdetail abstrahiert, das weniger tragbaren wenn ausgestellten Code machen würde. Zum Beispiel könnte ein allgemeiner Typ statt ganzer Zahlen etwas spezifischer Bit-Breite geliefert werden.

Der boolean Typ

Der Typ Boolean vertritt die Werte: wahr und falsch. Obwohl nur zwei Werte möglich sind, werden sie als eine einzelne binäre Ziffer aus Leistungsfähigkeitsgründen selten durchgeführt. Viele Programmiersprachen haben keinen ausführlichen boolean Typ, stattdessen (zum Beispiel) 0 als falsche und andere Werte als wahr dolmetschend.

Numerische Typen

Solcher als:

  • Die Datentypen der ganzen Zahl oder "ganze Zahlen". Kann gemäß ihrer Fähigkeit subgetippt werden, negative Werte (z.B in C und C ++) zu enthalten. Mai hat auch eine kleine Zahl von vorherbestimmten Subtypen (solcher als und in C/C ++); oder erlauben Sie Benutzern, Teilbereiche solcher als 1 frei zu definieren.. 12 (z.B. Pascal/Ada).
  • Das Schwimmen von Punkt-Datentypen, manchmal irreführend genannt reals, enthält Bruchwerte. Sie haben gewöhnlich Grenzen sowohl auf ihren maximalen Werten als auch auf ihrer Präzision vorherbestimmt.
  • Feste Punkt-Datentypen sind günstig, um Geldwerte zu vertreten. Sie werden häufig innerlich als ganze Zahlen durchgeführt, zu vorherbestimmten Grenzen führend.
  • Bignum oder willkürliche Präzision numerische Typen haben an vorherbestimmten Grenzen Mangel. Sie sind nicht primitive Typen, und werden sparsam aus Leistungsfähigkeitsgründen verwendet.

Schnur und Texttypen

Solcher als

  • Alphanumerischer Charakter. Ein Buchstabe vom Alphabet, Ziffer, leerer Raum, Satzzeichen, usw.
  • Alphanumerische Schnuren, eine Folge von Charakteren. Sie werden normalerweise verwendet, um Wörter und Text zu vertreten.

Charakter und Schnur-Typen können Folgen von Charakteren von einer Codierung wie ASCII versorgen. Da die meisten Codierungen die Ziffern einschließen, ist es möglich, eine numerische Schnur, solcher als zu haben. Jedoch würden viele Sprachen noch diese als das Gehören einem verschiedenen Typ zum numerischen Wert behandeln.

Charakter und Schnur-Typen können verschiedene Subtypen gemäß dem erforderlichen Charakter "Breite" haben. Wie man fand, wurde der ursprüngliche 7 Bit breite ASCII beschränkt, und durch 8 und 16 Bohrersätze ersetzt, die ein großes Angebot an nichtlateinischen Alphabeten (Neuhebräisch, Chinesisch) und andere Symbole verschlüsseln können.

Schnuren können entweder Strecken-zu-passend oder der festen Größe sogar auf derselben Programmiersprache sein. Sie können auch durch ihre maximale Größe subgetippt werden.

Zeichen: Schnuren sind auf allen Sprachen, zum Beispiel C nicht primitiv: Sie können aus der Reihe von Charakteren zusammengesetzt werden.

Enumerationen

Der aufgezählte Typ. Das hat Werte, die von einander verschieden sind, und die verglichen und zugeteilt werden können, aber die keine besondere konkrete Darstellung im Gedächtnis des Computers notwendigerweise haben; Bearbeiter und Dolmetscher können sie willkürlich vertreten. Zum Beispiel können die vier Klagen in einem Deck von Spielkarten vier Zähler genannt KLUB, DIAMANT, HERZ, SPATEN sein, einem aufgezählten Typ genannt Klage gehörend. Wenn eine Variable V erklärt wird, Klage als sein Datentyp habend, kann man einigen jener vier Werte dazu zuteilen. Einige Durchführungen erlauben Programmierern, Werte der ganzen Zahl den Enumerationswerten zuzuteilen, oder sogar sie als mit dem Typ gleichwertig zu ganzen Zahlen zu behandeln.

Abgeleitete Typen

Typen können auf, oder abgeleitet, die grundlegenden Typen basieren, die oben erklärt sind.

Auf einer Sprache, wie C, ließen Funktionen auf einen Typ der Typ ihres Rückwerts ableiten.

Zeigestöcke und Verweisungen

Der abgeleitete, nichtzerlegbare Haupttyp ist der Zeigestock, ein Datentyp, dessen sich Wert direkt darauf bezieht (oder "weist zu" hin), ein anderer Wert versorgt anderswohin im Computergedächtnis mit seiner Adresse. Es ist eine primitive Art der Verweisung. (In täglichen Begriffen konnte eine Seitenummer in einem Buch als ein Stück von Daten betrachtet werden, das sich auf einen anderen bezieht). Zeigestöcke werden häufig in einem einer ganzen Zahl ähnlichen Format versorgt; jedoch "schlägt" der Versuch zu dereference oder einen Zeigestock "nach", dessen Wert nie eine gültige Speicheradresse war, würde ein Programm veranlassen abzustürzen. Um dieses potenzielle Problem zu verbessern, werden Zeigestöcke als ein getrennter Typ zum Typ von Daten betrachtet, zu denen sie hinweisen, selbst wenn die zu Grunde liegende Darstellung dasselbe ist.

Zerlegbare Typen

Zerlegbare Typen werden aus mehr als einem primitivem Typ abgeleitet. Das kann auf mehrere Weisen getan werden. Auf die Weisen werden sie verbunden werden Datenstrukturen genannt. Das Bestehen eines primitiven Typs in einen zusammengesetzten Typ läuft allgemein auf einen neuen Typ hinaus, z.B ist Reihe der ganzer Zahl ein verschiedener Typ zur ganzen Zahl.

  • Eine Reihe versorgt mehrere Elemente desselben Typs in einer spezifischen Ordnung. Auf sie wird mit einer ganzen Zahl zugegriffen, um anzugeben, welches Element erforderlich ist (obwohl die Elemente fast jedes Typs sein können). Reihe kann feste Länge oder erweiterbar sein.
  • Aufzeichnung (auch genannt Tupel oder struct) Aufzeichnungen ist unter den einfachsten Datenstrukturen. Eine Aufzeichnung ist ein Wert, der andere Werte, normalerweise in der festgelegten Zahl und Folge und normalerweise mit einem Inhaltsverzeichnis versehen durch Namen enthält. Die Elemente von Aufzeichnungen werden gewöhnlich Felder oder Mitglieder genannt.
  • Vereinigung. Eine Vereinigungstyp-Definition wird angeben, welcher von mehreren erlaubten primitiven Typen in seinen Beispielen, z.B "Hin- und Herbewegung oder lange ganze Zahl" versorgt werden kann. Die Unähnlichkeit mit einer Aufzeichnung, die definiert werden konnte, um eine Hin- und Herbewegung und eine ganze Zahl zu enthalten; wohingegen, in einer Vereinigung, es nur einen Wert auf einmal gibt.
  • Eine markierte Vereinigung (hat auch eine Variante, verschiedene Aufzeichnung, unterschiedene Vereinigung oder zusammenhanglose Vereinigung genannt), enthält ein zusätzliches Feld, das seinen aktuellen Typ für die erhöhte Typ-Sicherheit anzeigt.
  • Ein Satz ist eine abstrakte Datenstruktur, die bestimmte Werte, ohne jede besondere Ordnung und keine wiederholten Werte versorgen kann. Werte selbst werden von Sätzen nicht wiederbekommen, eher prüft man einen Wert für die Mitgliedschaft, um einen boolean "in" oder "nicht in" zu erhalten.
  • Ein Gegenstand enthält mehrere Datenfelder, wie eine Aufzeichnung und auch mehrere Programm-Codebruchstücke, um auf sie zuzugreifen oder sie zu modifizieren. Datenstrukturen, die nicht Code, wie diejenigen oben enthalten, werden einfache alte Datenstruktur genannt.

Viele andere sind möglich, aber sie neigen dazu, weitere Schwankungen und Zusammensetzungen des obengenannten zu sein.

Abstrakte Typen

Jeder Typ, der keine Durchführung angibt, ist ein Abstrakter Datentyp. Zum Beispiel kann ein Stapel (der ein abstrakter Typ ist) als eine Reihe (ein aneinander grenzender Block des Gedächtnisses durchgeführt werden, das vielfache Werte enthält), oder als eine verbundene Liste (eine Reihe aneinander nichtgrenzender Speicherblöcke, die durch Zeigestöcke verbunden ist).

Abstrakte Typen können durch den Code behandelt werden, der nicht weiß oder "sich sorgt", welche zu Grunde liegende Typen enthalten werden

in ihnen. Programmierung, die Agnostiker über konkrete Datentypen ist, wird allgemeine Programmierung genannt. Reihe und Aufzeichnungen können auch zu Grunde liegende Typen enthalten, aber werden konkret betrachtet, weil sie angeben, wie ihr Inhalt oder Elemente im Gedächtnis angelegt werden.

Beispiele schließen ein:

Dienstprogramm-Typen

Für die Bequemlichkeit können höhere Programmiersprachen" echte "Konfektionsweltdatentypen, zum Beispiel Zeiten, Daten und Geldwerte liefern, sogar dort, wo die Sprache ihnen erlaubt, von primitiven Typen gebaut zu werden.

Typ-Systeme

Ein Typ-System vereinigt Typen mit jedem geschätzten Wert. Durch das Überprüfen des Flusses dieser Werte versucht ein Typ-System zu beweisen, dass keine Typ-Fehler vorkommen können. Das fragliche Typ-System bestimmt, was einen Typ-Fehler einsetzt, aber ein Typ-System bemüht sich allgemein zu versichern, dass Operationen, die eine bestimmte Art des Werts erwarten, mit Werten nicht verwendet werden, für die diese Operation Sinn nicht hat.

Ein Bearbeiter kann den statischen Typ eines Werts verwenden, um die Lagerung zu optimieren, die es braucht und die Wahl von Algorithmen für Operationen auf dem Wert. In vielen C Bearbeitern wird der Datentyp zum Beispiel in 32 Bit gemäß der IEEE Spezifizierung für die einfache Präzision vertreten, die Punkt-Zahlen schwimmen lässt. Sie werden so Schwimmpunkt spezifische Mikroprozessor-Operationen auf jenen Werten (Schwimmpunkt-Hinzufügung, Multiplikation, usw.) verwenden.

Die Tiefe von Typ-Einschränkungen und die Weise ihrer Einschätzung betreffen das Schreiben der Sprache. Eine Programmiersprache kann weiter eine Operation mit unterschiedlichen konkreten Algorithmen auf jedem Typ im Fall vom Typ polymorphism vereinigen. Typ-Theorie ist die Studie von Typ-Systemen, obwohl die konkreten Typ-Systeme von Programmiersprachen aus praktischen Problemen der Computerarchitektur, der Bearbeiter-Durchführung und des Sprachdesigns entstehen.

Typ-Systeme können das verschiedenartig statische oder dynamische, starke oder schwache Schreiben und so weiter sein.

Siehe auch

Weiterführende Literatur


Kritiken der Globalisierung / Chinesische Konstellationen
Impressum & Datenschutz