# Related paradigms in Computer Science and Mathematics

I've read in a number of places discussions on whether Mathematics is a branch of Computer Science and vice-versa (see here for example)

Having a background in both, I know that the Computer Sciences formally developed something called Object Orientation (i.e. the object oriented paradigm), which is a very powerful tool of abstraction in many modern programming languages, and which I use regularly.

On the other hand I see that mathematics has been using "object orientation," or abstraction since mathematics began. One example I like to think of is the Calculus. First principles deal with limits and the definition of a derivative, but once we get beyond this, the technical details of limits is somewhat lost in the abstraction, although of course the limiting processes are still there we just choose to abstract them out of sight unless needed. Moreover, there are other Calculi, such as the geometric calculus, and other types of abstraction such as the Umbral calculus, etc.

In computer programming, the OO paradigm deals with functions and (data) structures, and defines how objects are allowed to interact (private, protected, public, etc.)

In Mathematics, the OO paradigm seems to deal with abstraction of concepts and notation via mathematical logic.

I just wondered what opinion was regarding the view of object orientation as an abstraction of Mathematical abstraction and certain elements of Computer Science (such as programming)?

Additional information: Object orientation (see for example here) is a paradigm in computer science that is often employed for software engineering, used in programming, and potentially any type of relational analysis. One example framework is the Unified Modelling Language (UML) (see here).

The OO paradigm allows for inheritance (see here) which I think best relates to my above question. This property allows a new object to inherit properties of a given object and to extend that object. Often as we build "on top" of other objects and extend their functionality, we hide the details of the lower level work going on under the bonnet so to speak.

This relates to my analogy of the Newtonian Calculus above "hiding" the limiting processes and extending the "objects" we are working with.

-
Object orientation? Framework for mathematics? I donâ€™t see it. – k.stm Feb 11 '14 at 9:36
in this context category theory often comes up, but i am ignorant of it... especially popular at first glance among functional programmers, of which i also don't count myself – Peter Sheldrick Feb 11 '14 at 10:00
You might be interested in theorem provers/verifiers. In that field a large body of mathematics is formalized in some symbolic language. They need to deal, from a very practical view point, with different levels of abstraction in mathematics. I'm not extremely familiar with the solutions they've come up with and whether or not object orientation is used as a paradigm. – Magdiragdag Feb 11 '14 at 10:02
@Peter Yes, I had an inkling about that too, but I'm also ignorant of it, although from Wikipedia's page on category theory it may be the mathematics that can describe the OO paradigm ! – poirot Feb 11 '14 at 10:03
@pbs The theorem provers I'm familiar with use type theory as their foundation. But that 'just' allows you to write down mathematics in a computer-understable way. The issue with having different levels of abstraction comes after that. – Magdiragdag Feb 11 '14 at 10:10