This document compares various formal specification languages based on different parameters. It describes Z notation, OCL, VDM, SDL and Larch languages. Z notation uses set theory and logic to model state using schemas. OCL uses constraints to describe UML models. VDM uses basic types and functions to formally specify models. SDL specifies systems as communicating finite state machines. Larch uses an interface language and shared language to specify behaviors. The languages differ based on whether they are process-oriented, sequential-oriented, model-oriented or property-oriented and the underlying mathematics used like set theory, logic or algebra.