Object Oriented Programming - PowerPoint PPT Presentation

About This Presentation
Title:

Object Oriented Programming

Description:

However, some topics of Computer Science seemed to be unrelated to mathematics... It is astonishing simple to implement complex mathematical structures in an ... – PowerPoint PPT presentation

Number of Views:68
Avg rating:3.0/5.0
Slides: 21
Provided by: MarcC71
Category:

less

Transcript and Presenter's Notes

Title: Object Oriented Programming


1
Object Oriented Programming Mathematics
  • The Beauty of Implementing Abstract Structures
    as
  • Abstract Structures.
  • Marc Conrad, University of Luton.

2
Once upon a time...
Mathematics before the 20th century
3
there was two branches of Mathematics
axiomatic
Mathematics before the 20th century
algorithmic
4
Axiomatic
Hilbert, N. Bourbaki, etc.
axiomatic
Mathematics before the 20th century
algorithmic
5
Algorithmic
axiomatic
Mathematics before the 20th century
algorithmic
Turing, Church, etc.
6
Pure Mathematics Computer
Science
axiomatic
"pure" mathematics
Mathematics before the 20th century
algorithmic
computer science
7
With links in between.
axiomatic
"pure" mathematics
Mathematics before the 20th century
computer algebra etc.
algorithmic
computer science
8
However, some topics of Computer Science seemed
to be unrelated to mathematics...
axiomatic
"pure" mathematics
Mathematics before the 20th century
algorithmic
computer science
software design
operating systems
9
as e.g. object oriented programming.
axiomatic
"pure" mathematics
Mathematics before the 20th century
algorithmic
object oriented programming is a technique to
solve the "software crisis". It evolved in a
context completely unrelated to mathematics.
computer science e.g. object oriented
programming
10
But object oriented programming is closer to
"axiomatic" mathematics than it appeared in the
first place.
object oriented programming... ... allows to
implement abstract structures in an "axiomatic"
way.
"pure" mathematics
axiomatic
Mathematics before the 20th century
algorithmic
object oriented programming
computer science
11
Example A ring (abstract).
  • We cannot implement
  • addition
  • negation
  • multiplication
  • inversion
  • "zero"
  • "one"
  • check if zero
  • We can implement
  • subtraction (because of addition and negation)
  • exponentiation a
  • embedding of Z, Q.
  • check for equality
  • polynomials over this ring
  • etc.

n
12
Example A ring.
  • We cannot implement
  • addition
  • negation
  • multiplication
  • inversion
  • "zero"
  • "one"
  • check if zero
  • We can implement
  • subtraction (because of addition and negation)
  • exponantiation a
  • embedding of Z, Q.
  • check for equality
  • polynomials over this ring
  • etc.

The good news is Object Oriented programming
allows having objects which do not implement
everything!(Concept of overriding abstract
methods)
n
13
A "UML" approach to a ring.
Ring
Z
Q
Polynomial Ring
  • The child classes implement (override) the
    missing functionality of the parent class.

14
A "UML" approach to a ring.
Ring
Z
Q
Polynomial Ring
  • But things are more complicated, a polynomial is
    defined over a ring. It both inherits and
    aggregates a ring.

15
A "UML" approach to a ring.
Leads to multivariate polynomials by implementing
univariate polynomials!
Ring
Z
Q
Polynomial Ring
  • But things are more complicated, a polynomial is
    defined over a ring. It both inherits and
    aggregates a ring.

16
A "UML" approach to a ring.
Ring Element
Ring
Z
Q
Polynomial Ring
  • And in order to perform computations we also need
    a class for the elements of a ring.

17
The practical side.
  • In order to get experience with the idea, an
    experimental implementation in Java classes has
    been developed.
  • Java is highly object oriented but not very
    common in mathematical context.
  • Results can be viewed at
    http//ring.perisic.com
  • The name of the Java package is consequently
  • com.perisic.ring

18
Results, Remarks, Conclusions
  • It is possible to work with abstract structures!
  • E.g. Modular Ring R/p(x), where R is abstract.
  • E.g. Quotient Field Quot(R), where R is abstract.
  • Same amount of work as implementing Z/mZ or Q.
  • Multivariate polynomials can be used although
    only univariate polynomials have been implemented
    (over R).
  • Complex structures can easily be derived as child
    classes
  • Cyclotomic fields, complex numbers, rational
    function fields, ...
  • Concepts for automatic mapping from one ring to
    another.

19
Results, Remarks, Conclusions
  • It is astonishing simple to implement complex
    mathematical structures in an object oriented
    environment "from scratch".
  • You are invited to experiment, contribute, or
    share experiences. The package com.perisic.ring
    is available and documented at http//ring.perisic
    .com.
  • Caveat There are drawbacks performance,
    decisions on how to organise classes,
    implementing specialised algorithms (primality
    testing, factoring, )

20
Results, Remarks, Conclusions
  • The experiments with the Java package
    com.ring.perisic show that object oriented
    programming deserves a closer look in the context
    of mathematics
  • The mechanism of overriding and dynamic binding
    allows protoyping of abstract mathematical
    structures.
  • Object oriented programming should be a main
    feature in CAS (as user defined functions a
    couple of years ago).
  • Mathematical software should use object oriented
    terminology instead of "reinventing the wheel".
  • Disseminate object oriented concepts to the
    mathematical community.
Write a Comment
User Comments (0)
About PowerShow.com