前面那么多面向这面向那的分析,但却从来没有讨论过“面向”的含义。
“面向”意味着我们的形式化目标。
“面向”过程的形式化目标是过程。也就是说,通过这种编程方法编出来的程序,最终产品形式是过程。所以在这里,被形式化的是过程(即,这种形式系统中的主要形式其所承载的语义是“过程”)。而“面向”对象的形式化目标是对象。所以在使用它编出来的程序中被形式化的是对象(这种形式系统中的主要形式所承载的语义是“对象”)。
什么被形式化了,或到底我形式化了什么很重要。因为它决定了我能从中得到什么(当讨论任何形式系统的时候,永远都不要离开语义去讨论它。否则那样的讨论就很容易误入歧途)。
比如,在面向函数的无状态编程中,状态没有被形式化。这导致系统不能提供它自己的状态。所以如果只把这样的系统用于纯粹的计算则没有问题,但如果把它用于业务处理则可能有问题。
形式系统的形式决定了系统的语义承载(或服务)能力。