Abstract
A language is ultimately developed for its users: the programmers. The gap between the language experts who design and implement the language and its associated tools and the programmers can be very large, particularly in areas where the language is developed to be used by non-programmers or novice programmers by design. To verify that assumptions made and beliefs held by the language developers about the actual use made by programmers bear out, some analyis of the usage of the language and its associated tools must be performed, preferably in an automated fashion transparent to the users. In this paper we detail our approach, which is essentially to log compilations in order to obtain compilation histories and to query these compilation histories in order to extract the necessary information. For the latter task, we have designed and implemented the Neon library, and show how relatively complicated queries can be formulated effectively.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Gannon, J.D., Horning, J.J.: The impact of language design on the production of reliable software. In: Proceedings of the international conference on Reliable software, pp. 10–22. ACM Press, New York (1975)
Grubb, S.: Ploticus website, http://ploticus.sourceforge.net
Hage, J.: Neon website, http://www.cs.uu.nl/wiki/Hage/Neon
Hage, J.: The Helium logging facility. Technical Report UU-CS-2005-055, Department of Information and Computing Sciences, Utrecht University (2005)
Hage, J., Heeren, B.: Heuristics for type error discovery and recovery. In: Horváth, Z., Zsók, V., Butterfield, A. (eds.) IFL 2006. LNCS, vol. 4449, pp. 199–216. Springer, Heidelberg (2007)
Heeren, B., Hage, J., Swierstra, S.D.: Scripting the type inference process. In: Eighth ACM Sigplan International Conference on Functional Programming, pp. 3–13. ACM Press, New York (2003)
Heeren, B., Leijen, D., van IJzendoorn, A.: Helium, for learning Haskell. In: ACM Sigplan 2003 Haskell Workshop, pp. 62–71. ACM Press, New York (2003), http://www.cs.uu.nl/wiki/bin/view/Helium/WebHome
Jadud, M.C.: A first look at novice compilation behaviour using BlueJ. Computer Science Education 15(1), 25–40 (2005)
Jadud, M.C.: Methods and tools for exploring novice compilation behaviour. In: ICER 2006: Proceedings of the 2006 international workshop on Computing education research, pp. 73–84. ACM Press, New York (2006)
Joosten, S., van den Berg, K., van der Hoeven, G.: Teaching functional programming to first-year students. Journal of Functional Programming 3(1), 49–65 (1993)
Litecky, C.R., Davis, G.B.: A study of errors, error-proneness, and error diagnosis in Cobol. Communications of the ACM 19, 33–38 (1976)
Moulton, P.G., Muller, M.E.: Ditran: a compiler emphasizing diagnostics. Communications of the ACM 10, 45–52 (1967)
Jones, S.P. (ed.): Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, Cambridge (2003)
van Keeken, P.: Analyzing Helium programs obtained through logging, http://www.cs.uu.nl/wiki/Hage/MasterStudents
Wadler, P., Blott, S.: How to make ad-hoc polymorphism less ad hoc. In: POPL 1989: Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 60–76. ACM Press, New York (1989)
Zelkowitz, M.V.: Automatic program analysis and evaluation. In: Proceedings of the 2nd International Conference on Software Engineering, pp. 158–163. IEEE Computer Society Press, Los Alamitos (1976)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hage, J., van Keeken, P. (2009). Neon: A Library for Language Usage Analysis. In: Gašević, D., Lämmel, R., Van Wyk, E. (eds) Software Language Engineering. SLE 2008. Lecture Notes in Computer Science, vol 5452. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-00434-6_4
Download citation
DOI: https://doi.org/10.1007/978-3-642-00434-6_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-00433-9
Online ISBN: 978-3-642-00434-6
eBook Packages: Computer ScienceComputer Science (R0)