BALL-MAZE BLOCK DIAGRAM FOR CONCURRENT PROGRAMMING

Authors

  • Eik Fun Khor Institute of Technical Education, College West, 1 Choa Chu Kang Grove, Singapore. Author

Keywords:

Concurrent Programming, Code Development, Computer Science, Graphical Representation

Abstract

Knowing that flowchart and pseudocode have their own strengths and weaknesses for explicit concurrency, this paper extends the Ball-Maze block diagram, previously developed for sequential program, to combine the advantages of the two for concurrent programming in the context where multiple process can start, run and end in overlapping time periods. The objective of this paper is not to design OS or RTOS but to work on diagramming tools on the program logic as a way to graphically describe the explicit program concurrency and systematically generate source code to meet multitasking requirements. The generated code is suitable to be executed on single processor/controller where third-party OS, RTOS or compilers to support program concurrency is not required. Concurrent version of Ball-Maze block diagram is introduced and practical example is presented to demonstrate its application to represent concurrent flow of the program using new elements such as fork, join and switch, wait blocks etc. Finally, simple and systematic approach of code construction from the Ball-Maze block diagram is demonstrated. It is shown that the generated code is in standard and easy-to-implement structure

References

G.R. Andrews, and F.B. Schneider, Concepts and Notations for Concurrent Programming, ACM Computing Surveys, 15(10), 1983, 3-43.

M. Ben-Ari, Principles of concurrent programming (Prentice Hall International, 1982).

D.W. Bustard, J.W.G. Elder, and J. Welsh, Concurrent program structures (Prentice Hall International, 1988).

A. Schiper, Concurrent programming (Halsted Press; John Wiley & Sons Inc, 1989).

D. Whiddett, Concurrent programming for software engineers (Chichester. Ellis Horwood, 1987).

H.M. Deitel, An introduction to operating systems (Reading, Mass: Addison-Wesley, 1984).

A.N. Habermann, Introduction to operating system design (Science Research Associates, Inc, 1976).

A.M. Lister, Fundamental of operating systems (3rd Edition, Springer-Verlag, 1984).

D.W. Bustard, Concepts of concurrent programming (Curriculum Module in Carnegie Mellon University SEI-CM-24, 1990).

A. Sutcliffe, Jackson system development (Prentice Hall International, 1988).

H.E. Bal, J.G. Steiner, and A.S. Tanenbaum, Programming Languages for Distributed Computing Systems, ACM Computing Surveys 21, 3, 1989, 261-322.

Arduino.cc, source from https://www.arduino.cc/ (accessed on 24th Jun 2024).

PSoC, source from https://www.infineon.com/cms/en/ product/microcontroller (accessed on 24th Jun 2024).

Microchip, PIC Microcontrollers, source from http://www.microchip.com/ design-centers/microcontrollers (accessed on 24th Jun 2024).

A.F. Blackwell, K.N. Whitley, J. Good, and M. Petre, Cognitive Factors in Programming with Diagrams, Artificial Intelligence Review, 15(1), 2001, 95-114.

I.E. Sutherland, Sketchpad: A man-machine graphical communication system, Proceedings of the Spring Joint computer Conference, 1963, 329–346.

W.R. Sutherland, On-line graphical specification of computer procedures (Massachusetts Institute of Technology, Dept. of Electrical Engineering, Ph.D Thesis, 1966).

LabVIEW, source from http://https://www.ni.com/en/shop/labview.html (accessed on 10th Jun 2024).

Scratch, source from https://scratch.mit.edu (accessed on 10th Jun 2024).

Unified Modeling Language (UML), source from www.uml-diagrams.org (accessed on 8th Jun 2024).

A.V. Aho, R. Sethi, and J.D. Ullman, Compilers, principles, techniques (Addison-Wesley, 7(8:9), 1986).

F.E. Allen, Control flow analysis, ACM Sigplan Notices, 5, 1970, 1–19.

R. Farrow, K. Kennedy, and L. Zucconi, Graph Grammars and Global Program Data Flow Analysis, 17th Annual Symposium on Foundations of Computer Science, IEEE, 1976, 42–56.

C.W. Fraser, and D.R. Hanson, A retargetable C compiler: design and implementation (Addison-Wesley Longman Publishing Co., Inc, 1995).

T. Long, Y. Xie, X . Chen, W. Zhang, Q. Cao, and Y. Yu, Multi-View Graph Representation for Programming Language Processing: An Investigation into Algorithm Detection, Proceedings of the AAAI Conference on Artificial Intelligence, 36(5), 2022, 5792-5799.

S. Muchnick, Advanced compiler design and implementation (Morgan Kaufmann, 1997).

A.B. Chaudhuri, Flowchart and algorithm basics - the art of programming (Mercury Learning and Information, 2020).

New World Encyclopaedia, ‘Flowchart’, source from http://www.newworldencyclopedia.org/entry/ Flowchart (accessed on 24th Jun 2024).

E.F. Khor, Ball-Maze Block Diagram for Visualizing Logic Flow and Standardizing Code Structure, International Journal of Engineering and Computer Science, 13(6), 2024, 26219 - 26228.

E.F. Khor, Coding for multitasking without operating system: a method using simple code structure (CreateSpace Independent Publishing Platform, 2017).

Downloads

Published

2024-07-06