Please use this identifier to cite or link to this item: http://hdl.handle.net/1843/58695
Full metadata record
DC FieldValueLanguage
dc.contributor.advisor1Haniel Moreira Barbosapt_BR
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/6657126741011519pt_BR
dc.contributor.advisor-co1Fernando Magno Quintão Pereirapt_BR
dc.contributor.referee1Mário Sérgio Ferreira Alvim Júniorpt_BR
dc.contributor.referee2Rodrigo Geraldo Ribeiropt_BR
dc.creatorJoão Saffran de Rezendept_BR
dc.creator.Latteshttp://lattes.cnpq.br/0824212408102657pt_BR
dc.date.accessioned2023-09-14T19:49:04Z-
dc.date.available2023-09-14T19:49:04Z-
dc.date.issued2021-03-23-
dc.identifier.urihttp://hdl.handle.net/1843/58695-
dc.description.abstractUm 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.pt_BR
dc.description.resumoA string event is the occurrence of a specific pattern in the textual output of a program. The capture and treatment of string events has several applications, such as log anonymization, error handling and user notification, implementing web crawler and performing code refactoring. However, there is no systematic approach to identify and treat string events today. This work formally defines string events and brings forward the theory and practice of a general framework to handle them. We demonstrate the effectiveness of this framework by presenting two implementations that use it. First we introduce ZheFuscator, a system that redacts occurrences of sensitive information in database logs. ZheFuscator is implemented as an extension to the Java Virtual Machine (JVM). It intercepts patterns of interest on-the-fly and does not require interventions in the source code of the protected program. It can infer log formats and capture string events with minimal performance overhead. As an illustration, it is up to 14x faster than an equivalent brute-force approach, converging to a definitive grammar after observing less than 10 examples from typical logs. Second we introduce a general notation to the handling of infinite text processing. This notation highlights commonalities in tasks that, although in principle different, encode the same essential challenges. We have concretized this notation into ZheLang, a reactive language that lets users combine basic operations to identify and treat string events. As a proof of concept, we demonstrate how ZheLang operators can be combined to implement applications as disparate as log obfuscators and search engines.pt_BR
dc.languageengpt_BR
dc.publisherUniversidade Federal de Minas Geraispt_BR
dc.publisher.countryBrasilpt_BR
dc.publisher.departmentICX - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃOpt_BR
dc.publisher.programPrograma de Pós-Graduação em Ciência da Computaçãopt_BR
dc.publisher.initialsUFMGpt_BR
dc.rightsAcesso Abertopt_BR
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/pt/*
dc.subjectComputaçãopt_BR
dc.subjectLinguagem de programação (Computadores)pt_BR
dc.subjectProgramação reativapt_BR
dc.subjectAnálise (Gramática de computador)pt_BR
dc.subject.otherComputação – Tesespt_BR
dc.subject.otherLinguagem de programação (Computadores) – Tesespt_BR
dc.subject.otherProgramação reativa – Tesespt_BR
dc.subject.otherAnálise (Gramática de computador) – Tesespt_BR
dc.titleReactive methodologies to infinite text processingpt_BR
dc.typeDissertaçãopt_BR
Appears in Collections:Dissertações de Mestrado

Files in This Item:
File Description SizeFormat 
Disertação.pdf2.81 MBAdobe PDFView/Open


This item is licensed under a Creative Commons License Creative Commons