Framework PON C++ 4.0: contribuição para a concepção de aplicações no paradigma orientado a notificações por meio de programação genérica
The Notification-Oriented Paradigm (NOP) is a new approach to the construction of computer systems. The NOP proposes computability by means of reactive and decoupled entities model that interact by means of punctual notifications, separating fact-executional from logic-causal computing. With this it...
Autor principal: | Neves, Felipe dos Santos |
---|---|
Formato: | Dissertação |
Idioma: | Português |
Publicado em: |
Universidade Tecnológica Federal do Paraná
2021
|
Assuntos: | |
Acesso em linha: |
http://repositorio.utfpr.edu.br/jspui/handle/1/26270 |
Tags: |
Adicionar Tag
Sem tags, seja o primeiro a adicionar uma tag!
|
id |
riut-1-26270 |
---|---|
recordtype |
dspace |
spelling |
riut-1-262702021-11-04T06:05:59Z Framework PON C++ 4.0: contribuição para a concepção de aplicações no paradigma orientado a notificações por meio de programação genérica Framework NOP 4.0: contribution to the development of applications in the notification oriented paradigm through generic programming Neves, Felipe dos Santos Linhares, Robson Ribeiro https://orcid.org/ 0000-0002-4256-3819 http://lattes.cnpq.br/0625140430173288 Simao, Jean Marcelo https://orcid.org/0000-0002-2139-1261 http://lattes.cnpq.br/3593420323268103 Ronszcka, Adriano Francisco https://orcid.org/ 0000-0003-0950-657X http://lattes.cnpq.br/4780184697503369 Schutz, Fernando https://orcid.org/ 0000-0002-2884-6919 http://lattes.cnpq.br/8912470216819864 Panetto, Herve https://orcid.org/ 0000-0002-5537-2261 http://lattes.cnpq.br/8951585800896455 Simao, Jean Marcelo https://orcid.org/0000-0002-2139-1261 http://lattes.cnpq.br/3593420323268103 Fabro, Joao Alberto https://orcid.org/0000-0001-8975-0323 http://lattes.cnpq.br/6841185662777161 Programação genérica (ciência da computação) Sistemas de computação Software - Desenvolvimento C++ (Linguagem de programação de computador) Generic programming (Computer science) Computer systems Computer software - Development C++ (Computer program language) CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO Ciência da Computação The Notification-Oriented Paradigm (NOP) is a new approach to the construction of computer systems. The NOP proposes computability by means of reactive and decoupled entities model that interact by means of punctual notifications, separating fact-executional from logic-causal computing. With this it is possible to reduce or eliminate temporal and structural redundancies, common in other programming paradigms, which can affect program performance. Still, the intrinsic decoupling between NOP entities facilitates the construction of concurrent and/or distributed systems. Moreover, the rule-oriented structure of the NOP tends to ease development by allowing programming at a high level of abstraction. NOP presents several materializations in software, being the most mature technologically those that occur through frameworks, developed in different programming languages. Among these frameworks, the one that presents the highest degree of maturity and stability is the C++ Framework NOP 2.0. However, the C++ Framework NOP 2.0 still has certain limitations, such as excessive verbosity, low type flexibility and low algorithmic flexibility. In this context, this work proposes the development of a new framework, named C++ Framework NOP 4.0, with the objective of removing the limitations present in the C++ Framework NOP 2.0, as well as the imperfections of the C++ Framework NOP 3.0 that involves multithread/multicore, in order to improve the usability of the NOP and its performance in this regard. The C++ Framework NOP 4.0 is developed using generic techniques, by means of features added in the ISO C++11 C++14, C++17 and C++20 and applying the test-driven development methodology. This master’s thesis presents the results obtained with the implementation of the C++ Framework NOP 4.0 through a set of relevant applications, such as the sensor application, traffic light control application, and the algorithms Bitonic Sort and Random Forest, both in a single thread and multithread/multicore environment. These applications were executed and compared in terms of performance against the same applications implemented with the C++ Framework NOP 2.0, Elixir/Erlang Framework NOP and also implementations in the Object-Oriented Paradigm (OOP) in the C++ programming language and Procedural Paradigm (PP) in the C programming language. As a result of these comparisons, the new C++ Framework NOP 4.0 proves to be superior to C++ Framework NOP 2.0 in both runtime and memory consumption in the evaluated scenarios, besides presenting CPU utilization levels comparable to the Framework Elixir/Erlang Framework NOP multicore environment. Usability improvements are additionally evaluated and attested by feedback from NOP developers. O Paradigma Orientado a Notificações (PON) é uma nova abordagem para a construção de sistemas computacionais. O PON propõe a computação por meio de um modelo de entidades reativas desacopladas que interagem por meio de notificações pontuais, dentre as quais se divide e separa a computação facto-execucional da computação lógico-causal. Com isso é possível reduzir ou eliminar redundâncias temporais e estruturais, comuns em outros paradigmas de programação, que podem afetar o desempenho dos programas. Ainda, o desacoplamento intrínseco entre as entidades do PON facilita a construção de sistemas concorrentes e/ou distribuídos. Além disso, a estrutura orientada a regras do PON tende a facilitar o desenvolvimento por permitir programar em alto nível de abstração. O PON apresenta várias materializações em software, sendo as mais maduras tecnologicamente aquelas que se dão por meio de frameworks, desenvolvidos em diferentes linguagens de programação. Dentre estes frameworks o que apresenta o maior grau de maturidade e estabilidade é o Framework PON C++ 2.0. Entretanto, o Framework PON C++ 2.0 ainda apresenta certas limitações, como excessiva verbosidade, baixa flexibilidade de tipos e baixa flexibilidade algorítmica. Nesse contexto este trabalho propõe o desenvolvimento de um novo framework, denominado Framework PON C++ 4.0, com o objetivo de remover as limitações presentes no Framework PON C++ 2.0, bem como as imperfeições do Framework PON C++ 3.0 que envolve multithread/multicore, de forma a melhorar a usabilidade do PON e seu desempenho neste âmbito. O Framework PON C++ 4.0 é desenvolvido utilizando técnicas de programação genérica, por meio de recursos adicionados nas versões do padrão ISO C++11, C++14, C++17 e C++20, bem como aplicando o método de desenvolvimento orientado a testes. Esta dissertação de mestrado apresenta os resultados obtidos com a implementação do Framework PON C++ 4.0 por meio de um conjunto de aplicações pertinentes, tanto em ambiente single thread quanto multithread/multicore. Tais aplicações são um sistema de sensores e uma aplicação de controle automatizado de tráfego, oriundos do grupo de pesquisa, e dos algoritmos Bitonic Sort e Random Forest oriundos da literatura. Tais aplicações foram executadas e comparadas em termos de desempenho com as mesmas aplicações implementadas no Framework PON C++ 2.0, Framework PON Elixir/Erlang e também implementações no Paradigma Orientado a Objetos (POO) em linguagem de programação C++ e Paradigma Procedimental (PP) em linguagem de programação C. Como resultado destas comparações, o novo Framework PON C++ 4.0 se mostra superior ao Framework PON C++ 2.0 tanto em tempo de execução como consumo de memória nos cenários avaliados, além de apresentar balanceamento de carga comparável aos do Framework PON Elixir/Erlang em ambiente multicore. As melhorias na usabilidade são adicionalmente avaliadas e atestadas pelo feedback de desenvolvedores do PON. 2021-11-03T22:42:20Z 2021-11-03T22:42:20Z 2021-09-03 masterThesis NEVES, Felipe dos Santos. Framework PON C++ 4.0: contribuição para a concepção de aplicações no paradigma orientado a notificações por meio de programação genérica. 2021. Dissertação (Mestrado em Computação Aplicada) - Universidade Tecnológica Federal do Paraná, Curitiba, 2021. http://repositorio.utfpr.edu.br/jspui/handle/1/26270 por openAccess http://creativecommons.org/licenses/by/4.0/ application/pdf Universidade Tecnológica Federal do Paraná Curitiba Brasil Programa de Pós-Graduação em Computação Aplicada UTFPR |
institution |
Universidade Tecnológica Federal do Paraná |
collection |
RIUT |
language |
Português |
topic |
Programação genérica (ciência da computação) Sistemas de computação Software - Desenvolvimento C++ (Linguagem de programação de computador) Generic programming (Computer science) Computer systems Computer software - Development C++ (Computer program language) CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO Ciência da Computação |
spellingShingle |
Programação genérica (ciência da computação) Sistemas de computação Software - Desenvolvimento C++ (Linguagem de programação de computador) Generic programming (Computer science) Computer systems Computer software - Development C++ (Computer program language) CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO Ciência da Computação Neves, Felipe dos Santos Framework PON C++ 4.0: contribuição para a concepção de aplicações no paradigma orientado a notificações por meio de programação genérica |
description |
The Notification-Oriented Paradigm (NOP) is a new approach to the construction of computer systems. The NOP proposes computability by means of reactive and decoupled entities model that interact by means of punctual notifications, separating fact-executional from logic-causal computing. With this it is possible to reduce or eliminate temporal and structural redundancies, common in other programming paradigms, which can affect program performance. Still, the intrinsic decoupling between NOP entities facilitates the construction of concurrent and/or distributed systems. Moreover, the rule-oriented structure of the NOP tends to ease development by allowing programming at a high level of abstraction. NOP presents several materializations in software, being the most mature technologically those that occur through frameworks, developed in different programming languages. Among these frameworks, the one that presents the highest degree of maturity and stability is the C++ Framework NOP 2.0. However, the C++ Framework NOP 2.0 still has certain limitations, such as excessive verbosity, low type flexibility and low algorithmic flexibility. In this context, this work proposes the development of a new framework, named C++ Framework NOP 4.0, with the objective of removing the limitations present in the C++ Framework NOP 2.0, as well as the imperfections of the C++ Framework NOP 3.0 that involves multithread/multicore, in order to improve the usability of the NOP and its performance in this regard. The C++ Framework NOP 4.0 is developed using generic techniques, by means of features added in the ISO C++11 C++14, C++17 and C++20 and applying the test-driven development methodology. This master’s thesis presents the results obtained with the implementation of the C++ Framework NOP 4.0 through a set of relevant applications, such as the sensor application, traffic light control application, and the algorithms Bitonic Sort and Random Forest, both in a single thread and multithread/multicore environment. These applications were executed and compared in terms of performance against the same applications implemented with the C++ Framework NOP 2.0, Elixir/Erlang Framework NOP and also implementations in the Object-Oriented Paradigm (OOP) in the C++ programming language and Procedural Paradigm (PP) in the C programming language. As a result of these comparisons, the new C++ Framework NOP 4.0 proves to be superior to C++ Framework NOP 2.0 in both runtime and memory consumption in the evaluated scenarios, besides presenting CPU utilization levels comparable to the Framework Elixir/Erlang Framework NOP multicore environment. Usability improvements are additionally evaluated and attested by feedback from NOP developers. |
format |
Dissertação |
author |
Neves, Felipe dos Santos |
author_sort |
Neves, Felipe dos Santos |
title |
Framework PON C++ 4.0: contribuição para a concepção de aplicações no paradigma orientado a notificações por meio de programação genérica |
title_short |
Framework PON C++ 4.0: contribuição para a concepção de aplicações no paradigma orientado a notificações por meio de programação genérica |
title_full |
Framework PON C++ 4.0: contribuição para a concepção de aplicações no paradigma orientado a notificações por meio de programação genérica |
title_fullStr |
Framework PON C++ 4.0: contribuição para a concepção de aplicações no paradigma orientado a notificações por meio de programação genérica |
title_full_unstemmed |
Framework PON C++ 4.0: contribuição para a concepção de aplicações no paradigma orientado a notificações por meio de programação genérica |
title_sort |
framework pon c++ 4.0: contribuição para a concepção de aplicações no paradigma orientado a notificações por meio de programação genérica |
publisher |
Universidade Tecnológica Federal do Paraná |
publishDate |
2021 |
citation |
NEVES, Felipe dos Santos. Framework PON C++ 4.0: contribuição para a concepção de aplicações no paradigma orientado a notificações por meio de programação genérica. 2021. Dissertação (Mestrado em Computação Aplicada) - Universidade Tecnológica Federal do Paraná, Curitiba, 2021. |
url |
http://repositorio.utfpr.edu.br/jspui/handle/1/26270 |
_version_ |
1805315368863924224 |
score |
10,814766 |