This work is the synthesis of support and encouragement coming from different sources in various ways. First of all, I would like to thank Prof. Alfonso Pierantonio and Romina Eramo from the Computer Science Department of the University of L'Aquila. Without their support, this book would not have been possible. I also thank Prof. Zinovy Diskin for carefully reading the preliminary version of this book and offering valuable corrections and suggestions.