Fast and Reliable Software Translation of Programming Languages to Natural Language

Iaakov Exman, Olesya Shapira

2016

Abstract

An experienced software professional with several years of programming in some languages is usually expected to read or write with proficiency in a new programming language. However, if severe time constraints are involved, and given the current availability of internet sources, there is no reason to avoid shortcuts supporting fast translation of source code keywords into Natural Language. This work describes our tool coined PL-to-NL Translator, the main ideas behind it, and its extensions. One basic assumption that was clear from the beginning of this work is the need to keep as far as possible a clear separation between generic infra-structure and the specifics of particular programming languages. Moreover, the tool keeps its generality relative to programming languages, enabling through its contributor engine, addition of any desired current or future programming language. The ideas and the software tool characteristics are illustrated by some case studies involving a few sufficiently different programming languages.

References

  1. Brown, K., 2011. “Taking executable specs to the next level: Executable Documentation”, Available from: http://keithps.wordpress.com/2011/06/26/takingexecut able-specs-to-the-next-level-executabledocumentation/
  2. Cass, S., 2015. “The 2015 Top Ten Programming Languages”, IEEE Spectrum, available from site:
  3. http://www.csee.umbc.edu/courses/undergraduate/202/fall 15_marron/lectures/l01/the_2015_top_ten_programmi ng_languages.pdf
  4. cdecl, 2016. An interactive tool to translate “C” to English. Web site: http://cdecl.org/
  5. Corney, M., Fitzgerald, S., Hanks, B., Lister, R., McCauley, R. and Murphy, L., 2014. “'Explain in Plain English' Questions Revisited: Data Structures Problems”, in SICCSE'14 Proc. of 45th ACM Technical Symposium on Computer Science Education, pp. 591-596, ACM. Web site: http://eprints.qut.edu.au/68093/. DOI: http://doi.acm.org/10.1145/2538862.2538911
  6. Exman, I. and Iskusnov, D., 2014. “Apogee: Application Ontology Generation from Domain Ontologies”, in SKY'2014, Proc. 5th International Workshop on Software Knowledge, pp. 31-42. DOI: 10.5220/0005181000310042.
  7. Exman, I. and Iskusnov, D., 2015. “Apogee: Application Ontology Generation with Size Optimization”, in Knowledge Discovery, Knowledge Engineering and Knowledge Management, Vol. 553, CCIS, pp. 477- 492, Springer-Verlag, . DOI: 10.1007/978-3-319- 25840-9_29.
  8. Exman, I. and Plebe, A., 2015. “Software, Is it Poetry or Prose? Conceptual Content at the Higher Abstraction Levels”, in SKY'2015 Proc. 6th International Workshop on Software Knowledge, pp. 9-17. DOI: 10.5220/0005625500050013.
  9. Hansen, M., Goldstone, R.L. and Lumsdaine, A., 2013. “What Makes Code Hard to Understand?”, Web site: http://arxiv.org/pdf/1304.5257.pdf
  10. Krotzsch M., Vrandecic D., Volkel M., Haller H., Studer R., 2007. Semantic Wikipedia. In Journal of Web Semantics 5/2007, pp. 251-261. Elsevier.
  11. Martraire C., 2016. Living Documentation - A low-effort approach of Documentation that is always up-todate,inspired by Domain-Driven Design. Leanpub (expected). http://leanpub.com/livingdocumentation.
  12. Nilsson, J., Lowe, W., Hall, J. and Nivre, J., 2009. “Parsing Formal Languages using Natural Language Parsing Techniques”, in IWPT Proc. 11th Int. Conf. on Parsing Technologies, pp. 49-60. ACM. Web site: http://www.aclweb.org/anthology/W09-38#page=65
  13. Skorkin, A., 2010. “Why I Love Reading other People's Code and you should too”, Personal Blog, Web site: http://www.skorks.com/2010/05/why-i-love-readingother-peoples-code-and-you-should-too/
  14. StackExchange, 2016. A discussion about: “improving explanations of code to other developers”. Web site: http://programmers.stackexchange.com/questions/187 882/how-can-i-become-better-on-explaining-the-codeto-other-developers
  15. Strachey, C., 2000. “Fundamental Concepts in Programming Languages”, Higher-Order and Symbolic Computation, Vol. 13, pp. 11-49, DOI: 10.1023/A:1010000313106
  16. Teague, D. and Lister, R., 2014. “Programming: Reading, Writing and Reversing, in ITICSE'14 Proc. of 2014 conf. on Innovation & Technology in Computer Science Education, pp. 285-290, ACM. DOI: http://dx.doi.org/10.1145/2591708.2591712
  17. Yagel, R., 2015. “LIDO - Wiki based Living Documentation with Domain Knowledge”, Proc. SKY'2015 6th International Workshop on Software Knowledge, pp. 26-30, DOI: http://dx.doi.org/ 10.5220/0005643700220026
Download


Paper Citation


in Harvard Style

Exman I. and Shapira O. (2016). Fast and Reliable Software Translation of Programming Languages to Natural Language . In Proceedings of the 7th International Workshop on Software Knowledge - Volume 1: SKY, (IC3K 2016) ISBN 978-989-758-202-8, pages 57-64. DOI: 10.5220/0006081200570064


in Bibtex Style

@conference{sky16,
author={Iaakov Exman and Olesya Shapira},
title={Fast and Reliable Software Translation of Programming Languages to Natural Language},
booktitle={Proceedings of the 7th International Workshop on Software Knowledge - Volume 1: SKY, (IC3K 2016)},
year={2016},
pages={57-64},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0006081200570064},
isbn={978-989-758-202-8},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 7th International Workshop on Software Knowledge - Volume 1: SKY, (IC3K 2016)
TI - Fast and Reliable Software Translation of Programming Languages to Natural Language
SN - 978-989-758-202-8
AU - Exman I.
AU - Shapira O.
PY - 2016
SP - 57
EP - 64
DO - 10.5220/0006081200570064