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