(toiminnot)

hwechtla-tl: YAML

Kierre.png

Mikä on WikiWiki?
nettipäiväkirja
koko wiki (etsi)
viime muutokset


http://yaml.org/

YAML on merkintäkieli tietorakenteiden kuvaamiseen kieliriippumattomasti. Se on helposti luettavaa, helposti kirjoitettavaa, monipuolista ja kuvattavissa kohdekielen _omiksi_ tietotyypeiksi (toisin kuin XML, joka muunnetaan kielessä kuin kielessä tagatuiksi puurakenteiksi). YAML on siis tietorakenteille suunnilleen sama kuin strukturoitu teksti dokumenteille. (Itse asiassa näiden kahden ero on hiuksenhieno ja varsin mielenkiintoinen.)

YAML näyttää olevan erityisesti Ruby-ohjelmoijien käytössä, mutta siitä on säälliset toteutukset ainakin Perlille, Pythonille, PHP:lle, Rubylle ja (mahdollisesti) javascriptille ja Javalle. Ilmeisesti Syck, joka pyrkii tukemaan mahdollisimman monta kieltä (olemalla kirjoitettu C:llä ja tekemällä erikseen bindingeja muihin kieliin), on myös ainakin jossain vaiheessa tukenut Ocamlia. Olisi mielenkiintoista tietää, miten summatyyppejä on tuettu (jos mitenkään).

Muutamia tietotyyppejä YAML:lla:

lista (jono, vektori, taulukko, yhdistelmä- t. tulotyyppi)

- eka
- toka

kuvaus (sanakirja, hajautus, hakupuu)

avain: arvo
avain2: arvo2

järjestetty kuvaus (assoc list, parilista)

- avain: eka
- avain2: toka

joukko

? arvo1
? arvo2

summatyyppi (distinct union, tagattu tyyppi, muodostin)

nollapaikkainen:
  ?tagi0
(tai) nollapaikkainen:
  tagi0: ~
yksipaikkainen:
  tagi1: arvo
n-paikkainen:
  tagi3:
  - arvo1
  - arvo2
  - arvo3

olio (ns. "elävä" tietotyyppi)

!tyyppi
- rajapinta osa 1
- rajapinta osa 2

merkkijono tms. rakenteeton literaali

blaa blaa blaa (on meillä
asiaa (jos on)) jne

puu

- - - vasen-vasen-vasen
    - vasen-vasen-oikea
  - vasen-oikea
- - oikea-vasen
  - oikea-oikea

tagattu puu

summa:
- tulo:
  - vakio: 3
  - muuttuja: x
- muuttuja: y

syklinen l. kierteinen rakenne

&n136
- *n136

nil ("ei mitään")

~

En ole muuten näitä paljon muualla esiteltyinä nähnytkään. Suurin osa YAML-selityksistä on omistettu sen opettamiseen ohjelmoijille, joille jokin kieli on tuttu; tällöin tietysti näytetään vain, miltä kyseisen ohjelmointikielen tietorakenteet näyttävät YAML:lla... eikä suurin osa nykyohjelmoijista ole varmaan kuullutkaan, että kaikki tietotyypit voidaan rakentaa nollapaikkaisista muodostimista, summatyypeistä ja tulotyypeistä.

kategoria: työkalut

UEJimmie: ÿþ<


kommentoi (viimeksi muutettu 29.08.2020 03:30)