ANALISI DELLE DIFFERENZE STRUTTURALI NELLE ESPRESSIONI REGOLARI
COSTRUITE DA PROGRAMMATORI E DA STRUMENTI AUTOMATICI
Laureando
Marco Potok
Relatore
Prof. Alberto Bartoli
Correlatore
Prof. Eric Medvet
UNIVERSITÀ DEGLI STUDI DI TRIESTE
Dipartimento di ingegneria e architettura
Corso di laurea triennale in Ingegneria dell’Informazione
Obbiettivo della tesi
Caratterizzare i punti deboli delle espressioni
regolari costruite automaticamente
• analizzando la loro struttura
• confrontandole con le espressioni costruite da
programmatori.
Motivazione
Parte della ricerca condotta dal Machine Learning
Lab dell’Università di Trieste.
La ricerca si occupa della generazione automatica
di espressioni regolari a partire da esempi del
comportamento desiderato.
Espressione regolare (I)
• È una stringa (sequenza di caratteri)
• Descrive in maniera compatta un pattern sintattico
• Identifica un insieme di stringhe
• Numeri di telefono in un testo
• Indirizzi IP in un file di log
• …
Spesso chiamata regex dall’inglese regular expression
Espressione regolare (II)
È di buona qualità quando:
• È di lunghezza contenuta
• Identifica tutte le stringhe volute
Metodo di Analisi (I)
I dati analizzati sono stati ottenuti dallo svolgimento
degli stessi 9 task da parte di 1724 programmatori
e dallo strumento automatico.
Data-set composto da:
• 12000 campioni macchina
• 9842 campioni umani
Metodo di Analisi (II)
Parametri analizzati:
• Lunghezza
• Uso dei blocchi base
• Ascisse: lunghezza
(scala log.)
• Ordinate: densità
(normalizzata)
Lunghezza (I)
La macchina tende a generare espressioni più corte
Lunghezza (II)
Grafici relativi ai 9 task
Blocchi base (I)
Differenze più evidenti:
• L’utente macchina usa
più classi
• es. “[A-Z0-9]”
• L’utente programmatore
usa più costanti
• es. “http”
Uomo Macchina
Quindi...
Lo strumento automatico
• Tende a generare espressioni più corte
MA
• Usa più classi e meno costanti
• Negli ultimi 4 task tende a generalizzare più
dell'umano costruendo espressioni lunghe
Ulteriore analisi (I)
I dati sono divisi in due gruppi
Primo gruppo:
• Comprende i task 1-5
• La macchina genera espressioni corte
Secondo gruppo:
• Comprende i task 6-9
• La macchina genera espressioni lunghe
Ulteriore analisi (II)
Nel secondo gruppo:
• Ancora più classi
• Ancora meno costanti
Uomo Macchina Uomo Macchina
Ulteriore analisi (III)
Uomo Macchina Uomo Macchina
Conclusioni
Lo strumento automatico:
• Tende a generare espressioni regolari più
corte rispetto a quelle costruite dai
programmatori
• Usa più classi e meno costanti per la
costruzione delle espressioni
• Nei task più complicati l’uso delle classi
aumenta causando un aumento della
lunghezza dell’espressione
Sviluppi futuri
• Individuazione delle caratteristiche dei
task che causano un aumento della
lunghezza
• Analisi più approfondita dell’eventuale
correlazione tra lunghezza, uso dei
blocchi base e qualità dell’espressione
GRAZIE PER L’ATTENZIONE

Analisi delle differenze strutturali nelle espressioni regolari costruite da programmatori e da strumenti automatici

  • 1.
    ANALISI DELLE DIFFERENZESTRUTTURALI NELLE ESPRESSIONI REGOLARI COSTRUITE DA PROGRAMMATORI E DA STRUMENTI AUTOMATICI Laureando Marco Potok Relatore Prof. Alberto Bartoli Correlatore Prof. Eric Medvet UNIVERSITÀ DEGLI STUDI DI TRIESTE Dipartimento di ingegneria e architettura Corso di laurea triennale in Ingegneria dell’Informazione
  • 2.
    Obbiettivo della tesi Caratterizzarei punti deboli delle espressioni regolari costruite automaticamente • analizzando la loro struttura • confrontandole con le espressioni costruite da programmatori.
  • 3.
    Motivazione Parte della ricercacondotta dal Machine Learning Lab dell’Università di Trieste. La ricerca si occupa della generazione automatica di espressioni regolari a partire da esempi del comportamento desiderato.
  • 4.
    Espressione regolare (I) •È una stringa (sequenza di caratteri) • Descrive in maniera compatta un pattern sintattico • Identifica un insieme di stringhe • Numeri di telefono in un testo • Indirizzi IP in un file di log • … Spesso chiamata regex dall’inglese regular expression
  • 5.
    Espressione regolare (II) Èdi buona qualità quando: • È di lunghezza contenuta • Identifica tutte le stringhe volute
  • 6.
    Metodo di Analisi(I) I dati analizzati sono stati ottenuti dallo svolgimento degli stessi 9 task da parte di 1724 programmatori e dallo strumento automatico. Data-set composto da: • 12000 campioni macchina • 9842 campioni umani
  • 7.
    Metodo di Analisi(II) Parametri analizzati: • Lunghezza • Uso dei blocchi base
  • 8.
    • Ascisse: lunghezza (scalalog.) • Ordinate: densità (normalizzata) Lunghezza (I) La macchina tende a generare espressioni più corte
  • 9.
  • 10.
    Blocchi base (I) Differenzepiù evidenti: • L’utente macchina usa più classi • es. “[A-Z0-9]” • L’utente programmatore usa più costanti • es. “http” Uomo Macchina
  • 11.
    Quindi... Lo strumento automatico •Tende a generare espressioni più corte MA • Usa più classi e meno costanti • Negli ultimi 4 task tende a generalizzare più dell'umano costruendo espressioni lunghe
  • 12.
    Ulteriore analisi (I) Idati sono divisi in due gruppi Primo gruppo: • Comprende i task 1-5 • La macchina genera espressioni corte Secondo gruppo: • Comprende i task 6-9 • La macchina genera espressioni lunghe
  • 13.
    Ulteriore analisi (II) Nelsecondo gruppo: • Ancora più classi • Ancora meno costanti Uomo Macchina Uomo Macchina
  • 14.
    Ulteriore analisi (III) UomoMacchina Uomo Macchina
  • 15.
    Conclusioni Lo strumento automatico: •Tende a generare espressioni regolari più corte rispetto a quelle costruite dai programmatori • Usa più classi e meno costanti per la costruzione delle espressioni • Nei task più complicati l’uso delle classi aumenta causando un aumento della lunghezza dell’espressione
  • 16.
    Sviluppi futuri • Individuazionedelle caratteristiche dei task che causano un aumento della lunghezza • Analisi più approfondita dell’eventuale correlazione tra lunghezza, uso dei blocchi base e qualità dell’espressione
  • 17.