Please use this identifier to cite or link to this item: https://repositorio.ufu.br/handle/123456789/14264
metadata.dc.type: Tese
metadata.dc.rights: Acesso Aberto
Title: Linguagens de domínio específico e sensores baseados em modelos biológicos de computação
metadata.dc.creator: Caparelli, Paulo Sérgio
metadata.dc.contributor.advisor1: Pereira, Antônio Eduardo Costa
metadata.dc.contributor.referee1: Soares, Alexsandro Santos
metadata.dc.contributor.referee2: Carrijo, Gilberto Arantes
metadata.dc.contributor.referee3: Yamanaka, Keiji
metadata.dc.contributor.referee4: Malaquias, Jose Romildo
metadata.dc.contributor.referee5: Nascimento, Evandro Afonso do
metadata.dc.description.resumo: Linguagem de domínio específico é uma linguagem de especificação dedicada a um domínio particular, ou a uma técnica de representação, ou mesmo a um método de busca, no sentido dado a este termo pelos pesquisadores de inteligência artificial. Por outro lado, uma linguagem de propósito geral é projetada com a meta de emular o cálculo lambda ou a máquina de Turing. Considerando que as linguagens de propósito geral devem aceitar qualquer algoritmo que possa ser executado por uma máquina de Turing, elas rara- mente usam métodos específicos a um domínio restrito. Isso as torna difíceis de aprender por profissionais que não sejam especialistas em ciência de computação. Para dizer toda a verdade, o aumento da popularidade de linguagens específicas entre cientistas de computação faz nos crer que linguagens de propósito geral são difíceis até para esses profissionais. Muitos campos da ciência e da tecnologia possuem avançadas linguagens de domínio específico: LATEX e XML são utilizadas por pessoas que trabalham com processamento de texto, SQL é popular em áreas que dependem de gerenciamento de bases de dados, Matlab é amplamente utilizada entre engenheiros, etc. Já projetistas de aplicações baseadas em redes neurais não possuem boas linguagens de domínio específico. A principal razão para isso é que eles são considerados cientistas de computação e, por isso, deveriam | na opinião geral | conhecer bem linguagens de propósito geral e até mesmo linguagens de microprogramação. A realidade, contudo, não é essa; por isso, a meta deste trabalho é desenvolver uma metodologia de criação de linguagens de domínio específico, metodologia essa que é baseada no sistema de macros da Lisp e em protótipos escritos em linguagens funcionais baseadas no ¸-calculus (Clean e Haskell). Lisp é a ferramenta clássica para criar tanto sistemas embarcados quanto linguagens específicas. Por isso, Lisp oferece todas as ferramentas necessárias para projetar, testar e aplicar linguagens de domínio específico. Mesmo assim, redes neurais têm características que exigem cuidado especial. Por exemplo, elas devem exibir exequibilidade biológica. Para atingir qualidade próxima de código gerado por programadores profissionais, mantendo a exequibilidade biológica, o presente trabalho utiliza avançadas técnicas de inteligência artificial e provadores de teorema baseados em táticas fornecidas pelo usuário, similares às do HOL4, ou do Isabelle. O sistema descrito nesta tese tem metas mais simples do que um provador geral, já que focaliza alguns poucos problemas relacionados com redes neurais. Um desses problemas é a coleta de dados de temperatura para construir a verdade terrestre (verdade terrestre refere-se à informação que é recolhida no local ) de sistemas utilizados no estudo do aquecimento global. Um aspecto em que esta tese difere de trabalhos similares e que pode gerar controvérsia está no fato do autor ter procurado escrever um texto autocontido. Tentou-se, ao mesmo tempo em que se discutiam as contribuições do autor, expor de maneira didática e completa todos os recursos tecnológicos utilizados. No caso de linguagens de domínio específico, várias foram apresentadas de forma mais ou menos completa, em uma tentativa de convencer o leitor da difusão e da importância dessa tecnologia. No que se refere `as contribuições do autor, elas são três. Em primeiro lugar, o autor tentou repassar ao leitor sua longa experiência no projeto e construção de dispositivos eletrônicos de alta tecnologia, como sistemas de aquisição de dados, GPS, interfaces e monitores miniaturizados. Em segundo lugar, procurou-se trazer as modernas técnicas de engenharia de software para a geração de redes neurais. Finalmente, propôs-se nesta tese uma arquitetura virtual, que procura unificar os diversos algoritmos de redes neurais e programação genética, além de criar uma tecnologia resistente `a obsolescência. Essa última meta é atingida através de protótipos escritos em ¸-calculus, um sistema formal que serve de base aos computadores modernos. Linguagem de domínio específico é uma linguagem de especificação dedicada a um domínio particular, ou a uma técnica de representação, ou mesmo a um método de busca, no sentido dado a este termo pelos pesquisadores de inteligência artificial. Por outro lado, uma linguagem de propósito geral é projetada com a meta de emular o cálculo lambda ou a máquina de Turing. Considerando que as linguagens de propósito geral devem aceitar qualquer algoritmo que possa ser executado por uma máquina de Turing, elas rara- mente usam métodos específicos a um domínio restrito. Isso as torna difíceis de aprender por profissionais que não sejam especialistas em ciência de computação. Para dizer toda a verdade, o aumento da popularidade de linguagens específicas entre cientistas de computação faz nos crer que linguagens de propósito geral são difíceis até para esses profissionais. Muitos campos da ciência e da tecnologia possuem avançadas linguagens de domínio específico: LATEX e XML são utilizadas por pessoas que trabalham com processamento de texto, SQL é popular em áreas que dependem de gerenciamento de bases de dados, Matlab é amplamente utilizada entre engenheiros, etc. Já projetistas de aplicações baseadas em redes neurais não possuem boas linguagens de domínio específico. A principal razão para isso é que eles são considerados cientistas de computação e, por isso, deveriam | na opinião geral | conhecer bem linguagens de propósito geral e até mesmo linguagens de microprogramação. A realidade, contudo, não é essa; por isso, a meta deste trabalho é desenvolver uma metodologia de criação de linguagens de domínio específico, metodologia essa que é baseada no sistema de macros da Lisp e em protótipos escritos em linguagens funcionais baseadas no ¸-calculus (Clean e Haskell). Lisp é a ferramenta clássica para criar tanto sistemas embarcados quanto linguagens específicas. Por isso, Lisp oferece todas as ferramentas necessárias para projetar, testar e aplicar linguagens de domínio específico. Mesmo assim, redes neurais têm características que exigem cuidado especial. Por exemplo, elas devem exibir exequibilidade biológica. Para atingir qualidade próxima de código gerado por programadores profissionais, mantendo a exequibilidade biológica, o presente trabalho utiliza avançadas técnicas de inteligência artificial e provadores de teorema baseados em táticas fornecidas pelo usuário, similares às do HOL4, ou do Isabelle. O sistema descrito nesta tese tem metas mais simples do que um provador geral, já que focaliza alguns poucos problemas relacionados com redes neurais. Um desses problemas é a coleta de dados de temperatura para construir a verdade terrestre (verdade terrestre refere-se à informação que é recolhida no local ) de sistemas utilizados no estudo do aquecimento global. Um aspecto em que esta tese difere de trabalhos similares e que pode gerar controvérsia está no fato do autor ter procurado escrever um texto autocontido. Tentou-se, ao mesmo tempo em que se discutiam as contribuições do autor, expor de maneira didática e completa todos os recursos tecnológicos utilizados. No caso de linguagens de domínio específico, várias foram apresentadas de forma mais ou menos completa, em uma tentativa de convencer o leitor da difusão e da importância dessa tecnologia. No que se refere `as contribuições do autor, elas são três. Em primeiro lugar, o autor tentou repassar ao leitor sua longa experiência no projeto e construção de dispositivos eletrônicos de alta tecnologia, como sistemas de aquisição de dados, GPS, interfaces e monitores miniaturizados. Em segundo lugar, procurou-se trazer as modernas técnicas de engenharia de software para a geração de redes neurais. Finalmente, propôs-se nesta tese uma arquitetura virtual, que procura unificar os diversos algoritmos de redes neurais e programação genética, além de criar uma tecnologia resistente `a obsolescência. Essa última meta é atingida através de protótipos escritos em ¸-calculus, um sistema formal que serve de base aos computadores modernos.
Abstract: A Domain Specific Language is a specification language dedicated to a particular domain, representation technique, or solution searching method. On the other hand, a general-purpose programming language is a language designed with the goal of emulating Lambda Calculus or Turing Machine. Since general-purpose languages must accept any algorithm that can be executed by a Turing Machine, they do not contain a knowledge base of a specific domain, which makes them difficult to master by a professional who is not a specialist in Computer Science. Many fields of science and technology have well advanced domain specific languages: LATEX and XML for text processing, SQL for data base management, Matlab for engineering, etc. Designers of neural network applications do not have good domain specific languages. The main reason for this situation is that they are considered computer scientists, and supposed to know general-purpose languages and even low level languages close to Turing machines (languages for microprogramming). Since we know that this has no base on reality, the goal of this work is to develop methods of creating domain specific languages rooted on Lisp macros and on functional languages (Clean and Haskell) for prototypes. We believe that Lisp is easy enough to be mastered even by people who has difficulty with formal methods and mathematics. Therefore, with well designed extensions, and a rapid training in programming methods, an engineer can use Lisp as a powerful tool of productivity. Lisp is a traditional tool for creating both embedded languages and domain specific languages. Therefore, Lisp offers all tools necessary to design, test and deploy domain specific languages. Nevertheless, neural networks have features that require special care. For instance, they need to have biological feasibility. In order to reach code quality close to human designed nets, while preserving biological feasibility, this work will use advanced Artificial Intelligence methods and guided automatic theorem provers similar to the one used in HOL4 or Isabelle. Our system has a simpler goal than general theorem provers, since it will focus in a few problems related to neural networks. One of these problems is the designing of devices for data acquisition. This thesis differs from similar works in one point that may cause controversy: Besides the contributions of the author to the state of the art, it discusses elementary aspects of the technologies involved. We decided to do this in order to bring the ideas that we are exposing to the reach of all readers. What are these ideas? The first contribution is to bring software engineering technology to biological modeling. We are not aware of any researcher who attempted this goal before. A second aspect of this work can be resumed as an effort to create a language to describe combinations of neuron models into complex networks. All programs discussed here were designed to avoid obsolescence. The author achieved this goal by writing prototypes in ¸-calculus, a formal system that can be executed in modern computers.
Keywords: Inteligência artificial
Redes neurais (Computação)
Reconhecimento de padrões
Programação genética (Computação)
metadata.dc.subject.cnpq: CNPQ::ENGENHARIAS::ENGENHARIA ELETRICA
metadata.dc.language: por
metadata.dc.publisher.country: BR
Publisher: Universidade Federal de Uberlândia
metadata.dc.publisher.initials: UFU
metadata.dc.publisher.department: Engenharias
metadata.dc.publisher.program: Programa de Pós-graduação em Engenharia Elétrica
Citation: CAPARELLI, Paulo Sergio. Linguagens de domínio específico e sensores baseados em modelos biológicos de computação. 2010. 216 f. Tese (Doutorado em Engenharias) - Universidade Federal de Uberlândia, Uberlândia, 2010.
URI: https://repositorio.ufu.br/handle/123456789/14264
Issue Date: 19-Feb-2010
Appears in Collections:TESE - Engenharia Elétrica

Files in This Item:
File Description SizeFormat 
paulo.pdf1.94 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.