Unification of Programming Languages, A Step Towards Visual Programming

##plugins.themes.academic_pro.article.main##

Ashfaq Ahmad
Muhammad Idrees
Muhammad Arif Butt

Abstract




Almost every modern high-level programming language includes primitives and user-defined data types, constructs for iterations, selections, functions, structures, and class definitions, handling exceptions, etc. Such a construct provides similar functionality across multiple languages but may slightly differ syntactically. Similarly, libraries are also available in every language, providing similar functionalities but with different names. For programmers, it is hard to learn the syntax and remember the names of library functions of each of the existing programming languages. Hence, in large, a programmer has expertise in a small subset of programming languages. In this research, we are proposing a Unified Programming Language (UPL) whose syntax is inspired by the programming languages commonly used nowadays. The proposed UPL may have its compiler or may accompany a transpiler to translate UPL code to any of the existing high-level programming languages like C/C++, Java, Python, etc. It will make the life of programmers easier as they have to learn and adopt only a single programming language. The UPL may become the baseline of development of some Visual Programming Languages (VPL). Unification may lead to some consequences, which need to be identified and addressed.




 

 

##plugins.themes.academic_pro.article.details##

Author Biographies

Ashfaq Ahmad, 1Department of Computer Science, College of Computer Science and Information Technology, Jazan University, Saudi Arabia

Ashfaq Ahmad is currently a senior faculty member in the Department of Computer Science, College of CS and IT at Jazan University (JU) – Saudi Arabia. Before his recent appointment at the JU, he served PUCIT at Punjab University (PU) – Pakistan as an Assistant Professor. Dr. Ahmad received his Postgraduate Diploma (computer science) as well as his M.Sc. (computer science) degree from PU, his M.S. (computer science) degree from GC University, Lahore – Pakistan, and his Ph.D. (information technology) from IIUM – Malaysia. He has research interests in the semantic web, knowledge management, computer programming, algorithms, and machine learning. Dr. Ahmad has published several research papers in prestigious journals.

Muhammad Idrees, Department of Data Science, University of the Punjab, Lahore, Pakistan

Dr. Muhammad Idrees is serving the Department of Data Science (DDS), University of the Punjab, Lahore, Pakistan as Assistant Professor from 30-March-2021. Previously he served the Punjab University College of Information Technology (PUCIT) from 2008 as a regular Faculty Member and from 1994 as visiting/contact teacher in the computing-related domain. Dr. Idrees completed his Ph.D. degree in the area of Visual Programming Languages. Prior to that has two master's degrees in Physics and Computer Science, M.Phil. degree in Computer Science, Post Graduate Diploma in Computer Science, and Professional certifications from Oracle. He has received all the Computer Science degrees with distinctions. He started his professional career in Computer Science and Information Technology as a programmer and left the IT industry in 2008 to join Academia. While working in the IT industry he enjoyed top positions in various software houses and successfully concluded dozens of local and international software development projects. During this period, he provided consultancy services to the local IT industry and continuously engaged himself in teaching software development-related courses at his alma mater, the University of the Punjab. His core research interests include data structure and algorithms, and computer programming. He is also conducting research in the areas of visual programming, autonomous robots, internet of things (IoT), image processing, and computer vision. He can be accessible at the following email address.

Muhammad Arif Butt, Department of Data Science, University of the Punjab, Lahore, Pakistan

Dr. Muhammad Arif Butt is an Assistant Professor at the Department of Data Science, University of the Punjab (PU), Lahore, Pakistan. He received his MSc and MPhil degrees both with a Gold Medal from PUCIT, University of the Punjab. Dr. Butt also earned his Ph.D. in Computer Science from the same University. His research focuses on applying fuzzy inference models in operating, embedded, and cloud-based systems/services, where decision-making is involved under imprecise and vague parameters. His teaching interests are data science, embedded/real-time operating systems, system programming, and system modeling. His management and teaching experience span over 33 years in various setups of the Pakistan Army and at the University of the Punjab, Lahore, Pakistan. He is a detail-oriented, multi-tasker with strong organizational skills, is a tactful team player, thrives within-group environment, and enjoys a pleasant personality.

How to Cite
Ahmad, A., Idrees, M., & Butt, M. A. (2021). Unification of Programming Languages, A Step Towards Visual Programming. International Journal of Next-Generation Computing, 12(4). Retrieved from http://ijngc.perpetualinnovation.net/index.php/ijngc/article/view/388

References

  1. Arnold, K., Gosling, J., & Holmes, D. (David C. (2006). The Java programming language. 891.
  2. Bell, C. G., & Newell, A. C. (1971). Computer Structures: Readings and Examples (McGraw-Hill Computer Science Series).
  3. Borkar, S., Mulder, H., & Bv, M. (2014). Platform 2015: Intel processor and platform evolution for the next decade A 280mV-to-1.2V wide-operating-range IA-32 processor in 32nm CMOS View project T2S-Tensor View project. https://www.researchgate.net/publication/247190040
  4. Box, D., & Sells, Chris. (2003). Essential .NET: the common language runtime.
  5. Cass, S. (2016). The 2016 Top Programming Languages. IEEE Spectrum. https://spectrum.ieee.org/computing/software/the-2016-top-programming-languages
  6. Dahl, O.-J., & Nygaard, K. (1966). SIMULA: an ALGOL-based simulation language. Communications of the ACM, 9(9), 671–678. https://doi.org/10.1145/365813.365819
  7. D’Souza, D. Francis., & Wills, A. Cameron. (1999). Objects, components, and frameworks with UML: the catalysis approach. 785.
  8. Gutwenger, C., Kupke, J., Jünger, M., Leipert, S., Klein, K., & Mutzel, P. (2003). A New Approach for Visualizing UML Class Diagrams. Proceedings of ACM Symposium on Software Visualization, 179–188. https://doi.org/10.1145/774833.774859
  9. Hejlsberg, Anders., Wiltamuth, Scott., & Golde, Peter. (2006). The C♯ programming language. 704.
  10. Huynh, J. (2003). The AMD AthlonTM XP Processor with 512KB L2 Cache Technology and Performance Leadership for x86 Microprocessors.
  11. index | TIOBE - The Software Quality Company. (n.d.). Retrieved July 29, 2021, from https://www.tiobe.com/tiobe-index/
  12. Kennedy, A., & Syme, D. (2001). Design and implementation of generics for the .NET Common language runtime. ACM SIGPLAN Notices, 36(5), 1–12.
  13. Kristensen, B. B., Madsen, O. L., Møller-Pedersen, B., & Nygaard, K. (1987). The BETA Programming Language. DAIMI Report Series, 16(229). https://doi.org/10.7146/DPB.V16I229.7578
  14. Lampson, B. W. (1965). Interactive machine language programming. AFIPS Conference Proceedings - 1965 Fall Joint Computer Conference, AFIPS 1965, 473–481.
  15. Lattner, C., & Adve, V. (2004). The LLVM Compiler Framework and Infrastructure Tutorial. Lecture Notes in Computer Science, 3602, 15–16. https://doi.org/10.1007/11532378_2
  16. Li, Liwu. (1998). Java Virtual Machine. In Java: Data Structures and Programming (pp. 165–200). Springer Berlin Heidelberg.
  17. Lindholm, E., Nickolls, J., Oberman, S., & Montrym, J. (2008). NVIDIA Tesla: A unified graphics and computing architecture. IEEE Micro, 28(2), 39–55. https://doi.org/10.1109/MM.2008.31
  18. Madsen, O. L. (2000). Towards a unified programming language. Lecture Notes in Computer Science (Including Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 1850, 1–26. https://doi.org/10.1007/3-540-45102-1_1
  19. McCracken, D. D. (1976). A simplified guide to structured COBOL programming. 389.
  20. Montelatici, R., Chailloux, E., & Pagano, B. (2005). NET: The OCamIL Compiler and Toplevel. In Objective Caml on. www.cl.cam.ac.uk/Research/TSG/SMLNET/
  21. O’Grady, S. (2017). The RedMonk Programming Language Rankings: January 2017 – tecosystems. https://redmonk.com/sogrady/2017/03/17/language-rankings-1-17/
  22. Parr, T. (2013). The Definite ANTLR 4 Reference. The Pragmatic Programmers, 305.
  23. PYPL PopularitY of Programming Language index. (n.d.). Retrieved July 29, 2021, from https://pypl.github.io/PYPL.html
  24. Quinlan, D., & Liao, C. (2011). The ROSE Source-to-Source Compiler Infrastructure - Cetus. Cetus Users and Compiler Infrastructure Workshop, in Conjunction with PACT. https://www.yumpu.com/en/document/view/6361499/the-rose-source-to-source-compiler-infrastructure-cetus
  25. Rumbaugh, James., Jacobson, Ivar., & Booch, Grady. (2005). The unified modeling language reference manual. 721.
  26. Sierra, Kathy., & Bates, Bert. (2006). SCJP Sun certified programmer for Java 5 study guide (Exam 310-055). McGraw-Hill/Osborne.
  27. Singer, J. (2003). JVM versus CLR: A Comparative Study. 2nd International Conference on Principles and Practice of Programming in Java. http://sourceforge.net/projects/egcs-jvm/.
  28. Stärk, R. F., Schmid, Joachim., & Börger, Egon. (2001). Java and the Java Virtual Machine : Definition, Verification, Validation. 392.
  29. Stroustrup, B. (2013). The C++ Prorgamming Language.
  30. Tanenbaum, A. S., & Austin, Todd. (2013). Structured computer organization. 775.
  31. US Census Bureau, C. H. S. P. (n.d.). UNIVAC I - History - U.S. Census Bureau.
  32. wikipedia. (n.d.). Source-to-source compiler. Retrieved July 29, 2021, from https://en.wikipedia.org/wiki/Source-to-source_compiler
  33. Wirth, N. (1971). The programming language pascal. Acta Informatica 1971 1:1, 1(1), 35–63. https://doi.org/10.1007/BF00264291
  34. Zhao, H., Proctor, I., Yang, M., Qi, X., Williams, M., Gao, Q., Ottoni, G., Paroski, A., MacVicar, S., Evans, J., & Tu, S. (2012). The hiphop compiler for PHP. Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA, 575–580. https://doi.org/10.1145/2384616.2384658