Thursday

Eli

Eli: Translator Construction Made Easy

 Manuali Esempi Scaricare

I metodi e le tecniche di costruzione del compilatore forniscono una tecnologia abilitante per generare software dalle specifiche. Sono applicabili a una serie di problemi molto più ampia rispetto allo sviluppo di compilatori per i linguaggi di programmazione: i processori per le lingue di input, i linguaggi di progettazione, i linguaggi di specifica e le lingue intermedie nei programmi applicativi richiedono soluzioni ai problemi di traduzione.

Abbiamo combinato una serie di strumenti standard che implementano potenti strategie di costruzione del compilatore in un ambiente di programmazione specifico per il dominio chiamato Eli. Utilizzando questo ambiente, è possibile generare automaticamente implementazioni linguistiche complete da specifiche orientate all'applicazione. Le implementazioni potrebbero essere interpretative, utilizzare i costrutti della lingua di origine per richiamare le operazioni di un sistema esistente o implicare la traduzione in una lingua target arbitraria.

Eli offre ai moderni impianti di compilazione di compilatori utenti con una vasta gamma di sofisticazione. Offre soluzioni complete per sottotask di implementazione linguaggio comunemente riscontrate e contiene librerie di specifiche riutilizzabili, rendendo possibile la produzione di implementazioni di alta qualità da semplici descrizioni dei problemi.

Il sistema è presente sul campo dal 1989 ed è stato utilizzato in numerosi progetti in tutto il mondo. Genera programmi le cui prestazioni sono paragonabili a quelle di una buona implementazione codificata a mano. Il tempo di sviluppo per un processore che utilizza Eli è in genere circa un terzo di quello per il codice mano comparabile e la manutenzione è significativamente più semplice perché vengono mantenute le specifiche piuttosto che le implementazioni.

Aree di applicazione

Eli è stato ed è utilizzato con successo in una serie di settori per produrre traduttori, generatori di programmi, analizzatori e interpreti. Ecco una piccola selezione di applicazioni di cui abbiamo sentito parlare:

Compilatori di linguaggio di programmazione per

  • Codice macchina da ANSI C a SPARC
  • Pascal to Pcode
  • Pascal a C
  • Molte lingue definite dall'utente

Processori speciali che traducono

  • Notazione musicale ai punteggi PostScript
  • Dati statistici per tabelle TeX o istogrammi

Generatori di programmi che producono

  • Programmi di simulazione C da descrizioni di sistemi meccanici
  • Chiama le chiamate di lingua da una descrizione del database
  • Modelli ad elementi finiti da descrizioni di solidi

Interpreti che

  • Fai animazione dalle descrizioni della grafica
  • Valuta in modo interattivo le tabelle delle decisioni

Analizzatori a

  • Imporre lo stile di programmazione
  • Convalida in modo interattivo i comandi per il controllo satellitare
  • Statistiche di calcolo e presenti
Vantaggi di Eli

Eli è un sistema liberamente disponibile che presenta molti vantaggi rispetto ai set di strumenti convenzionali per la costruzione del compilatore.

Orientato ai problemi anziché orientato agli strumenti:

L'utente descrive il problema che deve essere risolto. Eli impiega automaticamente gli strumenti e i componenti necessari per quel particolare problema. Per questo motivo, è possibile migliorare strumenti e componenti senza invalidare le specifiche.

Ampio spettro di compiti e soluzioni:

Eli offre soluzioni per la maggior parte delle attività che devono essere eseguite per implementare una lingua. Si va dall'analisi strutturale (risolta con strumenti analoghi a LEX e YACC) attraverso l'analisi di nomi, tipi e valori, alla memorizzazione delle strutture di dati di traduzione e alla produzione del testo di destinazione. Esiste anche una specifica dichiarativa per la parametrizzazione della riga di comando dei programmi generati.

Sono richieste poche conoscenze preliminari:

Una conoscenza di base delle lingue e delle strutture linguistiche è sufficiente per iniziare a utilizzare Eli. Tutorial con esempi di problemi e soluzioni, insieme a una vasta documentazione in linea e un sistema di guida interattivo portano l'utente più lontano se lo desiderano.

Sistema integrato, con override flessibile:

Tutti i componenti di Eli sono coordinati l'uno con l'altro in modo tale che le interfacce dei moduli generati combacino. Di conseguenza, Eli genera un set completo di moduli C, incluso un Makefile, per risolvere il problema specificato. Vengono forniti meccanismi per consentire agli utenti di sostituire i moduli e le interfacce standard, se necessario, per risolvere problemi specifici.

Componenti allo stato dell'arte:

Gli strumenti e i moduli di Eli sono implementati in base all'attuale comprensione dei migliori approcci per risolvere i problemi di traduzione. I programmi generati sono affidabili ed efficienti. Eli è ampiamente usato e testato.

Rigenerazione selettiva:

Durante lo sviluppo di un'implementazione del linguaggio, l'utente apporta numerose modifiche e correzioni nelle specifiche. Eli garantisce che il prodotto sia sempre generato dalle specifiche attuali e che vengano eseguite solo le fasi di generazione effettivamente necessarie.


 Università del Colorado a Boulder, Stati Uniti d'America

 Macquarie Università, Australia

SourceForge.net Logo


Originale in inglese: http://eli-project.sourceforge.net/















No comments:

Post a Comment