1. A method of analyzing multi-language programs, said method comprising the steps of: inputting a program containing elements written in a plurality of languages; inputting a rule set specifying allowable behaviors of a correct program; and detecting in the input program any violation relating to the rule set.