Contribuição em paradigma orientado a notificações: evolução da tecnologia LingPON 2.0 via aprimoramento da linguagem e compilador para código notificante modular em C++
Ano de defesa: | 2021 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | , , , |
Tipo de documento: | Dissertação |
Tipo de acesso: | Acesso aberto |
Idioma: | por |
Instituição de defesa: |
Universidade Tecnológica Federal do Paraná
Curitiba |
Programa de Pós-Graduação: |
Programa de Pós-Graduação em Engenharia Elétrica e Informática Industrial
|
Departamento: |
Não Informado pela instituição
|
País: |
Brasil
|
Palavras-chave em Português: | |
Área do conhecimento CNPq: | |
Link de acesso: | http://repositorio.utfpr.edu.br/jspui/handle/1/27907 |
Resumo: | O Paradigma Orientado a Notificações (PON) apresenta uma solução que une a flexibilidade de programação do Paradigma Imperativo e a facilidade de programação do Paradigma Declarativo, além de proporcionar uma nova visão de programar, estruturar e executar software. O PON apresenta três propriedades elementares que consistem em: (a) facilidade de programação em alto nível; (b) eliminação de redundâncias que levaria ao desempenho apropriado de execução; e (c) desacoplamento que permitiria paralelismo/distribuição implícitos. Para materializar os princípios desse paradigma foram desenvolvidas linguagens de programação e um conjunto de compiladores próprios ao PON. Esse conjunto de linguagens e compiladores faz parte de uma solução denominada de Tecnologia LingPON, a qual se encontra em sua segunda versão, conhecida como Tecnologia LingPON 2.0. Esta deu origem à LingPON 2.0, uma linguagem de programação mais completa que a precedente, permitindo a criação de aplicações PON em programação de alto nível orientada a regras. A evolução da Tecnologia LingPON permitiu, concomitantemente, a criação do MCPON, um método de criação de linguagens e compiladores para o PON, bem como a definição de uma única estrutura de dados intermediária em formato de grafo de entidades notificantes, nomeada de Grafo PON. O MCPON e o Grafo PON, conjuntamente, possibilitam a construção de compiladores para plataformas distintas. Nos últimos anos foram implementados alguns compiladores com geradores de código para linguagens-alvo (targets) distintos, tanto para software quanto para hardware digital. Dentre eles, destaca-se em software, o prototipal compilador para Código Notificante Modular em C++ orientado a Namespaces singlethreaded, implementado para a versão Tecnologia LingPON 1.0, chamado de NPCPP 1.0. Este NPCPP 1.0 apresentou, em estudos precedentes, o melhor resultado em termos de desempenho para arquitetura Von Neumann, mas ainda não como esperado à luz da teoria do PON. Neste âmbito, essa dissertação propõe um novo compilador, baseado no sistema de compilação da Tecnologia LingPON 2.0 para o target de Código C++ Notificante Modular orientado a Namespaces para a LingPON 2.0 e ajustes desta linguagem de programação. Tal compilador, para a LingPON 2.0 com seu gerador de códigos, é denominado de NPCPP 2.0. Para demonstrar o NPCPP 2.0 foram realizados alguns experimentos, os quais se dão por meio de aplicações padronizadas (benchmarks), advindas tanto do grupo de pesquisa do PON quanto externamente. Tais benchmarks foram desenvolvidos em NPCPP 1.0, NPCPP 2.0 e em linguagem imperativa (particularmente C++ usual), permitindo, assim, comparações de desempenho. Os resultados dos experimentos mostram o desempenho apropriado do NPCPP 2.0, enquanto desenvolvimento em alto nível, superando o NPCPP 1.0 e se aproximando dos resultados em C++ usual. Ainda, os resultados de experimentos também demonstram uma melhora na estrutura geral dos códigos gerados pelo NPCPP 2.0 com código gerado de forma desacoplada. Portanto, esta pesquisa contribui com uma materialização que apresenta a viabilidade de duas das três propriedades elementares do PON em termos de arquitetura Von Neumann. |