Unification of Programming Languages, A Step Towards Visual Programming
##plugins.themes.academic_pro.article.main##
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##
This work is licensed under a Creative Commons Attribution 4.0 International License.
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
- Arnold, K., Gosling, J., & Holmes, D. (David C. (2006). The Java programming language. 891.
- Bell, C. G., & Newell, A. C. (1971). Computer Structures: Readings and Examples (McGraw-Hill Computer Science Series).
- 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
- Box, D., & Sells, Chris. (2003). Essential .NET: the common language runtime.
- Cass, S. (2016). The 2016 Top Programming Languages. IEEE Spectrum. https://spectrum.ieee.org/computing/software/the-2016-top-programming-languages
- 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
- D’Souza, D. Francis., & Wills, A. Cameron. (1999). Objects, components, and frameworks with UML: the catalysis approach. 785.
- 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
- Hejlsberg, Anders., Wiltamuth, Scott., & Golde, Peter. (2006). The C♯ programming language. 704.
- Huynh, J. (2003). The AMD AthlonTM XP Processor with 512KB L2 Cache Technology and Performance Leadership for x86 Microprocessors.
- index | TIOBE - The Software Quality Company. (n.d.). Retrieved July 29, 2021, from https://www.tiobe.com/tiobe-index/
- Kennedy, A., & Syme, D. (2001). Design and implementation of generics for the .NET Common language runtime. ACM SIGPLAN Notices, 36(5), 1–12.
- 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
- Lampson, B. W. (1965). Interactive machine language programming. AFIPS Conference Proceedings - 1965 Fall Joint Computer Conference, AFIPS 1965, 473–481.
- 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
- Li, Liwu. (1998). Java Virtual Machine. In Java: Data Structures and Programming (pp. 165–200). Springer Berlin Heidelberg.
- 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
- 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
- McCracken, D. D. (1976). A simplified guide to structured COBOL programming. 389.
- 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/
- O’Grady, S. (2017). The RedMonk Programming Language Rankings: January 2017 – tecosystems. https://redmonk.com/sogrady/2017/03/17/language-rankings-1-17/
- Parr, T. (2013). The Definite ANTLR 4 Reference. The Pragmatic Programmers, 305.
- PYPL PopularitY of Programming Language index. (n.d.). Retrieved July 29, 2021, from https://pypl.github.io/PYPL.html
- 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
- Rumbaugh, James., Jacobson, Ivar., & Booch, Grady. (2005). The unified modeling language reference manual. 721.
- Sierra, Kathy., & Bates, Bert. (2006). SCJP Sun certified programmer for Java 5 study guide (Exam 310-055). McGraw-Hill/Osborne.
- 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/.
- Stärk, R. F., Schmid, Joachim., & Börger, Egon. (2001). Java and the Java Virtual Machine : Definition, Verification, Validation. 392.
- Stroustrup, B. (2013). The C++ Prorgamming Language.
- Tanenbaum, A. S., & Austin, Todd. (2013). Structured computer organization. 775.
- US Census Bureau, C. H. S. P. (n.d.). UNIVAC I - History - U.S. Census Bureau.
- wikipedia. (n.d.). Source-to-source compiler. Retrieved July 29, 2021, from https://en.wikipedia.org/wiki/Source-to-source_compiler
- Wirth, N. (1971). The programming language pascal. Acta Informatica 1971 1:1, 1(1), 35–63. https://doi.org/10.1007/BF00264291
- 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