Abstract. Optimistic execution techniques are widely used in the field of parallel discrete event simulation. In this paper we discuss the use of optimism as a technique for parallelising programs written in a general purpose programming language. We present the design and implementation of a compiler system which uses optimistic simulation techniques to execute sequential C ++ programs. The use of optimistic techniques is seen as a new direction in parallelisation technology: conventional parallelising compilers are based on static (compile–time) data dependency analysis. The reliance on static information imposes an overly restrictive view of the parallelism available in a program. The static view must always be the worst case view: if it is possible for a data dependency to occur, then it must be assumed always to occur.