A Syntactical Reverse Engineering Approach to Fourth Generation Programming Languages Using Formal Methods