Use este identificador para citar ou linkar para este item: http://repositorio.utfpr.edu.br/jspui/handle/1/27907
Título: 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++
Título(s) alternativo(s): Contribution to the notification oriented paradigm: NOPL Technology 2.0 evolution by language enhancement and compiler for C++ notifying modular code
Autor(es): Oshiro, Larissa Keiko
Orientador(es): Simao, Jean Marcelo
Palavras-chave: Programação (Computadores)
C++ (Linguagem de programação de computador)
Compiladores (Programas de computador)
Software - Desenvolvimento
Computer programming
C++ (Computer program language)
Compilers (Computer programs)
Computer software - Development
Data do documento: 11-Nov-2021
Editor: Universidade Tecnológica Federal do Paraná
Câmpus: Curitiba
Citação: OSHIRO, Larissa Keiko. 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++. 2021. Dissertação (Mestrado em Engenharia Elétrica e Informática Industrial) - Universidade Tecnológica Federal do Paraná, Curitiba, 2021.
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.
Abstract: The Notification Oriented Paradigm (NOP) presents a solution that combines Imperative Paradigm programming flexibility and Declarative Paradigm programming easiness, providing, furthermore, a new vision of programming, structuring, and running software. The NOP presents three elementary properties, which consist of: (a) easiness in terms of high-level development; (b) redundancy elimination that would allow appropriate execution performance; and (c) decoupling that would allow for implicit parallelism and/or distribution. A set of programming languages and compilers for this paradigm have been developed to materialize the NOP principles. This set of languages and compilers is part of a solution called NOPL Technology, which is in its second version named NOPL Technology 2.0. This version originated the NOPL 2.0, a complete programming language compared to the previous one, which allows the creation of NOP applications in rule-oriented high-level programming. The NOPL Technology evolution allows the concurrent development of MCNOP, a method to create programming languages and compilers for NOP and a definition of a single intermediate data structure in the format of a notifying entity graph, called NOP Graph. The MCNOP, concomitantly with NOP Graph, make it possible to build compilers to distinct platforms. Some compilers with code generators have been implemented to different targets for software and digital hardware in recent years. Among them, the prototypal ‘single-threaded’ C++ Notifying Modular Code oriented to Namespaces’ compiler stands out in software implemented for NOPL 1.0 version and is called NPCPP 1.0. In previous research, this NPCPP 1.0 presented the best performance for Von Neumann architecture. However, these results were still not as proper as when considering the NOP theory. In this context, this M.Sc. Dissertation proposes a new compiler, based on the NOPL Technology 2.0 compilation system, for C++ Modular Notifying Code oriented to Namespaces target for NOPL 2.0 and adjustments of its programming language. This compiler, for NOPL 2.0, along with its code generator, is called NPCPP 2.0. To demonstrate NPCPP 2.0, some experiments were carried out through benchmarks from the NOP research group and external benchmarks. These benchmarks were developed using NPCPP 1.0, NPCPP 2.0, and imperative programming language (usual C++), allowing performance comparisons. According to the results of the experiments, NPCPP 2.0 presents a proper performance in terms of high-level development, surpassing NPCPP 1.0 results and achieving approximate results to C++ in terms of performance. Furthermore, the results of experiments also demonstrate an improvement in the general structure of generated codes by NPCPP 2.0 with decoupled code. Still, the research presents the viability of two of the three elementary properties of NOP in Von Neumann architecture.
URI: http://repositorio.utfpr.edu.br/jspui/handle/1/27907
Aparece nas coleções:CT - Programa de Pós-Graduação em Engenharia Elétrica e Informática Industrial

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
compiladorcodigonotificantemodular.pdf8,1 MBAdobe PDFThumbnail
Visualizar/Abrir


Este item está licenciada sob uma Licença Creative Commons Creative Commons