A Model for Naturalistic Programming with Implementation
Source abstract
Abstract
While the use of natural language for software development has been proposed since the 1960s, it was limited by the inherent ambiguity of natural languages, which people resolve using reasoning in a text or conversation. Programming languages are formal general-purpose or domain-specific alternatives based on mathematical formalism and which are at a remove from natural language. Over the years, various authors have presented studies in which they attempted to use a subset of the English language for solving particular problems. Each author approached the problem by covering particular domains, rather than focusing on describing general elements that would help other authors develop general-purpose languages, instead focusing even more on domain-specific languages. The identification of common elements in these studies reveals characteristics that enable the design and implementation of general-purpose naturalistic languages, which requires the establishment of a programming model. This article presents a conceptual model which describes the elements required for designing general-purpose programming languages and which integrates abstraction, temporal elements and indirect references into its grammar. Moreover, as its grammar resembles natural language, thus reducing the gap between problem and solution domains, a naturalistic language prototype is presented, as are three test scenarios which demonstrate its characteristics.
Source: crossref · Quality: baseline
Research context
OpenAlex topics: Software Engineering Research · Advanced Software Engineering Methodologies · Software Engineering Techniques and Practices
SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.
Affiliations
Division of Research and Postgraduate Studies, Tecnológico Nacional de México/I.T. Orizaba, Oriente 9, Emiliano Zapata Sur, Orizaba C.P. 94320, Veracruz, Mexico
References (39)
Show source-provided references
1. The Use of English As a Programming Language10.1145/365230.365274 ↗
2. Akşit, M., and Matsuoka, S. (1997). Aspect-oriented programming. ECOOP’97—Object-Oriented Programming, Springer.10.1007/BFb0053371 ↗
3. Laddad, R. (2003). AspectJ in Action: Practical Aspect-Oriented Programming, Manning Publications Co.10.1109/MS.2003.1241372 ↗
4. Toward Natural Language Computation
5. Beyond AOP: Toward Naturalistic Programming10.1145/966051.966058 ↗
6. Knöll, R., Gasiunas, V., and Mezini, M. (2011, January 22–27). Naturalistic Types. Proceedings of the 10th SIGPLAN Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward! 2011), Ortland, OR, USA.10.1145/2048237.2048243 ↗
7. Van Roy, P., and Haridi, S. (2004). Concepts, Techniques, and Models of Computer Programming, MIT Press. [1st ed.].
8. Booch, G., Maksimchuk, R.A., Engle, M.W., J. Young, B., Conallen, J., and Kelli, A.H. (2007). Object-Oriented Analysis and Design with Applications, Addison Wesley Longman. [3rd ed.].
9. Deixis, space and time10.1017/CBO9780511620614.008 ↗
10. Ogden, C.K., Richards, I.A., Ranulf, S., and Cassirer, E. (1923). The Meaning of Meaning. A Study of the Influence of Language upon Thought and of the Science of Symbolism, Harcourt, Brace & World, Inc.
11. de Saussure, F., Baskin, W., Meisel, P., and Saussy, H. (2011). Course in General Linguistics, Columbia University Press.
12. Knöll, R., and Mezini, M. (2006). Pegasus: First Steps Toward a Naturalistic Programming Language. Companion to the 21st ACM SIGPLAN Symposium on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA ’06), Portland, OR, USA, 22–26 October 2006, ACM.10.1145/1176617.1176628 ↗
13. Three models for the description of language10.1109/TIT.1956.1056813 ↗
14. Clark, P., Murray, W.R., Harrison, P., and Thompson, J. (2010). Controlled Natural Language: Workshop on Controlled Natural Language, CNL 2009, Marettimo Island, Italy, June 8-10, 2009. Revised Papers. Controlled Natural Language: Workshop on Controlled Natural Language, CNL 2009, Marettimo Island, Italy, June 8–10, 2009. Revised Papers, Springer. Chapter Naturalness vs. Predictability: A Key Debate in Controlled Languages.
15. École Polytechnique Fédérale Lausanne (EPFL) (2019, July 20). Scala Online Resources. Available online: https://docs.scala-lang.org/learn.html.
16. Liu, H., and Lieberman, H. (2005, January 2–7). Programmatic Semantics for Natural Language Interfaces. Proceedings of the CHI ’05 Extended Abstracts on Human Factors in Computing Systems (CHI EA ’05), Portland, OR, USA.10.1145/1056808.1056975 ↗
17. Mihalcea, R., Liu, H., and Lieberman, H. (2006, January 19–25). NLP (Natural Language Processing) for NLP (Natural Language Programming). Proceedings of the 7th International Conference on Computational Linguistics and Intelligent Text Processing (CICLing’06), Mexico City, Mexico.10.1007/11671299_34 ↗
18. Cann, R. (1993). Formal Semantics: An Introduction, Cambridge University Press.10.1017/CBO9781139166317 ↗
19. Cremet, V. (2006). Foundations for Scala: Semantics and Proof of Virtual Types, École Polytechnique Fédérale de Lausanne. Technical Report.
20. Belblidia, N., and Debbabi, M. (2006, January 13–15). Towards a Formal Semantics for Aspectj Weaving. Proceedings of the 7th Joint Conference on Modular Programming Languages (JMLC’06), Oxford, UK.10.1007/11860990_11 ↗
21. Pulido-Prieto, O., and Juárez-Martínez, U. (2017). A Survey of Naturalistic Programming Technologies. ACM Comput. Surv., 17:1–17:39.10.1145/3109481 ↗
22. Fuchs, N.E., and Schwitter, R. (1996). Attempto Controlled English (ACE). arXiv.
23. Fuchs, N., Schwertel, U., and Schwitter, R. (1999). Attempto Controlled English Language Manual Version 3.0, Institut für Informatik der Universität Zürich.
24. Baroglio, C., Bonatti, P.A., Maluszyński, J., Marchiori, M., Polleres, A., and Schaffert, S. (2008). Reasoning Web. Reasoning Web, Springer. Chapter Attempto Controlled English for Knowledge Representation.10.1007/978-3-540-85658-0 ↗
25. Verifiable Source Code Documentation in Controlled Natural Language10.1016/j.scico.2014.01.002 ↗
26. Clark, P., Harrison, P., Jenkins, T., Thompson, J., and Wojcik, R. (2005, January 15–17). Acquiring and using world knowledge using a restricted subset of English. Proceedings of the Eighteenth International Florida Artificial Intelligence Research Society Conference (FLAIRS 2005), Clearwater Beach, FL, USA.
27. Liu, H., and Lieberman, H. (2005, January 9–12). Metafor: Visualizing Stories As Code. Proceedings of the 10th International Conference on Intelligent User Interfaces (IUI ’05), San Diego, CA, USA.10.1145/1040830.1040908 ↗
28. Cozzie, A., Finnicum, M., and King, S.T. (2011, January 9–11). Macho: Programming with Man Pages. Proceedings of the 13th USENIX Conference on Hot Topics in Operating Systems (HotOS’13), Napa, CA, USA.
29. Cozzie, A., and King, S.T. (2012). Macho: Writing Programs with Natural Language and Examples, University of Illinois at Urbana-Champaign. Technical Report.
30. Landhäußer, M., and Hug, R. (2015, January 16–24). Text Understanding for Programming in Natural Language: Control Structures. Proceedings of the Fourth International Workshop on Realizing Artificial Intelligence Synergies in Software Engineering (RAISE ’15), Florence/Firenze, Italy.10.1109/RAISE.2015.9 ↗
31. NLCI: A natural language command interpreter
32. Bracha, G., and Cook, W. (1990, January 21–25). Mixin-based Inheritance. Proceedings of the European Conference on Object-oriented Programming on Object-oriented Programming Systems, Languages, and Applications (OOPSLA/ECOOP ’90), Ottawa, ON, Canada.10.1145/97945.97982 ↗
33. Parr, T. (2013). The Definitive ANTLR 4 Reference, Pragmatic Bookshelf. [2nd ed.].
34. Odersky, M., Spoon, L., and Venners, B. (2008). Programming in Scala: A Comprehensive Step-by-Step Guide, Artima Incorporation. [1st ed.].
35. Inc., L. (2019, July 20). SBT Reference Manual. Available online: https://www.scala-sbt.org/1.x/docs/Faq.html.
36. Eckel, B. (2002). Thinking in Java, Prentice Hall. [3rd ed.].
37. Bruckman, A.S. (1997). Moose Crossing: Construction, Community, and Learning in a Networked Virtual World for Kids. [Ph.D. Thesis, Massachusetts Institute of Technology].
38. Landhäußer, M., Hey, T., and Tichy, W.F. (June, January 31). Deriving Time Lines from Texts. Proceedings of the 3rd International Workshop on Realizing Artificial Intelligence Synergies in Software Engineering (RAISE 2014), Hyderabad, India.10.1145/2593801.2593809 ↗
39. Likert, R. (1932). A Technique for the Measurement of Attitudes. [Ph.D. Thesis, New York University].