Steps towards Scenario-Based Programming with a Natural Language Interface

  • Michal Gordon
  • David Harel
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8415)


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.


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.


  1. 1.
    AECMA Official Site,
  2. 2.
    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)CrossRefGoogle Scholar
  3. 3.
    Begel, A., Graham, S.: Spoken programs. In: Proc. IEEE Symp. on Visual Languages and Human-Centric Computing (VL/HCC 2005), pp. 99–106 (2005)Google Scholar
  4. 4.
    Bolt, R.A.: “Put-that-there”: Voice and Gesture at the Graphics Interface. SIGGRAPH Comput. Graph. 14(3), 262–270 (1980)CrossRefGoogle Scholar
  5. 5.
    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)Google Scholar
  6. 6.
    Cabral, G., Sampaio, A.: Formal Specification Generation from Requirement Documents. Electron. Notes Theor. Comput. Sci. 195, 171–188 (2008)CrossRefGoogle Scholar
  7. 7.
    Cypher, A., Dontcheva, M., Lau, T., Nichols, J.: No Code Required: Giving Users Tools to Transform the Web. Morgan Kaufmann Publishers Inc. (2010)Google Scholar
  8. 8.
    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)Google Scholar
  9. 9.
    Damm, W., Harel, D.: LSCs: Breathing Life into Message Sequence Charts. Formal Methods in System Design 19(1), 45–80 (2001)CrossRefGoogle Scholar
  10. 10.
    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)CrossRefGoogle Scholar
  11. 11.
    Fuchs, N.E., Schwitter, R.: Attempto Controlled English (ACE). In: Proc. 1st Int. Workshop on Controlled Language Applications, pp. 124–136 (1996)Google Scholar
  12. 12.
    Geller, T.: Talking to Machines. Commun. ACM 55(4), 14–16 (2012)CrossRefGoogle Scholar
  13. 13.
    Giganto, R.T.: A Three-Level Algorithm for Generating Use Case Specifications. In: Proc. Software Innovation and Engineering New Zealand Workshop, SIENZ 2007 (2007)Google Scholar
  14. 14.
    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)CrossRefGoogle Scholar
  15. 15.
    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)Google Scholar
  16. 16.
    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)Google Scholar
  17. 17.
    Harel, D.: From Play-In Scenarios To Code: An Achievable Dream. Computer 34(1), 53–60 (2001)MathSciNetCrossRefGoogle Scholar
  18. 18.
    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)CrossRefGoogle Scholar
  19. 19.
    Harel, D.: Can Programming be Liberated, Period? Computer 41(1), 28–37 (2008)CrossRefGoogle Scholar
  20. 20.
    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)CrossRefGoogle Scholar
  21. 21.
    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))Google Scholar
  22. 22.
    Harel, D., Marron, A., Weiss, G.: Behavioral programming. Commun. ACM 55(7), 90–100 (2012)CrossRefGoogle Scholar
  23. 23.
    Harel, D., Pnueli, A.: On the Development of Reactive Systems. In: Logics and Models of Concurrent Systems, pp. 477–498. Springer, New York (1985)CrossRefGoogle Scholar
  24. 24.
    Harel, D., Segall, I.: Visualizing Inter-Dependencies between Scenarios. In: Proc. 4th ACM Symp. on Software Visualization (SoftVis 2008), pp. 145–153 (2008)Google Scholar
  25. 25.
    Hearst, M.A.: “Natural” Search User Interfaces. Commun. ACM 54(11), 60–67 (2011)CrossRefGoogle Scholar
  26. 26.
    ITU: International Telecommunication Union. Recommendation Z.120: Message Sequence Chart (MSC). Technical report (1996)Google Scholar
  27. 27.
    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)Google Scholar
  28. 28.
    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)Google Scholar
  29. 29.
    Kuhn, T., Fuchs, N.E. (eds.): CNL 2012. LNCS, vol. 7427. Springer, Heidelberg (2012)Google Scholar
  30. 30.
    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)Google Scholar
  31. 31.
    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)Google Scholar
  32. 32.
    Maoz, S., Harel, D., Kleinbort, A.: A Compiler for Multimodal Scenarios: Transforming LSCs into AspectJ. ACM Trans. Softw. Eng. Methodol. 20(4), 18 (2011)CrossRefGoogle Scholar
  33. 33.
    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)CrossRefGoogle Scholar
  34. 34.
    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)CrossRefGoogle Scholar
  35. 35.
    Miller, G.A., Beckwith, R., Fellbaum, C., Gross, D., Miller, K.: Introduction to WordNet: An On-line Lexical Database (1993),
  36. 36.
    Parnas, D.L.: Precise Documentation: The key to Better Software. In: The Future of Software Engineering, pp. 125–148. Springer (2011)Google Scholar
  37. 37.
    Resnick, M., et al.: Scratch: Programming for All. Comm. of the ACM 52(11), 60–67 (2009)CrossRefGoogle Scholar
  38. 38.
    Shneiderman, B.: Designing the User Interface: Strategies for Effective Human-Computer Interaction. Addison-Wesley Longman (1986)Google Scholar
  39. 39.
    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)CrossRefGoogle Scholar
  40. 40.
    UML. Unified Modeling Language Superstructure, v2.1.1. Technical Report formal/2007-02-03, Object Management Group (2007)Google Scholar
  41. 41.
    Winograd, T.: Understanding Natural Language. Cognitive Psychology 3(1), 1–191 (1972)CrossRefGoogle Scholar
  42. 42.
    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)Google Scholar
  43. 43.
    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)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2014

Authors and Affiliations

  • Michal Gordon
    • 1
  • David Harel
    • 1
  1. 1.Weizmann Institute of ScienceRehovotIsrael

Personalised recommendations