A Game Comparative Study: Object-Oriented Paradigm and Notification-Oriented Paradigm

This paper presents a new programming paradigm named Notification-Oriented Paradigm (NOP) and analyses the performance aspects of NOP programs by means of an experiment. NOP provides a new manner to conceive, structure, and execute software, which would allow better performance, causal-knowledge organization, and decoupling than standard solutions based upon usual paradigms. These paradigms are essentially Imperative Paradigm (IP) and Declarative Paradigm (DP). In short, DP solutions are considered easier to use than IP solutions due to the concept of high-level programming. However, they are considered slower in execution and less flexible in development. Anyway, both paradigms present similar drawbacks such as redundant causal-evaluation and strongly coupled entities, which decrease the software performance and the processing distribution feasibility. These problems exist due to an orientation to a monolithic inference mechanism based upon sequential evaluation by searching on passive computational entities. NOP proposes another way to structure software and make its inferences, which is based upon small, collaborative, and decoupled computational entities whose interaction happens through precise notifications. In this context, this paper presents a quantitative comparison between two equivalent implementations of a computer game simulator (Pacman simulator), one developed according to the principles of Object-Oriented Paradigm (OOP/IP) in C++ and other developed according to the principles of NOP. The results obtained from the experiments demonstrate, however, a quite lower performance of NOP implementation. This happened because NOP applications are still developed using a framework based on C++. Besides, the paper shows that optimizations in the NOP framework improve NOP program performance, thereby evidencing the necessity of developing a NOP language/compiler.

[1]  E. Feigenbaum Expert Systems : Principles and Practice * , 1992 .

[2]  Cameron Hughes,et al.  Parallel and distributed programming using C , 2003 .

[3]  William A. Gruver Distributed Intelligence Systems: A New Paradigm for Systems Integration , 2007, 2007 IEEE International Conference on Information Reuse and Integration.

[4]  Charles L. Forgy,et al.  Rete: a fast algorithm for the many pattern/many object pattern match problem , 1991 .

[5]  Gregory R. Watson,et al.  An integrated approach to improving the parallel application development process , 2009, 2009 IEEE International Symposium on Parallel & Distributed Processing.

[6]  Michael L. Scott,et al.  Programming Language Pragmatics , 1999 .

[7]  Daniel P. Miranker,et al.  On the Performance of Lazy Matching in Production Systems , 1990, AAAI.

[8]  Ted Faison,et al.  Event-Based Programming: Taking Events to the Limit , 2006 .

[9]  Stephen H. Kaisler,et al.  Software paradigms , 2005 .

[10]  J. Glenn Brookshear Computer Science: An Overview , 1985 .

[11]  Cédric Meuter,et al.  dSL: An Environment with Automatic Code Distribution for Industrial Control Systems , 2003, OPODIS.

[12]  Sharon M. Tuttle,et al.  Suggesting causes of faults in data-driven rule-based systems , 1992, Proceedings Fourth International Conference on Tools with Artificial Intelligence TAI '92.

[13]  Albert Mo Kim Cheng,et al.  Shortening matching time in OPS5 production systems , 2004, IEEE Transactions on Software Engineering.

[14]  Suely Oliveira,et al.  Writing Scientific Software: Tools , 2006 .

[15]  José M. Troya,et al.  A component-based nuclear power plant simulator kernel: Research Articles , 2007 .

[16]  Robert W. Keyes,et al.  The Impact of Moore's Law , 2006, IEEE Solid-State Circuits Newsletter.

[17]  Huaglory Tianfield,et al.  A new framework of holonic self-organization for multi-agent systems , 2007, 2007 IEEE International Conference on Systems, Man and Cybernetics.

[18]  Peter Norvig,et al.  Artificial Intelligence: A Modern Approach , 1995 .

[19]  Wayne H. Wolf High-Performance Embedded Computing , 2007 .

[20]  Paulo Cézar Stadzisz,et al.  Inference Based on Notifications: A Holonic Metamodel Applied to Control Issues , 2009, IEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans.

[21]  José M. García,et al.  Using AOP to Automatically Provide Distribution, Fault Tolerance, and Load Balancing to the CORBA-LC Component Model , 2007, PARCO.

[22]  Daniel P. Miranker TREAT: a better match algorithm for AI production systems , 1987, AAAI 1987.

[23]  Jean Paul Haton,et al.  Expert systems : principles and practice , 1988 .

[24]  A. Pnueli,et al.  STATEMATE: a working environment for the development of complex reactive systems , 1988, [1988] Proceedings. The Third Israel Conference on Computer Systems and Software Engineering.

[25]  Daniel P. Miranker,et al.  The Organization and Performance of a TREAT-Based Production System Compiler , 1991, IEEE Trans. Knowl. Data Eng..

[26]  Yannis Smaragdakis,et al.  J-Orchestra: Automatic Java Application Partitioning , 2002, ECOOP.

[27]  Seng Wai Loke,et al.  Context-aware pervasive systems - architectures for a new breed of applications , 2019 .

[28]  George Coulouris,et al.  Distributed systems - concepts and design , 1988 .

[29]  Peter Van Roy,et al.  Concepts, Techniques, and Models of Computer Programming , 2004 .

[30]  Albert Mo Kim Cheng,et al.  HAL: A Faster Match Algorithm , 2002, IEEE Trans. Knowl. Data Eng..

[31]  Wayne Wolf High-Performance Embedded Computing: Architectures, Applications, and Methodologies , 2006 .

[32]  Suhail Ahmed CORBA Programming Unleashed , 1998 .

[33]  S. M. Deen,et al.  Agent-Based Manufacturing , 2003, Advanced Information Processing.

[34]  Jean Marcelo Simão,et al.  A Contribution to the Development of a HMS Simulation Tool and Proposition of a Meta-Model for Holonic Control. (Contribution au Développement d'un Outil de Simulation de Systèmes Holoniques de Production et Proposition d'un Meta-Modèle de Contrôle Holonique) , 2005 .

[35]  S. M. Deen,et al.  Agent Based Manufacturing , 2003 .

[36]  F. Knorn Topics in Cooperative Control , 2011 .

[37]  David A. Watt,et al.  Programming language design concepts , 2004 .

[38]  Allen B. Tucker Programming Languages: Principles and Paradigms , 2001 .

[39]  Andrew S. Tanenbaum,et al.  Distributed systems: Principles and Paradigms , 2001 .

[40]  Ian Sommerville,et al.  Software Engineering (7th Edition) , 2004 .

[41]  Celso Massaki Hirata,et al.  RUP Extension For the Software Performance , 2008, 2008 32nd Annual IEEE International Computer Software and Applications Conference.

[42]  Andrew Sohn,et al.  Data-Driven Parallel Production Systems , 1990, IEEE Trans. Software Eng..

[43]  Naomi Ehrich Leonard,et al.  Cooperative control : a post-workshop volume : 2003 Block Island workshop on cooperative control , 2005 .

[44]  Cesar Augusto Tacla,et al.  Holonic Control Metamodel , 2009, IEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans.

[45]  Maurice Herlihy,et al.  The art of multiprocessor programming , 2020, PODC '06.

[46]  Cesar Augusto Tacla,et al.  Notification Oriented Paradigm (NOP) and Imperative Paradigm: A Comparative Study , 2012 .

[47]  Maurizio Gabbrielli,et al.  Programming Languages: Principles and Paradigms , 2010, Undergraduate Topics in Computer Science.

[48]  Eric S. Raymond,et al.  The Art of Unix Programming , 2003 .

[49]  John A. Chandy,et al.  The Paradigm Compiler for Distributed-Memory Multicomputers , 1995, Computer.

[50]  Paulo Cézar Stadzisz,et al.  Application of the Independence Axiom on the Design of Object-Oriented Software using the Axiomatic Design Theory , 2006, Trans. SDPS.

[51]  Jeng-Rung Chen,et al.  Response Time Analysis of OPS5 Production Systems , 2000, IEEE Trans. Knowl. Data Eng..

[52]  David Reilly,et al.  Java¿ Network Programming and Distributed Computing , 2002 .

[53]  José M. Troya,et al.  A component‐based nuclear power plant simulator kernel , 2007, Concurr. Comput. Pract. Exp..