Abstract
Programming, i.e., the act of creating a runnable artifact applicable to multiple inputs/tasks, is an art that requires substantial knowledge of programming languages and development techniques. As the use of software is becoming far more prevalent in all aspects of life, programming has changed and the need to program has become relevant to a much broader community. In the interest of broadening the pool of potential programmers, we believe that a natural language interface to an intuitive programming language may have a major role to play. In this paper, we discuss recent work on carrying out scenario-based programming directly in a controlled natural language, and sketch possible future directions.
Chapter PDF
Similar content being viewed by others
Keywords
- Natural Language
- Behavioral Programming
- Message Sequence Chart
- Live Sequence Chart
- Natural Language Interface
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
AECMA Official Site, http://www.asd-ste100.org
Barak, D., Harel, D., Marelly, R.: InterPlay: Horizontal Scale-Up and Transition to Design in Scenario-Based Programming. IEEE Trans. Soft. Eng. 32(7), 467–485 (2006)
Begel, A., Graham, S.: Spoken programs. In: Proc. IEEE Symp. on Visual Languages and Human-Centric Computing (VL/HCC 2005), pp. 99–106 (2005)
Bolt, R.A.: “Put-that-there”: Voice and Gesture at the Graphics Interface. SIGGRAPH Comput. Graph. 14(3), 262–270 (1980)
Bryant, B.R., Lee, B.-S.: Two-Level Grammar as an Object-Oriented Requirements Specification Language. In: Proc. 35th Annual Hawaii Int. Conf. on System Sciences, HICSS 2002, pp. 280–289 (2002)
Cabral, G., Sampaio, A.: Formal Specification Generation from Requirement Documents. Electron. Notes Theor. Comput. Sci. 195, 171–188 (2008)
Cypher, A., Dontcheva, M., Lau, T., Nichols, J.: No Code Required: Giving Users Tools to Transform the Web. Morgan Kaufmann Publishers Inc. (2010)
Cypher, A., Halbert, D.C., Kurlander, D., Lieberman, H., Maulsby, D., Myers, B.A., Turransky, A. (eds.): Watch What I Do: Programming by Demonstration. MIT Press (1993)
Damm, W., Harel, D.: LSCs: Breathing Life into Message Sequence Charts. Formal Methods in System Design 19(1), 45–80 (2001)
Dijkstra, E.W.: On the Foolishness of “Natural Language Programming”. In: Gerhart, S.L., et al. (eds.) Program Construction. LNCS, vol. 69, pp. 51–53. Springer, Heidelberg (1979)
Fuchs, N.E., Schwitter, R.: Attempto Controlled English (ACE). In: Proc. 1st Int. Workshop on Controlled Language Applications, pp. 124–136 (1996)
Geller, T.: Talking to Machines. Commun. ACM 55(4), 14–16 (2012)
Giganto, R.T.: A Three-Level Algorithm for Generating Use Case Specifications. In: Proc. Software Innovation and Engineering New Zealand Workshop, SIENZ 2007 (2007)
Gordon, M., Harel, D.: Generating executable scenarios from natural language. In: Gelbukh, A. (ed.) CICLing 2009. LNCS, vol. 5449, pp. 456–467. Springer, Heidelberg (2009)
Gordon, M., Harel, D.: Show-and-Tell Play-In: Combining Natural Language with User Interaction for Specifying Behavior. In: Proc. IADIS Interfaces and Human Computer Interaction (IHCI 2011), pp. 360–364 (2011)
Gordon, M., Harel, D.: Evaluating a Natural Language Interface for Behavioral Programming. In: Proc. IEEE Symp. on Visual Languages and Human-Centric Computing (VL/HCC 2012), pp. 17–20 (2012)
Harel, D.: From Play-In Scenarios To Code: An Achievable Dream. Computer 34(1), 53–60 (2001)
Harel, D.: Playing with Verification, Planning and Aspects: Unusual Methods for Running Scenario-Based Programs. In: Ball, T., Jones, R.B. (eds.) CAV 2006. LNCS, vol. 4144, pp. 3–4. Springer, Heidelberg (2006)
Harel, D.: Can Programming be Liberated, Period? Computer 41(1), 28–37 (2008)
Harel, D., Kugler, H., Marelly, R., Pnueli, A.: Smart Play-Out of Behavioral Requirements. In: Aagaard, M.D., O’Leary, J.W. (eds.) FMCAD 2002. LNCS, vol. 2517, pp. 378–398. Springer, Heidelberg (2002)
Harel, D., Marelly, R.: Come, Let’s Play: Scenario-Based Programming Using LSC’s and the Play-Engine. Springer (2003) (See also paper in Software and System Modeling 2(2), 82–107 (2003))
Harel, D., Marron, A., Weiss, G.: Behavioral programming. Commun. ACM 55(7), 90–100 (2012)
Harel, D., Pnueli, A.: On the Development of Reactive Systems. In: Logics and Models of Concurrent Systems, pp. 477–498. Springer, New York (1985)
Harel, D., Segall, I.: Visualizing Inter-Dependencies between Scenarios. In: Proc. 4th ACM Symp. on Software Visualization (SoftVis 2008), pp. 145–153 (2008)
Hearst, M.A.: “Natural” Search User Interfaces. Commun. ACM 54(11), 60–67 (2011)
ITU: International Telecommunication Union. Recommendation Z.120: Message Sequence Chart (MSC). Technical report (1996)
Kim, S.-H., Jeon, J.W.: Programming LEGO Mindstorms NXT with Visual Programming. In: Proc. Int. Conf. on Control, Automation and Systems, ICCAS 2007, pp. 2468–2472 (2007)
Kress-Gazit, H., Fainekos, G.E., Pappas, G.J.: Translating Structured English to Robot Controllers. Advanced Robotics Special Issue on Selected Papers From IROS 2007 22(12), 1343–1359 (2008)
Kuhn, T., Fuchs, N.E. (eds.): CNL 2012. LNCS, vol. 7427. Springer, Heidelberg (2012)
Lei, T., Long, F., Barzilay, R., Rinard, M.: From Natural Language Specifications to Program Input Parsers. In: Proc. Annual Meeting Assoc. for Computational Linguistics, ACL 2013 (2013)
Liu, H., Lieberman, H.: Toward a Programmatic Semantics of Natural Language. In: Proc. IEEE Symp. on Visual Languages and Human-Centric Computing (VL/HCC 2004), pp. 281–282 (2004)
Maoz, S., Harel, D., Kleinbort, A.: A Compiler for Multimodal Scenarios: Transforming LSCs into AspectJ. ACM Trans. Softw. Eng. Methodol. 20(4), 18 (2011)
Maoz, S., Sa’ar, Y.: Two-Way Traceability and Conflict Debugging for AspectLTL Programs. In: Leavens, G.T., Chiba, S., Tanter, É. (eds.) Transactions on AOSD X. LNCS, vol. 7800, pp. 39–72. Springer, Heidelberg (2013)
Mihalcea, R., Liu, H., Lieberman, H.: NLP (Natural Language Processing) for NLP (Natural Language Programming). In: Gelbukh, A. (ed.) CICLing 2006. LNCS, vol. 3878, pp. 319–330. Springer, Heidelberg (2006)
Miller, G.A., Beckwith, R., Fellbaum, C., Gross, D., Miller, K.: Introduction to WordNet: An On-line Lexical Database (1993), http://wordnet.princeton.edu/
Parnas, D.L.: Precise Documentation: The key to Better Software. In: The Future of Software Engineering, pp. 125–148. Springer (2011)
Resnick, M., et al.: Scratch: Programming for All. Comm. of the ACM 52(11), 60–67 (2009)
Shneiderman, B.: Designing the User Interface: Strategies for Effective Human-Computer Interaction. Addison-Wesley Longman (1986)
Sun, Y., Leigh, J., Johnson, A., Lee, S.: Articulate: A Semi-automated Model for Translating Natural Language Queries into Meaningful Visualizations. In: Taylor, R., Boulanger, P., Krüger, A., Olivier, P. (eds.) SG 2010. LNCS, vol. 6133, pp. 184–195. Springer, Heidelberg (2010)
UML. Unified Modeling Language Superstructure, v2.1.1. Technical Report formal/2007-02-03, Object Management Group (2007)
Winograd, T.: Understanding Natural Language. Cognitive Psychology 3(1), 1–191 (1972)
Wong, Y.W., Mooney, R.J.: Learning Synchronous Grammars for Semantic Parsing with Lambda Calculus. In: Proc. 45th Annual Meeting of the Assoc. for Computational Linguistics, ACL 2007 (2007)
Zhong, H., Zhang, L., Xie, T., Mei, H.: Inferring Resource Specifications from Natural Language API Documentation. In: Proc. IEEE/ACM Int. Conf. on Automated Software Engineering (ASE 2009), pp. 307–318 (2009)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gordon, M., Harel, D. (2014). Steps towards Scenario-Based Programming with a Natural Language Interface. In: Bensalem, S., Lakhneck, Y., Legay, A. (eds) From Programs to Systems. The Systems perspective in Computing. Lecture Notes in Computer Science, vol 8415. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-54848-2_9
Download citation
DOI: https://doi.org/10.1007/978-3-642-54848-2_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-54847-5
Online ISBN: 978-3-642-54848-2
eBook Packages: Computer ScienceComputer Science (R0)