Beschreibungssprache fürPerl-Datenstrukturen
Beschreibungssprache fürPerl-Datenstrukturen
am 25.07.2007 12:03:33 von Florian Weimer
Welche Konventionen für die Beschreibung von zulässigen
Datenstrukturen von Funktionsargumenten o.ä. gibt es?
Ich würde gerne Dinge wie
Hash-Referenz, Schlüssel "ID" verweist auf einen Skalar, Schlüssel
"Values" auf ein Array von Skalaren, Schlüssel "Time" ist optional
und verweist auf einen Skalar
kompakter und evtl. sogar maschinenlesbar ausdrücken.
Irgendwelche Vorschläge? Vielleicht eine ASN.1-Teilmenge?
Re: Beschreibungssprache für Perl-Datenstrukturen
am 25.07.2007 20:19:31 von Moritz Lenz
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig299FCE8D3EC77EB556A4DA23
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Hallo,
Florian Weimer wrote:
> Welche Konventionen für die Beschreibung von zulässigen
> Datenstrukturen von Funktionsargumenten o.ä. gibt es?
Ueblich sind Beispiele.
> Ich würde gerne Dinge wie
>=20
> Hash-Referenz, Schlüssel "ID" verweist auf einen Skalar, Schlüsse=
l
> "Values" auf ein Array von Skalaren, Schlüssel "Time" ist optional
> und verweist auf einen Skalar
>
> kompakter und evtl. sogar maschinenlesbar ausdrücken.
Wenn du es maschinenlesbar willst, kannst du arrays und Hashes als XML
abbilden und eine DTD dafuer schreiben.
Sonst fehlen mir gerade die Ideen...
Gruesse,
Moritz
--=20
Moritz Lenz
http://perl-6.de/ http://moritz.faui2k3.org/
--------------enig299FCE8D3EC77EB556A4DA23
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFGp5Q4AAkekJBI0yIRAs+3AJ4iqXKokdyUEGgimDqcvCmtIy/8jACe Mgvy
BYJ8ItR7NXrvAw2xhXCNYeo=
=1DKE
-----END PGP SIGNATURE-----
--------------enig299FCE8D3EC77EB556A4DA23--
Re: Beschreibungssprache fürPerl-Datenstrukturen
am 26.07.2007 07:21:43 von Florian Weimer
* Moritz Lenz:
>> Welche Konventionen für die Beschreibung von zulässigen
>> Datenstrukturen von Funktionsargumenten o.ä. gibt es?
>
> Ueblich sind Beispiele.
Ja, aber ich hätte es lieber expliziter.
> Wenn du es maschinenlesbar willst, kannst du arrays und Hashes als XML
> abbilden und eine DTD dafuer schreiben.
Ein DTD enthält typischerweise nicht genügend Information, um damit
etwas Vernünftiges anzufangen (z.B. fehlen für die Parser-Erzeugung
i.a. griffige Namen für einzelne Elemente). Bestimmte DTDs wären
sicherlich eine Möglichkeit, aber *so* verbreitet sind diese
Kenntnisse auch wieder nicht, daß der Wiedererkennungseffekt die
Komplexität wettmacht, fürchte ich.
Re: Beschreibungssprache fürPerl-Datenstrukturen
am 26.07.2007 10:48:41 von Till Potinius
On Thu, 26 Jul 2007 07:21:43 +0200, Florian Weimer wrote:
> Ein DTD enthält typischerweise nicht genügend Information, um damit
> etwas Vernünftiges anzufangen (z.B. fehlen für die Parser-Erzeugung
> i.a. griffige Namen für einzelne Elemente). Bestimmte DTDs wären
> sicherlich eine Möglichkeit, aber *so* verbreitet sind diese
> Kenntnisse auch wieder nicht, daß der Wiedererkennungseffekt die
> Komplexität wettmacht, fürchte ich.
Was ist denn dein genaues Ziel? Willst du bloss einen gut dokumentierten
Quellcode, willst du irgend etwas, was maschinenlesbar ist, so das du eine
Dokumentation im Stil von Javadoc erstellen kannst oder was genau?
Und was spricht gegen:
Funktionsname (%beispielhash = (
'ID' => $beispielskalar
'Values' => @beispielarray =
($skalar_a, $skalar_b, $skalar_c)
['time' => $noch_ein_skalar]
))
Falls du selbst erstellte Datentypen als Referenz übergeben willst,
kannst du halt entweder den Typen detailliert auflisten oder du gibst nur
den Namen an und der Datentyp ist woanders definiert.
Obiges Beispiel sollte für einen Menschen gut lesbar sein und auch
relativ einfach maschinell verarbeitbar.
Grüße, Till
--
"Computer gehorchen deinen Befehlen, nicht deinen Absichten."
- Quelle unbekannt