A formal language system supporting general product machines is proposed in this paper. Product machines of finite automata are usually represented by DFA. However, some NFA are not suitable to be converted into DFA, and the size of product machines is easily overflowed. The structure of general product machines is proposed and implemented in object-oriented technique so that many practical finite automata which can not be created in other systems can be managed in our system easily. Besides, a Java class of language iterators is presented to help the understanding of languages.