Techniques based on formal semantics are discussed for automatically generating parallelizing compilers for object-oriented programming languages. The denotational semantics of object-oriented programming languages are used to derive the control and data dependencies that exist within programs and this information may then be used to produce parallel object code by a compiler This approach also easily facilitates proving the correctness of transformations performed on the source programs. Furthermore, since compilers may be automatically generated from denotational semantics specifications, the implementation of these parallelization techniques will be automatic and hence language independent.