Abstract
Automated assessment of students’ programs has become essential in the institutions where the intake of students is large to ensure fast and consistent evaluation. An automated evaluator compares a program written by a student with a model program supplied by the instructor and tries to evaluate the student’s performance. In course of checking similarity between the two programs, the evaluator may sometimes have to determine whether some expression written in the student program assumes the same value as that of an equivalent expression in the model. Thus, determining equivalence between pairs of expressions is at the core of designing automated evaluators. This paper discusses different methods for determining equivalence between expressions involving various datatypes. Specifically, it proposes a novel technique to determine equivalence between expressions involving floating point and transcendental numbers, which have not been addressed in earlier literature to the best of our knowledge.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
CVC4 - the smt solver. http://cvc4.cs.nyu.edu/web/
Ala-Mutka, K.M.: A survey of automated assessment approaches for programming assignments. Comput. Sci. Edu. 15(2), 83–102 (2005). http://www.tandfonline.com/doi/abs/10.1080/08993400500150747
Banerjee, K., Karfa, C., Sarkar, D., Mandal, C.: A value propagation based equivalence checking method for verification of code motion techniques. In: ISED, pp. 67–71 (2012)
Banerjee, K., Karfa, C., Sarkar, D., Mandal, C.: Verification of code motion techniques using value propagation. IEEE Trans. CAD ICS 33(8), 1180–1193 (2014)
Banerjee, K., Mandal, C., Sarkar, D.: Extending the scope of translation validation by augmenting path based equivalence checkers with SMT solvers. In: 18th International Symposium on VLSI Design and Test, pp. 1–6, July 2014
Banerjee, K., Sarkar, D., Mandal, C.: Extending the FSMD framework for validating code motions of array-handling programs. IEEE Trans. CAD ICS 33(12), 2015–2019 (2014)
Gajski, D.D., Dutt, N.D., Wu, A.C., Lin, S.Y.: High-Level Synthesis: Introduction to Chip and System Design. Kluwer Academic, Boston (1992)
Ihantola, P., Ahoniemi, T., Karavirta, V., Seppälä, O.: Review of recent systems for automatic assessment of programming assignments. In: Koli Calling, pp. 86–93 (2010)
Kahan, W.: Pracniques: further remarks on reducing truncation errors. Commun. ACM 8(1), 40 (1965)
Karfa, C., Sarkar, D., Mandal, C., Kumar, P.: An equivalence-checking method for scheduling verification in high-level synthesis. IEEE Trans. CAD ICS 27, 556–569 (2008)
Karfa, C., Mandal, C., Sarkar, D.: Formal verification of code motion techniques using data-flow-driven equivalence checking. ACM Trans. Des. Autom. Electron. Syst. 17(3), 30 (2012)
Karfa, C., Mandal, C., Sarkar, D., Pentakota, S.R., Reade, C.: A formal verification method of scheduling in high-level synthesis. In: ISQED, pp. 71–78 (2006)
King, J.C.: A program verifier. Ph.D. thesis, Pittsburgh, PA, USA (1970)
Lopes, N.P., Monteiro, J.: Automatic equivalence checking of UF+IA programs. In: Bartocci, E., Ramakrishnan, C.R. (eds.) SPIN 2013. LNCS, vol. 7976, pp. 282–300. Springer, Heidelberg (2013)
Manna, Z.: Mathematical Theory of Computation. McGraw-Hill Kogakusha, Tokyo (1974)
Sarkar, D., De Sarkar, S.: A theorem prover for verifying iterative programs over integers. IEEE Trans Softw. Eng. 15(12), 1550–1566 (1989)
Sharma, K.K., Banerjee, K., Mandal, C.: Determining equivalence of expressions: an automated evaluator’s perspective. In: 2015 IEEE International Conference on Technology for Education (T4E) (2015, accepted)
Sharma, K.K., Banerjee, K., Mandal, C., Vikas, I.: A benchmark programming assignment suite for quantitative analysis of student performance in early programming courses. In: 2015 IEEE International Conference on MOOC, Innovation and Technology in Education (MITE) (2015, accepted)
Sharma, K.K., Banerjee, K., Vikas, I., Mandal, C.: Automated checking of the violation of precedence of conditions in else-if constructs in students’ programs. In: 2014 IEEE International Conference on MOOC, Innovation and Technology in Education (MITE), pp. 201–204 (2014)
Sharma, K.K., Banerjee, K., Mandal, C.: A scheme for automated evaluation of programming assignments using FSMD based equivalence checking. In: I-CARE, pp. 10:1–10:4 (2014)
Sipser, M.: Introduction to the Theory of Computation. PWS Publishing Company, Boston (1997)
Wang, T., Su, X., Ma, P., Wang, Y., Wang, K.: Ability-training-oriented automated assessment in introductory programming course. Comput. Edu. 56(1), 220–226 (2011)
Wang, T., Su, X., Wang, Y., Ma, P.: Semantic similarity-based grading of student programs. Inf. Softw. Technol. 49(2), 99–107 (2007). http://www.sciencedirect.com/science/article/pii/S0950584906000371
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Sharma, K.K., Banerjee, K., Mandal, C. (2015). Establishing Equivalence of Expressions: An Automated Evaluator Designer’s Perspective. In: Prasath, R., Vuppala, A., Kathirvalavakumar, T. (eds) Mining Intelligence and Knowledge Exploration. MIKE 2015. Lecture Notes in Computer Science(), vol 9468. Springer, Cham. https://doi.org/10.1007/978-3-319-26832-3_39
Download citation
DOI: https://doi.org/10.1007/978-3-319-26832-3_39
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-26831-6
Online ISBN: 978-3-319-26832-3
eBook Packages: Computer ScienceComputer Science (R0)