XML Deklarativ Programmering

av Roger L. Costello

Regelbaserad Deklarativ Programmering

I Essential XML (kapitel 5.1, s. 87) säger Aaron Skonnard och Martin Gudgin att användning av XSLT-mallregler är deklarativ programmering:

     XSLT erbjuder en kraftfull och flexibel deklarativ programmeringsmodell (liknande den för Prolog, Lisp och Scheme). Den deklarativa modellen baseras på att associera mallar med mönster (eller regler) i förhållande till inmatningsdokumentet.

Regelprogrammering är deklarativ programmering.

XSLT är ett regelbaserat deklarativt programmeringsspråk.

Begränsningsbaserad Deklarativ Programmering

En vanlig programmeringsuppgift är att bestämma: uppfyller dessa data dessa begränsningar. Har till exempel en bok en författare och ett ISBN?

XML-schema, RELAX NG och Schematron är XML-språk för att uttrycka begränsningar. Var och en av dem beskriver begränsningarna; de föreskriver inte hur applikationer ska behandla begränsningarna.

Begränsningsprogrammering är deklarativ programmering.

XML-schema, RELAX NG och Schematron är begränsningsbaserade deklarativa programmeringsspråk.

Begränsningar är Regler


Med XML-schema, RELAX NG och Schematron definierar du regler. Dessa regler uttrycker begränsningar för strukturen för XML-dokument och begränsningar för uppgifterna.

Begränsningsprogrammering är en typ av regelprogrammering.

XHTML Deklarativ Programmering

XHTML är ett deklarativt programmeringsspråk. Ett XHTML-dokument beskriver strukturen för data; det föreskriver inte hur webbläsare (eller någon användaragent) ska bearbeta eller visa det. Ditto för SVG.

Funktionell Deklarativ Programmering (Definitionsbaserad)

XSLT 2.0 låter dig skapa funktioner. När funktioner uttrycks som definitioner gör du deklarativ programmering. Tänk till exempel uppgiften att beräkna området för en rektangel. Om du skriver en funktion vars syfte är att definiera vad ett område är (Area = Höjd * Bredd), gör du deklarativ programmering. Om du skriver en funktion vars syfte är att beräkna området (tilldela variabeln, Area, resultatet av att multiplicera Höjd med bredd), gör du absolut nödvändig programmering. I det här exemplet är skillnaden subtil, men för mer komplexa uppgifter kan hur funktioner uttrycks variera dramatiskt beroende på om du har ett deklarativt tänkesätt eller en tvingande tänkesätt. Med deklarativ programmering är tankesättet att skapa funktioner som definierar saker. Jag hänvisar till detta som definitionsbaserad funktionell programmering.

Definitionsbaserad funktionell programmering är deklarativ programmering.

XSLT är ett definitionsbaserat funktionellt deklarativt programmeringsspråk.


Leave a Reply

Your email address will not be published. Required fields are marked *