{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,10]],"date-time":"2026-06-10T16:55:06Z","timestamp":1781110506057,"version":"3.54.1"},"reference-count":34,"publisher":"IGI Global Scientific Publishing","issue":"1","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2016,1,1]]},"abstract":"<p>Scripting is a widely-used way to automate the execution of tasks. Despite the popularity of scripting, it remains difficult to use for both beginners and experts: because of the cryptic commands for the first group, and incompatible syntaxes across different systems, for the latter group. The authors introduce Natural Shell, an assistant for enabling end-users to generate commands and scripts for various purposes. Natural Shell automatically synthesizes scripts for different shell systems based on natural language descriptions. By interacting with Natural Shell, new users can learn the basics of scripting languages without the obstacles from the incomprehensible syntaxes. On the other hand, the authors' tool frees more advanced users from manuals when they switch shell systems. The authors have developed a prototype system and demonstrate its effectiveness with a benchmark of 50 examples of popular shell commands collected from online forums. In addition, the authors analyzed the usage of Natural Shell in a lab study that involves 10 participants with different scripting skill levels. Natural Shell effectively assists the users to generate commands in assigned syntaxes and greatly streamlines their learning and using experience.<\/p>","DOI":"10.4018\/ijpop.2016010101","type":"journal-article","created":{"date-parts":[[2017,3,10]],"date-time":"2017-03-10T10:12:33Z","timestamp":1489140753000},"page":"1-18","source":"Crossref","is-referenced-by-count":3,"title":["Natural Shell"],"prefix":"10.4018","volume":"5","author":[{"given":"Xiao","family":"Liu","sequence":"first","affiliation":[{"name":"College of Information Sciences and Technology, Pennsylvania State University, University Park, PA, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Yufei","family":"Jiang","sequence":"additional","affiliation":[{"name":"College of Information Sciences and Technology, Pennsylvania State University, University Park, PA, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Lawrence","family":"Wu","sequence":"additional","affiliation":[{"name":"College of Information Sciences and Technology, Pennsylvania State University, University Park, PA, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Dinghao","family":"Wu","sequence":"additional","affiliation":[{"name":"College of Information Sciences and Technology, Pennsylvania State University, University Park, PA, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"2432","reference":[{"key":"IJPOP.2016010101-0","doi-asserted-by":"publisher","DOI":"10.1145\/2462476.2465601"},{"key":"IJPOP.2016010101-1","doi-asserted-by":"publisher","DOI":"10.1145\/280495.280499"},{"key":"IJPOP.2016010101-2","doi-asserted-by":"publisher","DOI":"10.1145\/800177.810072"},{"key":"IJPOP.2016010101-3","doi-asserted-by":"publisher","DOI":"10.1145\/1822090.1822154"},{"key":"IJPOP.2016010101-4","doi-asserted-by":"publisher","DOI":"10.3115\/1075527.1075553"},{"key":"IJPOP.2016010101-5","doi-asserted-by":"publisher","DOI":"10.1007\/s11251-009-9110-0"},{"key":"IJPOP.2016010101-6","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0014656"},{"key":"IJPOP.2016010101-7","doi-asserted-by":"publisher","DOI":"10.1145\/1593105.1593135"},{"key":"IJPOP.2016010101-8","doi-asserted-by":"publisher","DOI":"10.1145\/2445196.2445368"},{"key":"IJPOP.2016010101-9","doi-asserted-by":"publisher","DOI":"10.1007\/978-0-85729-443-2"},{"key":"IJPOP.2016010101-10","unstructured":"Ismal, M. N., Ngah, N. A., & Umar, I. N. (2010). Instructional strategy in the teaching of computer programming: a need assessment analyses. The Turkish Online Journal of Educational Technology, 9(2), 125-131."},{"key":"IJPOP.2016010101-11","doi-asserted-by":"publisher","DOI":"10.1145\/2493394.2493424"},{"key":"IJPOP.2016010101-12","doi-asserted-by":"publisher","DOI":"10.1016\/0957-4174(94)00050-6"},{"key":"IJPOP.2016010101-13","article-title":"PiE: Programming in ELIZA.","author":"X.Liu","year":"2014","journal-title":"Proceedings of the 29th IEEE\/ACM international conference on automated software engineering"},{"key":"IJPOP.2016010101-14","doi-asserted-by":"publisher","DOI":"10.1080\/08923648909526659"},{"key":"IJPOP.2016010101-15","doi-asserted-by":"publisher","DOI":"10.1207\/s1532690xci1602_2"},{"issue":"2","key":"IJPOP.2016010101-16","first-page":"7","article-title":"Massive Open Online Courses (MOOCs)\u2013A comprehensive study and its application to green computing in higher education institution.","volume":"2","author":"A.Nath","year":"2014","journal-title":"International Journal (Toronto, Ont.)"},{"key":"IJPOP.2016010101-17","doi-asserted-by":"crossref","first-page":"559","DOI":"10.1145\/2157136.2157296","article-title":"Experiments with algorithm visualization tool development.","author":"M. C.Orsega","year":"2012","journal-title":"Proceedings of the 43rd ACM technical symposium on computer science education"},{"key":"IJPOP.2016010101-18","unstructured":"Ramesh, N. (2010). 50 Most Frequently Used UNIX \/ Linux Commands (With Examples).Retrieved from http:\/\/www.thegeekstuff.com\/2010\/11\/50-linux-commands\/?utm_source=feedburner"},{"key":"IJPOP.2016010101-19","unstructured":"Ramirez987. (2015). UNIX shell programming forum. Retrieved from http:\/\/www.unix.com\/shell-programming-and-scripting\/"},{"key":"IJPOP.2016010101-20","doi-asserted-by":"crossref","unstructured":"Rist, R. S. (1991). Knowledge creation and retrieval in program design. Human-Computer Interaction, 6, 1e46.","DOI":"10.1207\/s15327051hci0601_1"},{"key":"IJPOP.2016010101-21","author":"A.Robbins","year":"2005","journal-title":"Classic shell scripting"},{"key":"IJPOP.2016010101-22","doi-asserted-by":"crossref","unstructured":"Robins, A., Rountree, J., & Rountree, N. (2003). Learning and teaching programming: a review and discussion. Computer Science Education, 13(2), 137e172","DOI":"10.1076\/csed.13.2.137.14200"},{"key":"IJPOP.2016010101-23","unstructured":"Roblox. (2013). Why is scripting so complicated? Retrieved from http:\/\/roblox.wikia.com\/wiki\/Thread:52908"},{"key":"IJPOP.2016010101-24","author":"P. M.Roget","year":"1982","journal-title":"Roget\u2019s thesaurus"},{"key":"IJPOP.2016010101-25","author":"A.Sattar","year":"2009","journal-title":"Teach Alice programming to non-majors"},{"key":"IJPOP.2016010101-26","unstructured":"Siri, L. (2010). Friends don\u2019t let friends program in shell script. Retrieved from https:\/\/www.turnkeylinux.org\/blog\/friends-dont-let-friends-program-shell-script"},{"key":"IJPOP.2016010101-27","doi-asserted-by":"publisher","DOI":"10.1207\/s15516709cog1202_4"},{"key":"IJPOP.2016010101-28","doi-asserted-by":"publisher","DOI":"10.1207\/s1532690xci0201_3"},{"key":"IJPOP.2016010101-29","unstructured":"Unity. (2011). Why is scripting so hard? Retrieved from http:\/\/answers.unity3d.com\/questions\/54664\/why-is-scripting-so-hard.html"},{"key":"IJPOP.2016010101-30","unstructured":"UNIX. (2015). Unique entries for multiple files. Retrieved from http:\/\/www.unix.com\/ shell-programming-and-scripting\/260516-unique-entries-multiple-files.html"},{"key":"IJPOP.2016010101-31","unstructured":"Weaver, G. A., & Smith, S. W. (2012). Xutools: Unix commands for processing next-generation structured text. In LISA."},{"key":"IJPOP.2016010101-32","doi-asserted-by":"publisher","DOI":"10.1145\/365153.365168"},{"key":"IJPOP.2016010101-33","doi-asserted-by":"publisher","DOI":"10.1145\/1539024.1508869"}],"container-title":["International Journal of People-Oriented Programming"],"original-title":[],"language":"ng","link":[{"URL":"https:\/\/www.igi-global.com\/viewtitle.aspx?TitleId=179552","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,6,1]],"date-time":"2022-06-01T13:35:26Z","timestamp":1654090526000},"score":1,"resource":{"primary":{"URL":"https:\/\/services.igi-global.com\/resolvedoi\/resolve.aspx?doi=10.4018\/IJPOP.2016010101"}},"subtitle":["An Assistant for End-User Scripting"],"short-title":[],"issued":{"date-parts":[[2016,1,1]]},"references-count":34,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2016,1]]}},"URL":"https:\/\/doi.org\/10.4018\/ijpop.2016010101","relation":{},"ISSN":["2156-1796","2156-1788"],"issn-type":[{"value":"2156-1796","type":"print"},{"value":"2156-1788","type":"electronic"}],"subject":[],"published":{"date-parts":[[2016,1,1]]}}}