linguaggi di programmazione basati su xml

8

Stavo guardando wikipedia - Categoria: linguaggi di programmazione basati su XML .

Perché qualcuno dovrebbe adottare questo approccio per progettare una lingua?
Quali sono i vantaggi di questo?

Posso solo pensare agli svantaggi.

  • difficile da mantenere
  • difficile da leggere
  • difficile da scrivere
posta Mhd.Tahawi 03.10.2013 - 22:08
fonte

6 risposte

4

uno dei maggiori vantaggi di un linguaggio basato su XML è che sembra facile da implementare

no, ci sono tonnellate di parser di convalida disponibili che diagnosticano gli errori di compilazione relativi alla sintassi e darti AST gratuitamente

l'esecuzione sta anche semplicemente iterando su detto AST e mantenendo una mappa delle funzioni e delle variabili

    
risposta data 04.10.2013 - 02:08
fonte
10

Il codice è dati.

O meglio, i programmi sono dati. Un file sorgente è solo una serializzazione specifica di questo programma. Questa idea è ad es. comune in lingue omoiconiche come Lisp. Tale linguaggio abbatte le barriere tra il codice del programma e i dati su cui sta operando. Questo può essere estremamente potente ed espressivo, anche se non definirei l'aspetto del codice Lisp "bello" o "facile da leggere".

XML è il formato di serializzazione dei dati strutturati per il programmatore aziendale attuale. Esistono grandi toolchain basati sull'elaborazione XML.

  • La definizione di un linguaggio destinato a operare su XML in XML può essere interessante a causa di questa omonimia. Un esempio è XSLT. In teoria, questo consente la metaprogrammazione, ma nessuna persona sana di mente farebbe questo, giusto?
  • Le lingue dei template sono interessate ad avere una piccola separazione tra dati e codice. L'utilizzo di un documento XML come modello / programma è interessante quando l'output è XML o HTML.
  • Memorizzare il codice di un linguaggio generico in XML può essere comunque interessante. La memorizzazione di un Abstract Syntax Tree serializzato su XML invece del codice sorgente è fattibile quando questo codice viene manipolato tramite un IDE, dove viene presentato in un formato più leggibile, ad es. per programmazione visiva . Questo non è diverso dagli ambienti Smalltalk, dove il "codice sorgente" è solo una rappresentazione dell'immagine di bytecode reale.

È interessante notare che i documenti XML sono talvolta utilizzati per il code ... * di timbratura     

risposta data 03.10.2013 - 23:03
fonte
2

Mi concentrerò su XSLT piuttosto che su linguaggi basati su XML in generale.

C'è una storia qui, ovviamente. XSLT è stato concepito come un successore di DSSSL, il linguaggio per lo stile di SGML, e ha cercato di ottenere ciò che DSSSL aveva sbagliato. Uno dei maggiori problemi con DSSSL era percepito come sintassi (Scheme-like), e c'era la sensazione diffusa che la soluzione consistesse nell'usare la stessa sintassi per il foglio di stile e i dati; dopotutto, l'idea era che un foglio di stile dovesse consistere in gran parte di dati strutturati piuttosto che in logica di programma, e molti di quei dati consisterebbero in dati proforma ("template") da aggiungere alla struttura dei risultati, con qualche parametrizzazione.

XSLT è spesso percepito come eccessivamente prolisso. Per XSLT 1.0, che molte persone purtroppo usano ancora, probabilmente è vero, ma il problema è stato ampiamente risolto con XSLT 2.0, che è spesso molto più conciso di altri modi per risolvere lo stesso problema.

Ci sono certamente degli svantaggi. Sei molto ben obbligato a utilizzare un editor appositamente progettato (ma poi, la maggior parte dei programmatori usa editor diretti alla sintassi per ogni lingua, vero?). Il linguaggio non è abbastanza componibile come potrebbe essere (anche se, ancora una volta, XSLT 2.0 risolve ampiamente quello). Ma ci sono anche vantaggi significativi:

  1. XSLT è ampiamente utilizzato dai non programmatori, e per loro è molto più che solo imparare una sintassi, non due. Ricorda, sono tutti i piccoli dettagli come gestire la codifica dei caratteri e l'escaping di caratteri speciali.

  2. La capacità di elaborare il codice XSLT utilizzando XSLT è molto più utile di quanto tu possa immaginare. Quasi tutti i grandi progetti XSLT sfruttano questa capacità e possono portare grandi benefici. Ad esempio, ho visto un sistema bancario online con un paio di centinaia di moduli nella sua interfaccia utente, ciascuno generato dal proprio foglio di stile, ma i fogli di stile sono stati generati da una libreria comune di codice che offre un grande riutilizzo e coerenza di aspetto.

  3. C'è un vantaggio che non mi sarei mai aspettato, ovvero che l'uso di una struttura sintattica vincolata come XML costringe i progettisti di linguaggi a mantenere un livello di coerenza lessicale man mano che il linguaggio evolve e allo stesso tempo fornisce grande estensibilità. Il WG XQuery sta sempre discutendo su come estendere la lingua senza rompere la compatibilità o introdurre stranezze; XSLT non ha problemi di questo tipo, perché fondamentalmente si tratta di definire nuovi elementi e attributi.

risposta data 04.10.2013 - 01:15
fonte
0

Potrei vedere qualcosa di simile a portata di mano in un ambiente pesante per XML (pensa XSLT), dove presumibilmente hai già degli editor XML decenti e potrebbe essere utile essere in grado di generare codice usando lo stesso set di strumenti. Potrebbe anche rendere più semplice scrivere verificatori di correttezza o altri strumenti per garantire che il codice segua determinati standard o regole (ad esempio, uno schema definisce dove deve andare la logica aziendale e / o assicura che tutte le variabili siano inizializzate in modo coerente ).

    
risposta data 03.10.2013 - 23:01
fonte
0

XSLT è l'unico linguaggio di programmazione XML che ho usato, non ho avuto la possibilità / opportunità di entrare negli altri.

abbiamo una Applicazione principale che gira un file XML in un Database, e molte altre Applicazioni possono prendere quel file e applicare un file XSLT ad esso per estrarre i dati necessari a quelle altre applicazioni, questo allevia la necessità di esportare un nuovo set di dati per ogni nuova applicazione che arriva. Penso che sia un vantaggio importante. devi solo codificare un file XSLT per la nuova applicazione per decodificare le informazioni che sono già state prodotte piuttosto che dover produrre nuove informazioni per una nuova applicazione.

Mi rendo conto di non aver toccato nessuna delle altre lingue che hai elencato, ma ti ho dato un'idea di un buon posto per l'uso di un tale linguaggio. Non sono ancora sicuro se ho risposto completamente o anche parzialmente risposto alla tua domanda. ma spero di aver dato qualche informazione.

    
risposta data 03.10.2013 - 23:18
fonte
-3

XML non ha quasi alcun senso in assenza di contesto storico e politico. SGML era ancora più difficile da scrivere, leggere e mantenere, ma aveva il timbro di approvazione ISO messo su nel 1986 che ha reso forse la prima lingua di dichiarazione dei dati ad avere un tale imprimatur.

È stato sufficientemente utile e documentato per ispirare Tim Berners-Lee a usarlo come fondamento dell'HTML nei primi anni '90. Ricorda, intendeva creare un web in tutto il mondo e basarlo su uno standard ISO esistente sarebbe stato di ulteriore aiuto.

Poi, alla fine degli anni '90, con il web abbastanza ben radicato, il World Wide Web Consortium ha avviato un'iniziativa per il markup strutturale standard per lo scambio di dati. Il fattore di eccitazione che circondava l'XML ha raggiunto livelli senza precedenti di "non siamo sicuri di cosa fare con questo, ma scommetto che sarà davvero fantastico".

Allo stato attuale, l'XML per lo più è l'interscambio di dati strutturati tra sistemi diversi. Come ha notato Amon, ci sono alcuni domini specifici in cui ha una più ampia utilità. Sono contento che ora sia possibile codificare graffiti in un markup standardizzato in modo che in futuro i bambini non debbano rischia la vita e l'accusa ma invece si limita a etichettarli con i droni telecomandati.

    
risposta data 03.10.2013 - 23:27
fonte

Leggi altre domande sui tag