An apparatus for determining whether or not a program violates a
convention, including an input unit for receiving an input of a target
program to be an object of a determination on whether to violate the
convention; a violation storing unit for beforehand storing any one of an
abstract syntax tree and a pattern which indicate a structure of a
program violating the convention; a converter for converting the abstract
syntax tree of the target program to a conversion tree with a
predetermined conversion rule; and a determination unit for determining
that the target program violates the convention on condition that at
least a part of the conversion tree agrees with an abstract syntax tree
violating the convention.