Reactive methodologies to infinite text processing
Ano de defesa: | 2021 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | |
Tipo de documento: | Dissertação |
Tipo de acesso: | Acesso aberto |
Idioma: | eng |
Instituição de defesa: |
Universidade Federal de Minas Gerais
Brasil ICX - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Programa de Pós-Graduação em Ciência da Computação UFMG |
Programa de Pós-Graduação: |
Não Informado pela instituição
|
Departamento: |
Não Informado pela instituição
|
País: |
Não Informado pela instituição
|
Palavras-chave em Português: | |
Link de acesso: | http://hdl.handle.net/1843/58695 |
Resumo: | Um evento de string é a ocorrência de um padrão específico na saída textual de um programa. A captura e tratamento de eventos de string tem várias aplicações, como anonimização de logs, tratamento de erros e notificação de usuário, implementação de web crawlers e refatoração de código. No entanto, não há hoje uma abordagem sistemática para identificar e tratar eventos de string. Este trabalho define formalmente eventos de string e apresenta a teoria e prática de um framework para tratá-los. Demonstramos a eficácia deste framework propondo duas implementações. Primeiro, apresentamos ZheFuscator, um sistema que edita ocorrências de informações confidenciais em logs de banco de dados. ZheFuscator é implementado como uma extensão da Java Virtual Machine (JVM). Ele intercepta padrões de interesse em tempo real e não requer intervenções no código-fonte do programa a ser protegido. Demonstramos que o ZheFuscator é até 14x mais rápido do que uma abordagem força bruta, convergindo para uma gramática que descreve o formato do log de um banco de dados mysql depois de observar menos de 10 exemplos deste logs. Demonstramos também que este processo de inferir formatos de log e capturar eventos de string pode ser implementado com mínimo overhead. Em segundo lugar, apresentamos uma notação geral para o tratamento de texto infinito. Essa notação destaca semelhanças em tarefas que, embora em princípio diferentes, codificam os mesmos desafios essenciais. Nós combinamos essa notação propondo ZheLang, uma linguagem reativa que permite os usuários combinarem operações básicas para identificar e tratar eventos de string. Como prova de conceito, demonstramos como os operadores de ZheLang podem ser combinados para implementar aplicativos como: ofuscadores de log e máquinas de busca. |