2 STATE OF THE ART
There is no automated evaluation tools for descriptive
type question in computer science course. However,
using program verification as well as checking equiv-
alence between two programs, the automated evalu-
ation for descriptive type questions in computer pro-
gramming course is possible. To achieve this, exten-
sion of program verifier as well as program equiva-
lence checker is needed. To the best of our knowl-
edge, program verifier and the equivalence between
two programs can be established only for seman-
tic preserving transformations, for example code op-
timizing transformation, loop transformations etc.,
where there is an input program and after some hu-
man guided and (or) compiler invoked transforma-
tions transformed version can be generated. Then the
verifier checks the equivalence between two programs
either behaviourally or functionally. Behavioural ver-
ification is also called as translation validation.
Translation validation for an optimizing compiler
by obtaining simulation relations between programs
and their translated versions was first proposed in
(Pnueli et al., 1998); such a method is demonstrated
by Necula et. al. (Necula, 2000) and Rinder et. al.
(Rinard and Diniz, 1999). The procedure mainly con-
sists of two algorithms – an inference algorithm and a
checking algorithm. The inference algorithm collects
a set of constraints (representing the simulation re-
lation) using a forward scanning of the two programs
and then the checking algorithm checks the validity of
these constraints. Depending on this procedure, vali-
dation of high-level synthesis procedures are reported
in (Kundu et al., 2008). Unlike the method of (Nec-
ula, 2000), their procedure considers statement-level
parallelism since hardware can capture natural con-
currency and high-level synthesis tools exploit the
parallelization of independent operations. Further-
more, the method of (Kundu et al., 2008) uses a gen-
eral theorem prover, rather than the specific solvers
(as used by (Necula, 2000)). On a comparative ba-
sis, a path based method always terminates; however,
some sophisticated transformations, like loop shift-
ing, remains beyond the scope of the state of the art
path-based methods. The loop shifting can be veri-
fied by the method reported in (Kundu et al., 2008).
A major limitation the reported bisimulation based
method is that the termination is not guaranteed (Nec-
ula, 2000; Kundu et al., 2008). Also, it cannot han-
dle non-structure preserving transformations by path
based schedulers (Camposano, 1991; Rahmouni and
Jerraya, 1995); in other words, the control structures
of the source and the target programs must be identi-
cal. The authors of (Camposano, 1991) have studied
and identified what kind of modifications the control
structures undergo on application of some path based
schedulers; based on this knowledge, they try to es-
tablish which control points in the source and the tar-
get programs are to be correlated prior to generating
the simulation relations. The ability to handle control
structure modifications which are applied by (Rah-
mouni and Jerraya, 1995), however, still remain be-
yond the scope of the currently known bisimulation
based techniques.
A Petri net based verification strategy is described
in (Bandyopadhyay et al., 2012) for sequential high-
level synthesis benchmarks for several code motions.
In this method, the Petri net representations of an
original behaviour and its transformed version are
translated into equivalent FSMD models and fed as
inputs to the FSMD equivalence checkers of (Karfa
et al., 2012; Banerjee et al., 2014); no correctness
proof, however, is given for this method; moreover,
in the presence of more than one parallel thread, the
method fails to construct the equivalent FSMD mod-
els.
None of the above mentioned techniques has been
demonstrated to handle efficiently combination of
several smart human guided code transformations as
well as marking scheme for partially equivalent por-
tion of program which is the key important part for
automated program evaluation systems. Hence, it
would be desirable to have an equivalence checking
method that encompasses to verify efficiently sev-
eral human guided code transformations as well as
assign the marking scheme for equivalent code por-
tion. Since automated evaluation system for descrip-
tive type questions has not used till date, so the social
analysis of the output derive from the descriptive type
questions has not yet been studied.
3 METHODOLOGY
Through the following example, we would like to
demonstrate the overall mechanism.
3.1 Methodology for Program
Equivalence
Teacher asks to write a program which computes
d
100
i
e + b
100
j
c. Teacher also provides a solution of
the program. Students write the solution in a different
way where the two loops are interchanged. This type
of transformation has been referred to as loop swap-
ping. The control data flow graph (CDFG) model
is well known paradigm for scalar programs. How-
ever, the CDFG based equivalence checking methods
AES: Automated Evaluation Systems for Computer Programing Course
509