Abstract
Software development process has become increasingly complex and expensive due to the growing size and criticality of modern software systems. Deficiencies during the development process lead to significant quality problems that can hamper both the initial development as well as subsequent maintenance activities. Hence, it is imperative to develop advanced techniques to increase the overall software dependability and reduce its development cost and time. Automated code synthesis is a promising method of achieving the above goals. It is a constructive process that can be used to generate programs from specifications. It can accelerate the development process and simplify verification tasks. However, current automated code synthesis techniques have only limited abilities and are mostly able to generate sequential codes.