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++

Detalhes bibliográficos
Ano de defesa: 2021
Autor(a) principal: Oshiro, Larissa Keiko
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Tecnológica Federal do Paraná
Curitiba
Brasil
Programa de Pós-Graduação em Engenharia Elétrica e Informática Industrial
UTFPR
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://repositorio.utfpr.edu.br/jspui/handle/1/27907
Resumo: 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.