Abstract
For years, researchers and programmers have studied, proposed, and reflected on how to enhance the expressive power of programming languages. One of the most popular thoughts on this matter is that natural language can be used as a programming tool. In this work, we review the state-of-the-art of naturalistic programming, whose goal is to achieve greater expressiveness in programming languages and better approach the user domain. We review the only three naturalistic general-purpose languages that can generate executable code by comparing them concerning a conceptual model – Pegasus, Cal-4700, and SN. We discuss the similarities and differences between each language. Then, we introduce and discuss some examples of computer programs developed with these languages, showing their level of expressiveness. Finally, we reflect on the findings that show the need for the paradigm to evolve having a software development method, to be considered as a formal proposal in Software Engineering.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
“The state of showing what someone thinks or feels,” The Cambridge English Dictionary.
- 2.
A definition of The Cambridge English Dictionary.
- 3.
Definitions of The Oxford English Dictionary and The Cambridge English Dictionary.
- 4.
- 5.
- 6.
A word or group of words functioning in a sentence as subject, object, or prepositional object.
References
Lopes, C.V., Dourish, P., Lorenz, D.H., Lieberherr, K.: Beyond AOP: toward naturalistic programming. SIGPLAN Not. 38(12), 34–43 (2003)
Pulido-Prieto, O., Juarez-Martinez, U.: A model for naturalistic programming with implementation. Appl. Sci. 9(18), 3936 (2019)
Booch, G., Maksimchuk, R.A., Engle, M.W., Young, B., Conallen, J., Houston, K.: Object-Oriented Analysis and Design with Applications. Third edition, Addison-Wesley (2007)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., et al.: Aspect-oriented programming. In: Proceedings of the European Conference on Object-Oriented Programming (ECOOP), pp. 220–242. Springer-Verlag (1997)
Felleisen, M.: On the expressive power of programming languages. Sci. Comput. Program. 17(1), 35–75 (1991)
Paterson, M.S., Hewitt, C.E.: Comparative schematology. 119–127. Association for Computing Machinery, New York (1970)
Chandra, A.K., Manna, Z.: On the power of programming features. Comput. Lang. 1(3), 219–232 (1975)
Hoare, C.A.R.: The varieties of programming languages. In: International Joint Conference on Theory and Practice of Software Development, Lecture Notes in Computer Science, pp. 1–18. Springer, Berlin (1989)
Felleisen, M., Findler, R.B., Flatt, M., Krishnamurthi, S., Barzilay, E., McCarthy, J., et al.: A programmable programming language. Commun. ACM 61(3), 62–71 (2018)
Davidson, J., Michaelson, G.: Expressiveness, meanings and machines. Computability. 7(4), 367–394 (2018)
Lieberman, H., Liu, H.: Feasibility studies for programming in natural language. In: Human-Computer Interaction Series, pp. 45–473. Springer, Dordrecht (2006)
Pulido-Prieto, O., Juarez-Martinez, U.: A survey of naturalistic programming technologies. ACM Comput Surv, 50(5), 70:1–70:35 (2017)
Landhäußer, M., Weigelt, S., Tichy, W.F.: NLCI: a natural language command interpreter. Autom. Softw. Eng. 24(4), 839–861 (2016)
Weigelt, S., Landhäußer, M., Blersch, M.: How to prepare an API for programming in natural language. In: Proceedings of the Posters and Demo Track of the 15th International Conference on Semantic Systems (SEMANTiCS 2019). CEUR Workshop Proceedings, vol. 2451, pp. 141–145. ACM, New York (2019)
Cozzie, A., Finnicum, M., King, S.: Macho: programming with man pages. In: Proceedings of the 13th USENIX Conference on Hot Topics in Operating Systems, p. 7 (2011)
Liu, H., Lieberman, H.: Metafor: visualizing stories as code. IUI 2005, pp. 305–307, Association for Computing Machinery, California (2005)
Yin, P.: Natural language programming based on knowledge. In: 2010 International Conference on Artificial Intelligence and Computational Intelligence, vol. 2, pp. 69–73 (2010)
Mefteh, M., Bouassida, N., Ben-Abdallah, H.: Towards naturalistic programming: mapping language-independent requirements to constrained language specifications. Sci. Comput. Program. 166, 89–119 (2018)
Moreno, F., Jiménez, J., Castañeda, S.: Una propuesta para la clasificación de la programación reflexiva orientada al desarrollo de sistemas autónomos. Ingeniería y Competitividad 16(2), 91–104 (2014)
Knöll, R., Mezini, M.: Pegasus: first steps toward a naturalistic programming language. In: Companion to the 21st ACM SIGPLAN Symposium on Object-oriented Programming Systems, Languages, and Applications. OOPSLA 2006, pp. 542–559. ACM, New York (2006)
Knöll, R.: Pegasus Natural Programming. http://www.pegasus-project.org/en/Welcome.html
Rzeppa, G., Rzeppa, D.: The osmosian order of plain english programmers blog. https://osmosianplainenglishprogramming.blog
Alducin-Francisco, L.M., Juarez-Martinez, U., Pelaez-Camarena, S.G., Rodriguez-Mazahua, L., Abud-Figueroa, M.A., Pulido-Prieto, O.: Perspectives for software development using the naturalistic language SN. In: 2019 8th International Conference on Software Process Improvement (CIMPS), pp. 1–11 (2019)
Acknowledgments
We thank the Technological Institute of Orizaba and the University of Veracruz for the support granted to this research.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 The Editor(s) (if applicable) and The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Hernández-González, L.A., Juárez-Martínez, U., Alducin-Francisco, L.M. (2021). Evolution of Naturalistic Programming: A Need. In: Mejia, J., Muñoz, M., Rocha, Á., Quiñonez, Y. (eds) New Perspectives in Software Engineering. CIMPS 2020. Advances in Intelligent Systems and Computing, vol 1297. Springer, Cham. https://doi.org/10.1007/978-3-030-63329-5_13
Download citation
DOI: https://doi.org/10.1007/978-3-030-63329-5_13
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-63328-8
Online ISBN: 978-3-030-63329-5
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)