The Process Specification Language (PSL) Theory and Applications