NOPL - Improvements in the Language and its Compiler for the Notification Oriented Paradigm
DOI:
https://doi.org/10.22456/2175-2745.145795Keywords:
decoupled systems, notification-oriented paradigm, programming languages, software performanceAbstract
The Notification Oriented Paradigm (NOP) is a new model for computer programming. NOP uses evolutions of Declarative Paradigm (DP) concepts, such as reactive notifying entities called Fact-Base Elements (FBEs) and Rules, enabling a new approach regarding the factual and logic-causal processing or inference. Each entity notifies other related entities only when there is a change on its states, suppressing temporal and structural redundancy on generated code. Thus, the NOP approach tends to be more efficient and decoupled when compared to Imperative Paradigm (IP) and usual DP. To validate the features of NOP, a language and a compiler composition system was built, allowing the demonstration of the paradigm concepts, as well as the generation of efficient applications. Moreover, that compilation system performs a translation of high-level NOP Language code into a notification-oriented code. This notification code is generated by the compiler in target languages such as C and C++. This generated code can then be itself compiled, allowing NOP to be executed on any architectures that have a part of the G++ compiler. This paper first presents de NOP Language and its Compiler, elaborate with such system, and then introduces the generator of Static C++ target code to improve the performance of execution of the generated code. Experiments confirm that, by using the proposed Static Compiler for NOP, the execution time of NOP generated code is reduced by 53% in relation to a previous version NOP Compiler code generator.
Downloads
References
[1] RONSZCKA, A. F. et al. Notification-oriented paradigm framework 2.0: An implementation based on design patterns. IEEE Latin America Transactions, v. 15, p. 2220–2231, 2017.
[2] KAISLER, S. H. Software Paradigms. 1st. ed. [S.l.]: John Wiley & Sons, 2005. 440 p. ISBN 978-0-471-48347-2.
[3] ROY, P. V.; HARIDI, S. Concepts, Techniques, and Models of Computer Programming. Cambridge, MA, USA: MIT Press, 2004.
[4] ROY, P. V. Programming paradigms for dummies: What every programmer should know. In: New computational paradigms for computer music. France: IRCAM/Delatour France, 2009. p. 198. ISBN 978-2752100542.
[5] GABBRIELLI, M.; MARTINI, S. Programming Languages: Principles and Paradigms. 1st. ed. Springer-Verlag London, 2010. 440 p. ISSN 1863-7310. ISBN 978-1-84882-913-8. Disponível em: ⟨http://link.springer.com/10.1007/978-1-84882-914-5⟩.
[6] SIMÃO, J. M. et al. Notification oriented paradigm (NOP) and imperative paradigm: A comparative study. Journal of Software Engineering and Applications, v. 05, p. 402–416, 2012. ISSN 1945-3116. Disponível em: ⟨http://search.proquest.com/docview/1024420637?accountid=10344⟩.
[7] RONSZCKA, A. F. et al. Notification-oriented and rete network inference: A comparative study. In: Proceedings - 2015 IEEE International Conference on Systems, Man, and Cybernetics, SMC 2015. [S.l.]: IEEE, 2015. p. 807–814. ISBN 9781479986965.
[8] RONSZCKA, A. F. Método para a Criação de Linguagens de Programação e Compiladores para o Paradigma Orientado a Notificações em Plataformas Distintas. Tese (Doutorado) — Pós-Graduação em Engenharia Elétrica e Informática Industrial (CPGEI/UTFPR), Curitiba/PR, Brasil, 2019.
[9] BROOKSHEAR, J. G.; BRYLOW, D. Computer Science: An overview. [S.l.]: Pearson, 2014. 640 p. ISBN 978-0133760064.
[10] OSHIRO, L. K. et al. Linguagem e compilador para o paradigma orientado a notificações: Uma solução performante orientada a regras. In: 12a Escola Regional de Alto Desempenho de São Paulo. [S.l.: s.n.], 2021.
[11] SIMÃO, J. M.; STADZISZ, P. C. Inference based on notifications: A holonic metamodel applied to control issues. IEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans, v. 39, p. 238–250, 1 2009. ISSN 1083-4427. Disponível em: ⟨http://ieeexplore.ieee.org/document/4689369/⟩.
[12] SIMÃO, J. M.; STADZISZ, P. C. Paradigma Orientado a Notificações (PON) Uma Técnica de Composição e Execução de Software Orientada a Notificações. 2023. Demanda de Patente INPI/Brasil (Instituto Nacional de Propriedade Industrial) - Número: PI08055181, Submissão: 11/26/2008, Finalização: 08/31/2023, considerada pertinente, mas abstrata.
[13] LINHARES, R. R.; SIMÃO, J. M.; STADZISZ, P. C. Noca: A notification-oriented computer architecture. IEEE Latin America Transactions, v. 13, p. 1593–1604, 2015. ISSN 1548-0992.
[14] SIMÃO, J. M. et al. Método de Materialização do Paradigma Orientado a Notificações. 2012. 13 p. Granted Patent at INPI/Brasil (Instituto Nacional de Propriedade Industrial) - Número: PI 102012026429-3. Submissão: 10/16/2012, Publicação: 07/28/2015, Expedição: 04/05/2022.
[15] MALL, D. A case study in optimization. In: International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings. IEEE Comput. Soc, 2003. p. 214–223. ISBN 0-7695-1905-9. Disponível em:⟨http://ieeexplore.ieee.org/document/1235424/⟩.
[16] AO, J. M. S. A Contribution to the Development of a HMS Simulation Tool and Proposition of a Meta-Model for Holonic Control. 168 p. Tese (Doutorado) — CPGEI at UTFPR, Curitiba, PR, Brazil and CRAN at UHP, France, 2005.
[17] RONSZCKA, A. F. Contribuição para a concepção de aplicações no paradigma orientado a notificações (PON) sob o viés de padrões. 236 p. Dissertação (Mestrado) — Programa de Pós-Graduação em Engenharia Elétrica e Informática Industrial (CPGEI/UTFPR), Curitiba-PR, Brasil, 2012.
[18] VALENÇA, G. Z. Contribuição para a materialização do paradigma orientado a notificações (PON) via framework e wizard. 205 p. Dissertação (Mestrado) — Programa de Pós-Graduação em Computação Aplicada (PPGCA/UTFPR), Curitiba-PR, Brasil, 2012.
[19] PORDEUS, L. F. et al. Notification oriented paradigm to digital hardware. Sodebras, v. 11, p. 116–122, 2016.
[20] SIMÃO, J. M. et al. Notification oriented and object oriented paradigms comparison via sale system. Journal of Software Engineering and Applications, v. 05, p. 695–710, 2012. ISSN 1945-3116. Disponível em: ⟨http://www.scirp.org/journal/doi.aspx?DOI=10.4236/jsea.2012.59083⟩.
[21] KERSCHBAUMER, R. et al. The notification oriented paradigm language to digital hardware as an intuitive high-level synthesis tool. Revista de Informática Teórica e Aplicada (RITA), v. 28, p. 90–106, 2021.
[22] MARTINI, G. H. K. et al. Multi-threading capability evaluation of the notification oriented programming language for the x86 architecture. In: 11th International Conference on Information Society and Technology - ICIST. [S.l.]: Belgrade, Serbia: ICIST 2021 Proceedings, 2021. v. 1, p. 44–49.
[23] NEVES, F. S.; SIMÃO, J. M.; LINHARES, R. R. Application of generic programming for the development of a C++ framework for the notification oriented paradigm. In: 11th International Conference on Information Society and Technology - ICIST. [S.l.]: Belgrade, Serbia: ICIST 2021 Proceedings, 2021. v. 1, p. 56–61.
[24] LINHARES, R. R. et al. Noca - a notification-oriented computer architecture: Prototype and simulator. IEEE Access, v. 8, p. 37287–37304, 2020.
[25] BELMONTE, D. L. et al. A new method for dynamic balancing of workload and scalability in multicore systems. IEEE Latin America Transactions, v. 14, p. 3335–3344, 7 2016. ISSN 1548-0992. Disponível em: ⟨http://ieeexplore.ieee.org/document/7587639/⟩.
[26] LINHARES, R. R. Contribuição para o desenvolvimento de uma arquitetura de computação própria ao paradigma orientado a notificações. 354 p. Tese (Doutorado) — Programa de Pós-Graduação em Engenharia Elétrica e Informática Industrial (CPGEI/UTFPR), Curitiba-PR, Brasil, 2015.
[27] SIMÃO, J. M.; STADZISZ, P. C. Mecanismo de Resolução de Conflito e Garantia de Determinismo para o Paradigma Orientado a Notificações (PON). 2010. Granted Patent at INPI/Brasil (Instituto Nacional de Propriedade Industrial) - Número: PI 1000296-0. Submissão: 26/02/2010, Publicação: 10/18/2011, Expedição: 04/05/2022.
[28] FERREIRA, C. A. Linguagem e compilador para o Paradigma Orientado a Notificações (PON): avanços e comparações. 266 p. Dissertação (Mestrado) — Programa de Pós-Graduação em Engenharia Elétrica e Informática Industrial (CPGEI/UTFPR), Curitiba-PR, Brasil, 2015.
[29] PORDEUS, L. F. Contribuição para o desenvolvimento de uma arquitetura de computação própria ao paradigma orientado a notificações. 365 p. Dissertação (Mestrado) — Programa de Pós-Graduação em Engenharia Elétrica e Informática Industrial (CPGEI/UTFPR), Curitiba-PR, Brasil, 2017.
[30] RONSZCKA, A. F. et al. Notification-oriented programming language and compiler. In: 2017 VII Brazilian Symposium on Computing Systems Engineering (SBESC). IEEE, 2017. p. 125–131. ISBN 978-1-5386-3590-2. Disponível em: ⟨http://ieeexplore.ieee.org/document/8116569/⟩.
[31] HANZEN, A. F. Portabilidade do framework PON de C++ standard para C# e Java. Relatório de Disciplina, 2015.
[32] SANTOS, L. A. Linguagem e Compilador para o Paradigma Orientado a Notificações: Avanços para Facilitar a Codificação e sua Validação em uma Aplicação de Controle de Futebol de Robôs. 246 p. Dissertação (Mestrado) — Programa de Pós-Graduação em Engenharia Elétrica e Informática Industrial (CPGEI/UTFPR), Curitiba-PR, Brasil, 2017.
[33] BARRETO, W. R. M.; VENDRAMI, A. C. B. K.; SIMÃO, J. M. Notification oriented paradigm for distributed systems. In: Anais do Computer on the Beach. Florianópolis/SC: UNIVALI, 2018.
[34] OLIVEIRA, R. N. et al. Notification oriented paradigm applied to ambient assisted living tool. IEEE Latin America Transactions, v. 16, p. 7, 2018.
[35] BANASZEWSKI, R. F. Paradigma Orientado a Notificações: Avanços e Comparações. 263 p. Dissertação (Mestrado) — Programa de Pós-Graduação em Engenharia Elétrica e Informática Industrial (CPGEI/UTFPR), Curitiba-PR, Brasil, 2009.
[36] NEVES, F. dos S. 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. Dissertação (Mestrado) — PPGCA - Programa de Pós-Graduação em Computação Aplicada/UTFPR - Universidade Tecnológica Federal do Paraná, Curitiba-PR, Brasil, 2021.
[37] NEVES, F. dos S.; SIMÃO, J. M.; LINHARES, R. R. Application of generic programming for the development of a C++ framework for the notification oriented paradigm. In: 11th International Conference on Information Society and Technology (ICIST). Kopaonik, Serbia, 2021.
[38] SIMÃO, J. M. et al. Repositório LingPON 1.0. 2025. Disponível em: ⟨https://nop.dainf.ct.utfpr.edu.br/nop-public/nop-implementations/nopl-technology/nop-technology-1_0-kernel⟩.
[39] SIMÃO, J. M. et al. Repositório LingPON 1.2. 2025. Disponível em: ⟨https://nop.dainf.ct.utfpr.edu.br/nop-public/nop-implementations/nopl-technology/nopl_technology-1_2-kernel⟩.
[40] SANTOS, L. A.; SIMÃO, J. M.; FABRO, J. A. Linguagem e compilador para o paradigma orientado a notificações: avanços para a redução de complexidade de código. In: VII Simpósio Brasileiro de Engenharia de Sistemas Computacionais - SBESC 2017. [S.l.]: UFSC, 2017. p. 7.
[41] AHO, A. V. et al. Compilers: Principles, Techniques & Tools. 2nd. ed. [S.l.]: Addison-Wesley Publishing Company, 2006. 1000 p. ISBN 978-0321486813.
[42] GRUNE, D. et al. Modern Compiler Design. 2nd. ed. [S.l.]: Springer, 2012. 822 p. ISBN 978-1461446989.
[43] VALENÇA, G. Z. et al. Framework PON, avanços e comparações. In: III Simpósio de Computação Aplicada. Passo Fundo/RS: Universidade de Passo Fundo, 2011.
[44] GUNTHEROTH, K. Optimized C++: Proven Techniques for Heightened Performance. 1st ed. California: O’Reilly Media, Inc., 2016. 288 p. ISBN 978-1491922064.
[45] WADLEIGH, K. R.; CRAWFORD, I. L. Software Optimization for High Performance Computing: Creating Faster Applications. 1st ed. NJ, United States: Prentice Hall, 2000. 377 p. ISBN 978-0130170088.
[46] FREE SOFTWARE FOUNDATION, INC. Options that control optimization. Using the GNU Compiler Collection (GCC), 2018. Disponível em: ⟨https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html⟩.
Downloads
Published
How to Cite
Issue
Section
License
Copyright (c) 2025 Fernando Schütz, Adriano Francisco Ronszcka, João Alberto Fabro, Jean Marcelo Simão

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
Autorizo aos editores a publicação de meu artigo, caso seja aceito, em meio eletrônico de acordo com as regras do Public Knowledge Project.Accepted 2025-06-07
Published 2025-08-15













