Skip to main content

Evolution of Naturalistic Programming: A Need

  • Conference paper
  • First Online:
New Perspectives in Software Engineering (CIMPS 2020)

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 169.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 219.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    “The state of showing what someone thinks or feels,” The Cambridge English Dictionary.

  2. 2.

    A definition of The Cambridge English Dictionary.

  3. 3.

    Definitions of The Oxford English Dictionary and The Cambridge English Dictionary.

  4. 4.

    http://www.osmosian.com/.

  5. 5.

    http://www.pegasus-project.org/en/Welcome.html.

  6. 6.

    A word or group of words functioning in a sentence as subject, object, or prepositional object.

References

  1. Lopes, C.V., Dourish, P., Lorenz, D.H., Lieberherr, K.: Beyond AOP: toward naturalistic programming. SIGPLAN Not. 38(12), 34–43 (2003)

    Article  Google Scholar 

  2. Pulido-Prieto, O., Juarez-Martinez, U.: A model for naturalistic programming with implementation. Appl. Sci. 9(18), 3936 (2019)

    Article  Google Scholar 

  3. 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)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. Felleisen, M.: On the expressive power of programming languages. Sci. Comput. Program. 17(1), 35–75 (1991)

    Article  MathSciNet  Google Scholar 

  6. Paterson, M.S., Hewitt, C.E.: Comparative schematology. 119–127. Association for Computing Machinery, New York (1970)

    Google Scholar 

  7. Chandra, A.K., Manna, Z.: On the power of programming features. Comput. Lang. 1(3), 219–232 (1975)

    Article  Google Scholar 

  8. 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)

    Google Scholar 

  9. 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)

    Article  Google Scholar 

  10. Davidson, J., Michaelson, G.: Expressiveness, meanings and machines. Computability. 7(4), 367–394 (2018)

    Article  MathSciNet  Google Scholar 

  11. Lieberman, H., Liu, H.: Feasibility studies for programming in natural language. In: Human-Computer Interaction Series, pp. 45–473. Springer, Dordrecht (2006)

    Google Scholar 

  12. Pulido-Prieto, O., Juarez-Martinez, U.: A survey of naturalistic programming technologies. ACM Comput Surv, 50(5), 70:1–70:35 (2017)

    Google Scholar 

  13. Landhäußer, M., Weigelt, S., Tichy, W.F.: NLCI: a natural language command interpreter. Autom. Softw. Eng. 24(4), 839–861 (2016)

    Article  Google Scholar 

  14. 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)

    Google Scholar 

  15. 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)

    Google Scholar 

  16. Liu, H., Lieberman, H.: Metafor: visualizing stories as code. IUI 2005, pp. 305–307, Association for Computing Machinery, California (2005)

    Google Scholar 

  17. Yin, P.: Natural language programming based on knowledge. In: 2010 International Conference on Artificial Intelligence and Computational Intelligence, vol. 2, pp. 69–73 (2010)

    Google Scholar 

  18. 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)

    Article  Google Scholar 

  19. 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)

    Article  Google Scholar 

  20. 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)

    Google Scholar 

  21. Knöll, R.: Pegasus Natural Programming. http://www.pegasus-project.org/en/Welcome.html

  22. Rzeppa, G., Rzeppa, D.: The osmosian order of plain english programmers blog. https://osmosianplainenglishprogramming.blog

  23. 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)

    Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Lizbeth A. Hernández-González .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Check for updates. Verify currency and authenticity via CrossMark

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

Publish with us

Policies and ethics