La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso di Linguaggi e Modelli Computazionali LS Prof. Enrico Denti Presentazione di Luca Nardelli un nuovo modo di gestire il filesystem….

Presentazioni simili


Presentazione sul tema: "Corso di Linguaggi e Modelli Computazionali LS Prof. Enrico Denti Presentazione di Luca Nardelli un nuovo modo di gestire il filesystem…."— Transcript della presentazione:

1 Corso di Linguaggi e Modelli Computazionali LS Prof. Enrico Denti Presentazione di Luca Nardelli un nuovo modo di gestire il filesystem….

2 Scopo del progetto Definizione di un linguaggio sql like per descrivere query sul filesystem. Sviluppo di un interprete che consenta di eseguire le operazioni specificate per mezzo del linguaggio. Sviluppo di un filemanager multipiattaforma che sfrutti linterprete per la gestione dei file.

3 Stato dellarte Miriadi di tool di ricerca che permettono, in modo efficiente (anche sfruttando lindicizzazione), di cercare file in base a criteri personalizzati. Copiare, spostare, cancellare i file rimane un operazione manuale. Linguaggi di script come bash/bat che permettono di effettuare una qualunque elaborazione su file e direttori in modo veloce. Spesso di difficile apprendimento per lutente.

4 SQL File Manager Permette di eseguire ricerche sul filesystem in base a diversi criteri di ricerca: select * from /home where name like %.tmp or (date < 01/01/2005 and size < 3k); Permette di eseguire diverse operazioni sui file mediante script: copy files from /opt to /home where … delete * from /tmp … Sfrutta un linguaggio simile allsql, standard per le query su base dati.

5 Grammatica EBNF S ::= Query | Query Query ::= ( Select | Copy | Delete ) ( )? SelectCopyDelete Select ::= FileType From ( Where )?FileTypeFromWhere Copy ::= FileType From To ( Where )? ( )?FileTypeFromToWhere Delete ::= FileType From (Where )?FileTypeFromWhere From ::= FileName ( FileName )*FileName To ::= FileNameFileName FileName ::= ( | ) FileType ::= ( | | ) Where ::= OrExpressionOrExpression OrExpression ::= AndExpression ( AndExpression )*AndExpression AndExpression ::= SearchRule ( SearchRule )*SearchRule SearchRule ::= FileNameSearchRule | FileDateSearchRule | FileSizeSearchRule | OrExpression FileNameSearchRuleFileDateSearchRuleFileSizeSearchRuleOrExpression FileNameSearchRule ::= ( Operator | ) Operator FileDateSearchRule ::= Operator Operator FileSizeSearchRule ::= Operator Operator Operator ::= ( | | | | | )

6 Considerazioni Grammatica di tipo 2 context free con self- embedding. La grammatica è LL(1), lanalizzatore guardando avanti di uno sa sempre quale regola applicare (starter symbol disgiunti). Riconoscitore PDA deterministico

7 Implementazione Linguaggio utilizzato: Java 1.6 Utilizzate le nuove funzioni soprattutto per le JTable (ordinamento, filtri,…) Strumenti automatici utilizzati: JavaCC Di semplice utilizzo e molto diffuso Analisi top-down discendente Ambiente di sviluppo: Eclipse

8 Packages sqlfilemanager package principale gui classi per interfaccia grafica models modelli dei componenti grafici renderer renderer dei componenti grafici parser classi dello scanner e del parser struct classi della struttura dati popolata dal parser task classi per la gestione multi-thread delle operazioni utils strumenti di supporto

9 Il Parser Implementato in SFMParser Utilizzato come singleton Utilizza lo scanner generato da javacc Restituisce una struttura di tipo query per ogni istruzione, null in caso di EOF

10 Struttura query

11 Conclusioni e sviluppi futuri SQL File Manager è un esempio di come un linguaggio possa essere utile e talvolta necessario per automatizzare le funzionalità di un software. Sviluppi futuri possono comprendere: Ricerca sul filesystem ad indice. Estensione delle funzionalità. Implementazione di un servizio di logging.


Scaricare ppt "Corso di Linguaggi e Modelli Computazionali LS Prof. Enrico Denti Presentazione di Luca Nardelli un nuovo modo di gestire il filesystem…."

Presentazioni simili


Annunci Google