15 resultados para DSL, JavaCC, ANTLR, Xtext grammatica

em AMS Tesi di Laurea - Alm@DL - Università di Bologna


Relevância:

100.00% 100.00%

Publicador:

Resumo:

La tesi ha lo scopo di indagare le tecnologie disponibili per la realizzazione di linguaggi di programmazione e linguaggi domain specific in ambiente Java. In particolare, vengono proposti e analizzati tre strumenti presenti sul mercato: JavaCC, ANTLR e Xtext. Al termine dell’elaborato, il lettore dovrebbe avere un’idea generale dei principali meccanismi e sistemi utilizzati (come lexer, parser, AST, parse trees, etc.), oltre che del funzionamento dei tre tools presentati. Inoltre, si vogliono individuare vantaggi e svantaggi di ciascuno strumento attraverso un’analisi delle funzionalità offerte, così da fornire un giudizio critico per la scelta e la valutazione dei sistemi da utilizzare.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

La tesi ha lo scopo di esplorare la produzione di sistemi software per Embedded Systems mediante l'utilizzo di tecniche relative al mondo del Model Driven Software Development. La fase più importante dello sviluppo sarà la definizione di un Meta-Modello che caratterizza i concetti fondamentali relativi agli embedded systems. Tale modello cercherà di astrarre dalla particolare piattaforma utilizzata ed individuare quali astrazioni caratterizzano il mondo degli embedded systems in generale. Tale meta-modello sarà quindi di tipo platform-independent. Per la generazione automatica di codice è stata adottata una piattaforma di riferimento, cioè Arduino. Arduino è un sistema embedded che si sta sempre più affermando perché coniuga un buon livello di performance ed un prezzo relativamente basso. Tale piattaforma permette lo sviluppo di sistemi special purpose che utilizzano sensori ed attuatori di vario genere, facilmente connessi ai pin messi a disposizione. Il meta-modello definito è un'istanza del meta-metamodello MOF, definito formalmente dall'organizzazione OMG. Questo permette allo sviluppatore di pensare ad un sistema sotto forma di modello, istanza del meta-modello definito. Un meta-modello può essere considerato anche come la sintassi astratta di un linguaggio, quindi può essere definito da un insieme di regole EBNF. La tecnologia utilizzata per la definizione del meta-modello è stata Xtext: un framework che permette la scrittura di regole EBNF e che genera automaticamente il modello Ecore associato al meta-modello definito. Ecore è l'implementazione di EMOF in ambiente Eclipse. Xtext genera inoltre dei plugin che permettono di avere un editor guidato dalla sintassi, definita nel meta-modello. La generazione automatica di codice è stata realizzata usando il linguaggio Xtend2. Tale linguaggio permette di esplorare l'Abstract Syntax Tree generato dalla traduzione del modello in Ecore e di generare tutti i file di codice necessari. Il codice generato fornisce praticamente tutta la schematic part dell'applicazione, mentre lascia all'application designer lo sviluppo della business logic. Dopo la definizione del meta-modello di un sistema embedded, il livello di astrazione è stato spostato più in alto, andando verso la definizione della parte di meta-modello relativa all'interazione di un sistema embedded con altri sistemi. Ci si è quindi spostati verso un ottica di Sistema, inteso come insieme di sistemi concentrati che interagiscono. Tale difinizione viene fatta dal punto di vista del sistema concentrato di cui si sta definendo il modello. Nella tesi viene inoltre introdotto un caso di studio che, anche se abbastanza semplice, fornisce un esempio ed un tutorial allo sviluppo di applicazioni mediante l'uso del meta-modello. Ci permette inoltre di notare come il compito dell'application designer diventi piuttosto semplice ed immediato, sempre se basato su una buona analisi del problema. I risultati ottenuti sono stati di buona qualità ed il meta-modello viene tradotto in codice che funziona correttamente.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Creazione di un nuovo linguaggio con relativo interprete e, per osservare il comportamento del sistema, un semplice Previewer in grado di: - caricare una pagina XAML di un form e svariate risorse - farle processare dall'interprete seguendo la grammatica descritta dal nuovo linguaggio creato con ANTLR - cablare la visualizzazione dei componenti della pagina a seconda dei risultati ottenuti, il tutto in ambiente .NET

Relevância:

20.00% 20.00%

Publicador:

Resumo:

La tesi parla del processo di modernizzazione di un software aziendale verso tecnologie web. Il trattato prosegue poi con lo studio di automatizzazione del processo, tramite strumenti di descrizione grammatiche (e DSL) come Xtext.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Nello sviluppo di sistemi informatici si sono affermate numerose tecnologie, che vanno utilizzate in modo combinato e, possibilmente sinergico. Da una parte, i sistemi di gestione di basi di dati relazionali consentono una gestione efficiente ed efficace di dati persistenti, condivisi e transazionali. Dall'altra, gli strumenti e i metodi orientati agli oggetti (linguaggi di programmazione, ma anche metodologie di analisi e progettazione) consentono uno sviluppo efficace della logica applicativa delle applicazioni. E’ utile in questo contesto spiegare che cosa s'intende per sistema informativo e sistema informatico. Sistema informativo: L'insieme di persone, risorse tecnologiche, procedure aziendali il cui compito è quello di produrre e conservare le informazioni che servono per operare nell'impresa e gestirla. Sistema informatico: L'insieme degli strumenti informatici utilizzati per il trattamento automatico delle informazioni, al fine di agevolare le funzioni del sistema informativo. Ovvero, il sistema informatico raccoglie, elabora, archivia, scambia informazione mediante l'uso delle tecnologie proprie dell'Informazione e della Comunicazione (ICT): calcolatori, periferiche, mezzi di comunicazione, programmi. Il sistema informatico è quindi un componente del sistema informativo. Le informazioni ottenute dall'elaborazione dei dati devono essere salvate da qualche parte, in modo tale da durare nel tempo dopo l'elaborazione. Per realizzare questo scopo viene in aiuto l'informatica. I dati sono materiale informativo grezzo, non (ancora) elaborato da chi lo riceve, e possono essere scoperti, ricercati, raccolti e prodotti. Sono la materia prima che abbiamo a disposizione o produciamo per costruire i nostri processi comunicativi. L'insieme dei dati è il tesoro di un'azienda e ne rappresenta la storia evolutiva. All'inizio di questa introduzione è stato accennato che nello sviluppo dei sistemi informatici si sono affermate diverse tecnologie e che, in particolare, l'uso di sistemi di gestione di basi di dati relazionali comporta una gestione efficace ed efficiente di dati persistenti. Per persistenza di dati in informatica si intende la caratteristica dei dati di sopravvivere all'esecuzione del programma che li ha creati. Se non fosse cosi, i dati verrebbero salvati solo in memoria RAM e sarebbero persi allo spegnimento del computer. Nella programmazione informatica, per persistenza si intende la possibilità di far sopravvivere strutture dati all'esecuzione di un programma singolo. Occorre il salvataggio in un dispositivo di memorizzazione non volatile, come per esempio su un file system o su un database. In questa tesi si è sviluppato un sistema che è in grado di gestire una base di dati gerarchica o relazionale consentendo l'importazione di dati descritti da una grammatica DTD. Nel capitolo 1 si vedranno più in dettaglio cosa di intende per Sistema Informativo, modello client-server e sicurezza dei dati. Nel capitolo 2 parleremo del linguaggio di programmazione Java, dei database e dei file XML. Nel capitolo 3 descriveremo un linguaggio di analisi e modellazione UML con esplicito riferimento al progetto sviluppato. Nel capitolo 4 descriveremo il progetto che è stato implementato e le tecnologie e tools utilizzati.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

In questa tesi parlo del fenomeno del complemento oggetto preposizionale. Nel primo capitolo definirò e descriverò il fenomeno grazie alle posizioni assunte da molti grammatici e linguisti nei loro studi; riporterò le varie ipotesi sorte nel campo della linguistica circa l’origine del fenomeno e come si giunge all’uso della preposizione “a” per tale marcatura; evidenzierò, infine, i vari approcci da parte dei linguisti di fronte al fenomeno in spagnolo, italiano e nelle sue varianti in diatopia. Nel secondo capitolo, focalizzerò l’attenzione sull’aspetto normativo esposto nelle grammatiche riguardo un uso corretto della marca riportando le casistiche d’uso in spagnolo, in italiano, e descrivendo come e dove alcuni linguisti rintracciano il fenomeno tra le varianti dialettali e di italiano regionale. Nel terzo e ultimo capitolo, riporto i dati di una indagine condotta tra parlanti di due fasce d’età distinte (studenti e over 30) a Granada, per quanto concerne lo spagnolo, e Montemesola (piccolo paese della provincia di Taranto), per una verifica dell’uso della marca preposizionale in italiano e dialetto. Cercherò di evidenziare: quanto e in che modo i parlanti siano consapevoli delle loro scelte linguistiche analizzando, non solo statisticamente la frequenza d’uso della “a”, confrontandola tra le fasce d’età, ma considerando anche, di volta in volta, le motivazioni date dai parlanti nell’effettuare le loro scelte. La grammatica non è il perno centrale delle considerazioni del parlante nel momento in cui sceglie dei ricorsi linguistici piuttosto che altri, ma esistono altri criteri nella scelta altrettanto rilevanti, quali fattori soprasegmentali, contesto linguistico ed extralinguistico, e conoscenza enciclopedica del mondo, che intervengono anche a giustificazione dell’assenza della preposizione, rendendola significativa.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Magic Carpet, nato come un middleware orientato a una dimostrazione sullo spatial computing, che inizialmente coinvolgeva solo smart devices ed un tappeto di tag NFC, è il punto di partenza per uno studio sulle tecnologie abilitanti in tale campo. Il prodotto finale è una toolchain per lo sviluppo e la distribuzione, su dispositivi connessi, di applicazioni di spatial computing. Essa comprende un interprete per un DSL basato su un core calculus formalizzato, Field Calculus, e un middleware che supporta l'astrazione curando, a basso livello, le comunicazioni con il vicinato e le percezioni ambientali.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Questo elaborato consiste in una proposta di traduzione e un commento relativo alle scelte traduttive adottate di due estratti dal libro Der Dativ ist dem Genitiv sein Tod. Temi principali del libro sono la lingua tedesca, la sua grammatica e l'uso più o meno sbagliato che ne viene fatto. Entrambi gli argomenti vengono trattati dall'autore con ironia e semplicità e la proposta di traduzione si ripropone di mantenere lo stile pieno di sfumature che caratterizza i testi di Bastian Sick.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Dopo una breve scheda bio-bibliografica su Niffarī, la ricerca si sviluppa in quattro capitoli: il primo esplora i primi secoli detti di ‘formazione’ del misticismo musulmano in una prospettiva storico speculativa e storico linguistica fino alla fine del decimo secolo e alle soglie dell’undicesimo, attraverso i mistici più significativi che elaborano una grammatica e un linguaggio tecnico che esprime l’esperienza mistica – indispensabili per cogliere la statura e l’originalità del mistico in oggetto. Nel capitolo successivo, si delineano i tratti del pensiero di Niffarī attraverso i suoi scritti, con attenzione all’aspetto speculativo, e confronti con testi di altri sufi contemporanei o precedenti. Il terzo capitolo affronta Niffarī sotto l’aspetto poetico, cioè dell’espressione, dell’innovazione e della modernità rispetto al suo tempo e al nostro, in analogia con un ambito artistico. Infine l’ultimo capitolo propone una prima versione italiana dall’arabo, di un breve trattato di Niffarī sull’Amore.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

La programmazione aggregata è un paradigma che supporta la programmazione di sistemi di dispositivi, adattativi ed eventualmente a larga scala, nel loro insieme -- come aggregati. L'approccio prevalente in questo contesto è basato sul field calculus, un calcolo formale che consente di definire programmi aggregati attraverso la composizione funzionale di campi computazionali, creando i presupposti per la specifica di pattern di auto-organizzazione robusti. La programmazione aggregata è attualmente supportata, in modo più o meno parziale e principalmente per la simulazione, da DSL dedicati (cf., Protelis), ma non esistono framework per linguaggi mainstream finalizzati allo sviluppo di applicazioni. Eppure, un simile supporto sarebbe auspicabile per ridurre tempi e sforzi d'adozione e per semplificare l'accesso al paradigma nella costruzione di sistemi reali, nonché per favorire la ricerca stessa nel campo. Il presente lavoro consiste nello sviluppo, a partire da un prototipo della semantica operazionale del field calculus, di un framework per la programmazione aggregata in Scala. La scelta di Scala come linguaggio host nasce da motivi tecnici e pratici. Scala è un linguaggio moderno, interoperabile con Java, che ben integra i paradigmi ad oggetti e funzionale, ha un sistema di tipi espressivo, e fornisce funzionalità avanzate per lo sviluppo di librerie e DSL. Inoltre, la possibilità di appoggiarsi, su Scala, ad un framework ad attori solido come Akka, costituisce un altro fattore trainante, data la necessità di colmare l'abstraction gap inerente allo sviluppo di un middleware distribuito. Nell'elaborato di tesi si presenta un framework che raggiunge il triplice obiettivo: la costruzione di una libreria Scala che realizza la semantica del field calculus in modo corretto e completo, la realizzazione di una piattaforma distribuita Akka-based su cui sviluppare applicazioni, e l'esposizione di un'API generale e flessibile in grado di supportare diversi scenari.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Scopo di questo elaborato di tesi è la modellazione e l’implementazione di una estensione del simulatore Alchemist, denominata Biochemistry, che permetta di simulare un ambiente multi-cellulare. Al fine di simulare il maggior numero possibile di processi biologici, il simulatore dovrà consentire di modellare l’eterogeneità cellulare attraverso la modellazione di diversi aspetti dei sistemi cellulari, quali: reazioni intracellulari, segnalazione tra cellule adiacenti, giunzioni cellulari e movimento. Dovrà, inoltre, essere ammissibile anche l’esecuzione di azioni impossibili nel mondo reale, come la distruzione o la creazione dal nulla di molecole chimiche. In maniera più specifica si sono modellati ed implementati i seguenti processi biochimici: creazione e distruzione di molecole chimiche, reazioni biochimiche intracellulari, scambio di molecole tra cellule adiacenti, creazione e distruzione di giunzioni cellulari. È stata dunque posta particolare enfasi nella modellazione delle reazioni tra cellule vicine, il cui meccanismo è simile a quello usato nella segnalazione cellulare. Ogni parte del sistema è stata modellata seguendo fenomeni realmente presenti nei sistemi multi-cellulari, e documentati in letteratura. Per la specifica delle reazioni chimiche, date in ingresso alla simulazione, è stata necessaria l’implementazione di un Domain Specific Language (DSL) che consente la scrittura di reazioni in modo simile al linguaggio naturale, consentendo l’uso del simulatore anche a persone senza particolari conoscenze di biologia. La correttezza del progetto è stata validata tramite test compiuti con dati presenti in letteratura e inerenti a processi biologici noti e ampiamente studiati.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Blazor è un innovativo framework di Microsoft per lo sviluppo di applicazioni web in C#, HTML e CSS. Questo framework non possiede un designer visuale, ovvero un supporto grafico "drag-and-drop" alla creazione delle web applications. Questa tesi affronta la progettazione e la prototipazione di "Blazor Designer", un DSL (Domain-Specific Language) grafico a supporto dello sviluppo applicazioni web a pagina singola (SPA) sviluppato in collaborazione con IPREL Progetti srl, società del gruppo SACMI. Nella tesi si fa una analisi delle tecnologie messe a disposizione da Blazor, compreso WebAssembly, si discutono le caratteristiche e i vantaggi dei DSL, si descrive la progettazione e l'implementazione di "Blazor Designer" come estensione di Visual Studio. La conclusione riassume i risultati raggiunti, i limiti e le opportunità future: un DSL è effettivamente in grado di rendere più user-friendly e semplice lo sviluppo, ma lo strumento deve essere integrato per essere sfruttato pienamente.