Anordnung

In der Informatik, im Zusammenhang der Datenlagerung und Übertragung, ist Anordnung der Prozess, eine Datenstruktur oder Gegenstand-Staat in ein Format umzuwandeln, das (zum Beispiel, in einer Datei oder Speicherpuffer versorgt, oder über eine Netzverbindungsverbindung übersandt werden kann) und später in demselben oder einer anderen Computerumgebung "auferstanden" ist. Wenn die resultierende Reihe von Bit gemäß dem Anordnungsformat nochmals gelesen wird, kann sie verwendet werden, um einen semantisch identischen Klon des ursprünglichen Gegenstands zu schaffen. Für viele komplizierte Gegenstände wie diejenigen, die umfassenden Gebrauch von Verweisungen machen, ist dieser Prozess nicht aufrichtig. Die Anordnung von objektorientierten Gegenständen schließt keine ihrer verbundenen Methoden ein, mit denen sie vorher unentwirrbar verbunden wurden.

Dieser Prozess, einen Gegenstand in Fortsetzungen zu veröffentlichen, wird auch genannt, deflationierend oder einen Gegenstand aufstellend. Die entgegengesetzte Operation, eine Datenstruktur aus einer Reihe von Bytes herausziehend, ist deserialization (der auch genannt wird, aufblasend oder unaufstellend).

Gebrauch

Anordnung stellt zur Verfügung:

  • eine Methode, Gegenstände anzudauern, der günstiger ist als das Schreiben ihrer Eigenschaften zu einer Textdatei auf der Platte und Wiederzusammenbaues von ihnen durch das Lesen davon zurück darin.
  • eine Methode von entfernten Verfahren-Anrufen, z.B, als in SEIFE
  • eine Methode, um Gegenstände, besonders in der Software componentry wie COM, CORBA usw. zu verteilen.
  • eine Methode, um Änderungen in zeitändernden Daten zu entdecken.

Für einige dieser Eigenschaften, um nützlich zu sein, muss Architektur-Unabhängigkeit aufrechterhalten werden. Zum Beispiel, für den maximalen Gebrauch des Vertriebs, sollte ein Computer, der auf einer verschiedenen Hardware-Architektur läuft, im Stande sein, einen in Fortsetzungen veröffentlichten Datenstrom unabhängig von endianness zuverlässig wieder aufzubauen. Das bedeutet, dass das einfachere und schnellere Verfahren, direkt das Speicherlay-Out der Datenstruktur zu kopieren, zuverlässig für alle Architekturen nicht arbeiten kann. Die Datenstruktur in einer Architektur in Fortsetzungen veröffentlichend unabhängiges Format bedeutet, dass wir unter den Problemen der Byte-Einrichtung, des Speicherlay-Outs oder der einfach verschiedenen Weisen nicht leiden, Datenstrukturen auf verschiedenen Programmiersprachen zu vertreten.

Innewohnend zu jedem Anordnungsschema ist, dass, weil die Verschlüsselung der Daten definitionsgemäß Serien-ist, einen Teil der in Fortsetzungen veröffentlichten Datenstruktur herausziehend, verlangt, dass der komplette Gegenstand vom Anfang bis Ende gelesen und wieder aufgebaut wird. In vielen Anwendungen ist diese Linearität ein Aktivposten, weil sie einfachen, allgemeinen Eingabe/Ausgabe-Schnittstellen ermöglicht, verwertet zu werden, um zu halten und auf den Staat eines Gegenstands zu verzichten. In Anwendungen, wo höhere Leistung ein Problem ist, kann es Sinn haben, mehr Anstrengung auszugeben, sich mit einer komplizierteren, nichtlinearen Lagerungsorganisation zu befassen.

Sogar auf einer einzelnen Maschine sind primitive Zeigestock-Gegenstände zu zerbrechlich, um zu sparen, weil die Gegenstände, zu denen sie hinweisen, zu einer verschiedenen Position im Gedächtnis umgeladen werden können. Um sich damit zu befassen, schließt der Anordnungsprozess genannten unswizzling oder Zeigestock eines Schritts unswizzling ein, und der Deserialization-Prozess schließt einen Schritt genannt Zeigestock swizzling ein.

Seitdem sowohl in Fortsetzungen zu veröffentlichen, als auch das Parallelisieren können aus dem allgemeinen Code vertrieben werden, (zum Beispiel, die In Fortsetzungen veröffentlichen Funktion in Microsoft Foundation Classes) es ist für den allgemeinen Code möglich, sowohl zur gleichen Zeit zu tun, als auch so 1) Unterschiede zwischen den Gegenständen zu entdecken, die in Fortsetzungen veröffentlichen werden und ihren vorherigen Kopien, und 2) den Eingang für das folgende solche Entdeckung zur Verfügung zu stellen. Es ist nicht notwendig, wirklich die vorherige Kopie zu bauen, da Unterschiede "im Fluge" entdeckt werden können. Das ist eine Weise, die Technik genannt Differenzialausführung zu verstehen. Es ist in der Programmierung von Benutzerschnittstellen nützlich, deren Inhalt Zeitverändern ist — können grafische Gegenstände geschaffen, entfernt, verändert oder gemacht werden, Eingangsereignisse zu behandeln, ohne notwendigerweise getrennten Code schreiben zu müssen, um jene Sachen zu machen.

Folgen

Anordnung bricht jedoch die Undurchsichtigkeit eines abstrakten Datentyps durch das potenzielle Herausstellen privater Durchführungsdetails. Triviale Durchführungen, die alle Datenmitglieder in Fortsetzungen veröffentlichen, können encapsulation verletzen.

Um Mitbewerber davon abzuhalten, vereinbare Produkte zu machen, halten Herausgeber der Eigentumssoftware häufig die Details der Anordnungsformate ihrer Programme ein Geschäftsgeheimnis. Einige verfinstern absichtlich oder sogar encrypt die in Fortsetzungen veröffentlichten Daten. Und doch verlangt Zwischenfunktionsfähigkeit, dass Anwendungen im Stande sind, jede Anordnung eines anderen Formate zu verstehen. Deshalb definieren entfernte Methode-Anruf-Architekturen wie CORBA ihre Anordnungsformate im Detail.

Anordnungsformate

Die Xerox-Netzsystembote-Technologie am Anfang der 1980er Jahre hat den ersten weit angenommenen Standard beeinflusst. Sonne-Mikrosysteme haben die Außendatendarstellung (XDR) 1987 veröffentlicht.

Gegen Ende der 1990er Jahre hat ein Stoß, um eine Alternative zu den Standardanordnungsprotokollen zur Verfügung zu stellen, angefangen: XML wurde verwendet, um eine menschliche lesbare textbasierte Verschlüsselung zu erzeugen. Solch eine Verschlüsselung kann für beharrliche Gegenstände nützlich sein, die gelesen und von Menschen verstanden, oder anderen Systemen unabhängig von der Programmiersprache mitgeteilt werden können. Es hat den Nachteil, die kompaktere, auf das Byte gegründete Verschlüsselung, aber durch diesen Punkt größere Lagerung und Übertragungskapazitäten gemachte Dateigröße weniger von einer Sorge zu verlieren, als in den frühen Tagen der Computerwissenschaft. Binärer XML ist als ein Kompromiss vorgeschlagen worden, der durch Klartext-Redakteure nicht lesbar ist, aber kompakter ist als regelmäßiger XML. In den 2000er Jahren wird XML häufig für die asynchrone Übertragung von strukturierten Daten zwischen Kunden und Server in Webanwendungen von Ajax verwendet.

JSON ist eine leichtere Klartext-Alternative zu XML, der auch für die Client/Server-Kommunikation in Webanwendungen allgemein verwendet wird. JSON basiert auf der Syntax von JavaScript, aber wird auf anderen Programmiersprachen ebenso unterstützt.

Eine andere Alternative, YAML, ist effektiv eine Obermenge von JSON und schließt Eigenschaften ein, die es stärker für die Anordnung, mehr "Mensch freundlich," und potenziell kompakter machen. Diese Eigenschaften schließen einen Begriff ein, Datentypen, Unterstützung für nichthierarchische Datenstrukturen, die Auswahl zu markieren, Daten mit der Einrückung und vielfache Formen des Skalardatenbezugs zu strukturieren.

Ein anderes menschlich-lesbares Anordnungsformat ist das Eigentumslistenformat, das in NeXTSTEP, GNUstep und Mac OS X Cocoa verwendet ist.

Für das große Volumen wissenschaftlicher datasets, wie Satellitendaten und Produktion des numerischen Klimas, des Wetters oder der Ozeanmodelle, sind spezifische binäre Anordnungsstandards z.B entwickelt worden. HDF, netCDF und der ältere GRIB.

Programmiersprache-Unterstützung

Mehrere objektorientierte Programmiersprachen unterstützen direkt Gegenstand-Anordnung (oder protestieren archivalisch), entweder durch syntaktische Zuckerelemente oder durch Versorgung eines Normanschlusses, um so zu tun.

Einige dieser Programmiersprachen, sind Plausch, Pythonschlange, PHP, Ziel-C, Java und die.NET Sprachfamilie Rubinrot.

Es gibt auch verfügbare Bibliotheken, die Anordnungsunterstützung in Sprachen hinzufügen, die an heimischer Unterstützung dafür Mangel haben.

.NET-Fachwerk

Auf den.NET Sprachen können Klassen in Fortsetzungen veröffentlicht und durch das Hinzufügen des Attributes zur Klasse parallelisiert werden.

Wenn neue Mitglieder zu einer serialisierbaren Klasse hinzugefügt werden, können sie mit dem Attribut markiert werden, um vorherigen Versionen des Gegenstands zu erlauben, ohne Fehler parallelisiert zu werden. Dieses Attribut betrifft nur deserialization, und hält die Durchlaufzeit davon ab, eine Ausnahme zu werfen, wenn ein Mitglied vom in Fortsetzungen veröffentlichten Strom vermisst wird. Ein Mitglied kann auch mit dem Attribut gekennzeichnet werden, um anzuzeigen, dass es nicht in Fortsetzungen veröffentlicht werden sollte. Das wird den Details jener Mitglieder erlauben, heimlich behalten zu werden.

Um den Verzug deserialization (zum Beispiel zu modifizieren, ein Mitglied gekennzeichnet automatisch zu initialisieren), muss die Klasse die Schnittstelle durchführen und die Methode definieren.

Gegenstände können im binären Format für deserialization durch andere.NET Anwendungen in Fortsetzungen veröffentlicht werden. Es gibt auch 3:d binäre Parteiserializers, die dokumentiert, tragbar werden, weniger Speicherfußabdruck und Zentraleinheit verwenden.

Das Fachwerk stellt auch zur Verfügung und protestiert, um Anordnung im menschlich-lesbaren, Quer-Plattform XML zu unterstützen.

Ziel-C

In der GNU-Laufzeitvariante der Objektiven-C Programmiersprache GNUstep wird Anordnung (allgemeiner bekannt als das Archivieren) durch das Überlaufen und Methoden in der Gegenstand-Wurzelklasse erreicht. In der NÄCHST-ARTIGEN Durchlaufzeit, die in durch Kakao in MacOS X verwendet ist, ist die Durchführung sehr ähnlich.

Java

Java stellt automatische Anordnung zur Verfügung, die verlangt, dass der Gegenstand durch das Einführen der Schnittstelle gekennzeichnet wird. Das Einführen der Schnittstelle kennzeichnet die Klasse als "o.k., um in Fortsetzungen zu veröffentlichen," und Java behandelt dann Anordnung innerlich. Es gibt keine auf der Schnittstelle definierten Anordnungsmethoden, aber eine serialisierbare Klasse kann Methoden mit bestimmten speziellen Namen und Unterschriften fakultativ definieren, dass, wenn definiert, als ein Teil des Serialization/deserialization-Prozesses genannt wird. Die Sprache erlaubt auch dem Entwickler, den Anordnungsprozess mehr gründlich durch das Einführen einer anderen Schnittstelle, der Schnittstelle zu überreiten, die zwei spezielle Methoden einschließt, die verwendet werden, um den Staat des Gegenstands zu sparen und wieder herzustellen.

Es gibt drei primäre Gründe, warum Gegenstände standardmäßig nicht serialisierbar sind und die Schnittstelle durchführen müssen, um auf Javas Anordnungsmechanismus zuzugreifen.

  1. Nicht alle Gegenstände gewinnen nützliche Semantik in einem in Fortsetzungen veröffentlichten Staat. Zum Beispiel wird ein Gegenstand an den Staat des aktuellen JVM gebunden. Es gibt keinen Zusammenhang, in dem ein parallelisierter Gegenstand nützliche Semantik aufrechterhalten würde.
  2. Der in Fortsetzungen veröffentlichte Staat eines Gegenstands bildet einen Teil des Vereinbarkeitsvertrags seiner Klasse. Das Aufrechterhalten der Vereinbarkeit zwischen Versionen von serialisierbaren Klassen verlangt zusätzliche Anstrengung und Rücksicht. Deshalb, eine Klasse serialisierbare Bedürfnisse machend, eine absichtliche Designentscheidung und nicht eine Verzug-Bedingung zu sein.
  3. Anordnung erlaubt Zugang nichtvergänglichen privaten Mitgliedern einer Klasse, die nicht sonst zugänglich sind. Klassen, die empfindliche Information (zum Beispiel, ein Kennwort) enthalten, sollten nicht serialisierbar sein noch externalizable.

Die Standardverschlüsselungsmethode verwendet eine einfache Übersetzung der Felder in einen Byte-Strom. Primitive sowie nichtvergängliche, nichtstatische Verweise angebrachte Gegenstände werden in den Strom verschlüsselt. Jeder Gegenstand, in dem durch den in Fortsetzungen veröffentlichten Gegenstand Verweise angebracht und nicht gekennzeichnet wird, wie auch in Fortsetzungen veröffentlicht werden muss; und wenn ein Gegenstand im ganzen Graphen von nichtvergänglichen Gegenstand-Verweisungen nicht serialisierbar ist, dann wird Anordnung scheitern. Der Entwickler kann dieses Verhalten beeinflussen, indem er Gegenstände als vergänglich kennzeichnet, oder indem er die Anordnung für einen Gegenstand wiederdefiniert, so dass ein Teil des Bezugsgraphen gestutzt und nicht in Fortsetzungen veröffentlicht ist.

Es ist möglich, javanische Gegenstände durch JDBC in Fortsetzungen zu veröffentlichen und sie in eine Datenbank zu versorgen.

Während Schwingen-Bestandteile wirklich die Serialisierbare Schnittstelle durchführen, sind sie zwischen verschiedenen Versionen Javas Virtuelle Maschine nicht tragbar. Als solcher kann ein Schwingen-Bestandteil oder jeder Bestandteil, der es erbt, zu einer Reihe von Bytes in Fortsetzungen veröffentlicht werden, aber es wird nicht versichert, dass diese Lagerung auf einer anderen Maschine lesbar sein wird.

ColdFusion

ColdFusion erlaubt Datenstrukturen, zu WDDX mit in Fortsetzungen veröffentlicht zu werden

OCaml

Die Standardbibliothek von OCAML stellt das Aufstellen durch das Modul (seine Dokumentation) und die Funktionen von Pervasives zur Verfügung und. Während OCaml-Programmierung statisch Typ-kariert ist, kann der Gebrauch des Moduls Typ-Garantien brechen, weil es keine Weise gibt zu überprüfen, ob ein unaufgestellter Strom Gegenstände des erwarteten Typs vertritt. In OCaml ist es schwierig, eine Funktion oder eine Datenstruktur aufzustellen, die eine Funktion enthält (z.B ein Gegenstand, der eine Methode enthält), weil der rechtskräftige Code in Funktionen über verschiedene Programme nicht übersandt werden kann. (Es gibt eine Fahne, um die Codeposition einer Funktion aufzustellen, aber sie kann nur in genau demselben Programm unaufgestellt werden.)

Perl

Mehrere Perl von CPAN verfügbare Module stellen Anordnungsmechanismen, einschließlich zur Verfügung und.

Lagerfähig schließt Funktionen ein, Datenstrukturen von Perl zu und von Dateien oder Skalaren von Perl in Fortsetzungen zu veröffentlichen und zu parallelisieren.

Zusätzlich dazu, direkt zu Dateien in Fortsetzungen zu veröffentlichen, schließt die Funktion ein, eine in Fortsetzungen veröffentlichte Kopie der Daten zurückzugeben, die in einen Skalar gepackt sind, und solch einen Skalar zu parallelisieren. Das ist nützlich, für eine komplizierte Datenstruktur über eine Netzsteckdose zu senden oder es in einer Datenbank zu versorgen.

Wenn

es Strukturen damit in Fortsetzungen veröffentlicht, gibt es Netz sichere Funktionen, die immer ihre Daten in einem Format versorgen, das auf jedem Computer an kleinen Kosten der Geschwindigkeit lesbar ist. Diese Funktionen werden usw. genannt. Es gibt keine "N"-Funktionen, um diese Strukturen — der Stammkunde zu parallelisieren, und parallelisiert Strukturen, die mit den "" Funktionen und ihren maschinenspezifischen Entsprechungen in Fortsetzungen veröffentlicht sind.

C und C ++

C und C ++ stellen direkte Unterstützung für die Anordnung nicht zur Verfügung. Es ist jedoch möglich, Ihre eigenen Anordnungsfunktionen seit beider Sprachunterstützung zu schreiben, binäre Daten schreibend. Außerdem sind Bearbeiter-basierte Lösungen, wie der ODB ORM System für C ++, dazu fähig, automatisch Anordnungscode mit wenigen oder keinen Modifizierungen zu erzeugen, um Behauptungen zu klassifizieren. Ein anderes populäres Anordnungsfachwerk ist Zunahme. Anordnung vom Zunahme-Fachwerk.

Pythonschlange

Pythonschlange führt Anordnung durch das Standardbibliotheksmodul, und in einem kleineren Ausmaß, dem älteren durch. bietet wirklich die Fähigkeit an, Pythonschlange-Codegegenstände unterschiedlich in Fortsetzungen zu veröffentlichen. Außerdem bietet Pythonschlange das Modul an, das (weil deutet der Name an), eine C Durchführung des Essiggurke-Moduls ist. Es kann bis zu 1000mal schneller sein als das reine Pythonschlange-Essiggurke-Modul, aber hat einige Beschränkungen. Das Modul basiert auf dem Modul und kann als ein in Fortsetzungen veröffentlichtes Pythonschlange-Wörterbuch betrachtet werden.

Bezüglich der Version 2.6 schließt die Standardbibliothek der Pythonschlange auch Unterstützung für JSON und für XML-verschlüsselte Eigentumslisten ein. (Sieh und beziehungsweise.) Jedoch behandeln diese Module nur grundlegende Typen Python wie Schnuren, ganze Zahlen und Sammlungen von grundlegenden Typen, wohingegen für willkürliche Gegenstände beabsichtigt ist.

PHP

Verfahrensstil

PHP hat ursprünglich Anordnung durch das eingebaute und die Funktionen durchgeführt. PHP kann einigen seiner Datentypen außer Mitteln (Dateizeigestöcke, Steckdosen, usw.) in Fortsetzungen veröffentlichen. Die eingebaute Funktion ist häufig, wenn verwendet, auf völlig unvertrauten Daten gefährlich.

Für Gegenstände gibt es zwei "magische Methoden", die innerhalb einer Klasse durchgeführt werden können — und — die aus und beziehungsweise genannt werden, kann das aufräumen und einen Gegenstand wieder herstellen. Zum Beispiel kann es wünschenswert sein, eine Datenbankverbindung auf der Anordnung zu schließen und die Verbindung auf deserialization wieder herzustellen; diese Funktionalität würde in diesen zwei magischen Methoden behandelt. Sie erlauben auch dem Gegenstand aufzupicken, welche Eigenschaften in Fortsetzungen veröffentlicht werden.

Objektorientierter Stil

Seit PHP 5.1 gibt es einen objektorientierten Anordnungsmechanismus für Gegenstände, die Schnittstelle.

R

R hat die Funktion, die schreibt, dass eine ASCII Textdarstellung eines R gegen eine Datei oder Verbindung protestiert. Eine Darstellung kann von einem Dateiverwenden gelesen werden.

REBOL

REBOL wird zur Datei oder zu in Fortsetzungen veröffentlichen. Schnuren und Dateien können mit der polymorphen Funktion parallelisiert werden.

Rubin

Rubin schließt das Standardmodul mit 2 Methoden und, verwandt mit den Standarddienstprogrammen von Unix ein und. Diese Methoden veröffentlichen zur Standardklasse in Fortsetzungen, d. h. sie werden effektiv eine Folge von Bytes.

Einige Gegenstände können nicht in Fortsetzungen veröffentlicht werden (das Tun würde so eine Ausnahme erheben):

  • bindings,
  • Verfahren-Gegenstände,
  • Beispiele der Klasse IO,
  • Singleton wendet ein

Wenn eine Klasse kundenspezifische Anordnung verlangt (zum Beispiel, verlangt es bestimmte Reinigungshandlungen, die beim Abladen / getan sind wieder herstellend), es kann durch das Einführen von 2 Methoden getan werden: und. Die Beispiel-Methode sollte einen Gegenstand zurückgeben, der die ganze Information enthält, die notwendig ist, um Gegenstände dieser Klasse wieder einzusetzen, und alle Verweise angebrachten Gegenstände bis zu einer maximalen Tiefe, die als ein Parameter der ganzen Zahl gegeben ist (deutet ein Wert von-1 an, dass Tiefe-Überprüfung arbeitsunfähig sein sollte). Die Klassenmethode sollte a nehmen und einen Gegenstand dieser Klasse zurückgeben.

Plausch

Im Allgemeinen können nichtrekursive und sich nichtteilende Gegenstände versorgt und in einer menschlichen lesbaren Form mit / Protokoll wiederbekommen werden. Die Methode erzeugt den Text eines Plausch-Ausdrucks der - wenn bewertet, damit

Quieken-Plausch

Es gibt mehrere Wege im Quieken-Plausch, um Gegenstände in Fortsetzungen zu veröffentlichen und zu versorgen. Das leichteste und am meisten verwendete sind und binäre auf serializers gestützte Lagerungsformate. Außerdem können gestopfte Gegenstände versorgt werden und haben das Verwenden wiederbekommen.

Cincom Plausch und Smalltalk/X

Beide stellen ein so genanntes "Lagerungsfachwerk des binären Gegenstands" zur Verfügung, die Anordnung in und Wiederauffindung von einer binären Kompaktform unterstützen. Beider behandeln zyklische, rekursive und geteilte Strukturen, Lagerung/Wiederauffindung der Klasse und des metaclass Infos und schließen Mechanismen für "im Fluge" die Gegenstand-Wanderung ein (d. h. Beispiele umzuwandeln, die durch eine ältere Version einer Klasse mit einem verschiedenen Gegenstand-Lay-Out geschrieben wurden).

Die APIs sind (storeBinary/readBinary) ähnlich, aber die Verschlüsselungsdetails sind verschieden, diese zwei Formate unvereinbar machend. Jedoch ist der Smalltalk/X-Code offene Quelle und frei und kann in anderen Plausch geladen werden, um Quer-Dialekt-Gegenstand-Austausch zu berücksichtigen.

Andere Plausch-Dialekte

Gegenstand-Anordnung ist nicht ein Teil der ANSI Plausch-Spezifizierung. Infolgedessen ändert sich der Code, um einen Gegenstand in Fortsetzungen zu veröffentlichen, durch die Plausch-Durchführung. Die resultierenden binären Daten ändern sich auch. Zum Beispiel kann ein in Fortsetzungen veröffentlichter im Quieken-Plausch geschaffener Gegenstand nicht im Ambrai Plausch wieder hergestellt werden. Folglich können verschiedene Anwendungen, die wirklich an vielfachen Plausch-Durchführungen arbeiten, die sich auf die Gegenstand-Anordnung verlassen, nicht Daten zwischen diesen verschiedenen Durchführungen teilen. Diese Anwendungen schließen die Gegenstand-Datenbank von MinneStore http://minnestore.sourceforge.net/ und einige RPC Pakete ein. Eine Lösung dieses Problems ist SIXX http://www.mars.dti.ne.jp/~umejava/smalltalk/sixx/index.html, der ein Paket für den vielfachen Plausch ist, das ein XML-basiertes Format für die Anordnung verwendet.

Lispeln

Allgemein kann eine Lispeln-Datenstruktur mit den Funktionen "" und "" in Fortsetzungen veröffentlicht werden. Eine Variable foo, zum Beispiel enthaltend, würde eine Liste der Reihe dadurch gedruckt. Ähnlich kann ein Gegenstand von genanntem s eines Stroms dadurch gelesen werden. Diese zwei Teile der Lispeln-Durchführung werden den Drucker und den Leser genannt. Die Produktion "" ist lesbar menschlich; es verwendet Listen demarked durch Parenthesen zum Beispiel:.

In vielen Typen des Lispelns, einschließlich des Allgemeinen Lispelns, kann der Drucker nicht jeden Typ von Daten vertreten, weil es nicht klar ist, wie man so tut. Im allgemeinen Lispeln zum Beispiel kann der Drucker nicht CLOS-Gegenstände drucken. Stattdessen kann der Programmierer eine Methode über die allgemeine Funktion schreiben, das wird angerufen, wenn der Gegenstand gedruckt wird. Das ist der in Ruby verwendeten Methode etwas ähnlich.

Lispeln-Code selbst wird in der Syntax des Lesers, genannt gelesene Syntax geschrieben. Der grösste Teil des Sprachgebrauches getrennter und verschiedener parsers, um sich mit Code und Daten zu befassen, verwendet Lispeln nur denjenigen. Eine Datei, die Lispeln-Code enthält, kann ins Gedächtnis gelesen werden, weil eine Datenstruktur, die durch ein anderes Programm umgestaltet ist, dann vielleicht durchgeführt hat oder ausgeschrieben. Sieh REPL.

Bemerken Sie, dass nicht alle Leser/Schriftsteller zyklische, rekursive oder geteilte Strukturen unterstützen.

Haskell

In Haskell wird Anordnung für Typen unterstützt, die Mitglieder der Typ-Klassen Read und Show sind.

Jeder Typ, der ein Mitglied der Typ-Klasse ist, definiert eine Funktion, die die Daten aus der Schnur-Darstellung der abgeladenen Daten herausziehen wird. Die Typ-Klasse enthält abwechselnd die Funktion, von der eine Schnur-Darstellung des Gegenstands erzeugt werden kann.

Der Programmierer braucht die Funktionen ausführlich — bloß das Erklären nicht zu definieren, dass ein Typ, um Read abzuleiten oder Show oder beide abzuleiten, den Bearbeiter die passenden Funktionen für viele Fälle kann erzeugen lassen (aber nicht alle: Funktionstypen können zum Beispiel Show oder Read nicht automatisch ableiten).

Zusätzlich gibt es haskell Bibliotheken, die Hochleistungsanordnung im binären Format, z.B binär erlauben.

Windows PowerShell

Windows PowerShell führt Anordnung durch den eingebauten cmdlet. durch, veröffentlicht.NET-Gegenstände in Fortsetzungen und versorgt den resultierenden XML in einer Datei.

Um die Gegenstände wieder einzusetzen, verwenden Sie den cmdlet, der einen parallelisierten Gegenstand vom XML in der exportierten Datei erzeugt. Parallelisierte Gegenstände, die häufig als "Eigentumstaschen" bekannt sind, sind nicht lebende Gegenstände; sie sind Schnellschüsse, die Eigenschaften, aber keine Methoden haben.

Zwei dimensionale Datenstrukturen können auch im CSV-Format in Fortsetzungen veröffentlichter (de) mit dem eingebauten cmdlets sein und.

Siehe auch

  • Der Vergleich der Datenanordnung formatiert
  • Überwintern Sie (Java)
  • Persistor. NETZ
  • XML Diagramm
  • Grundlegende Verschlüsselung herrscht
über

Zeichen

Außenverbindungen

Für Java:

Für C:

Für C ++:

Für PHP:

Anordnungssysteme, die vielfache Sprachen unterstützen:


Die zweite Ankunft / Gewaltentrennung
Impressum & Datenschutz