Contents

1 Introduction
2 Analytical Approaches
3 Stochastic Approaches
4 Algebraic Approaches
5 Category Based Approaches
6 Computer Languages
7 Bridges between Approaches
8 Conclusions