Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SOFTWARE DEVELOPMENT
APPROACHES PART 2
FUNCTION OBJECTS
Function objects
Vector v2 = m*v+k;
libraries
find_if(b,e, 0<x && x<=max);
OBJECT-ORIENTED PROGRAMMING
Hide
Provide
CLASS HIERARCHIES
CLASS HIERARCHIES
Shape
Circle
Users
Triangle
CLASS HIERARCHIES
Fundamental
p->rotate(90);
p->draw();
You
CLASS HIERARCHIES
CLASS HIERARCHIES
Shape
Circle
Users
Triangle
CLASS HIERARCHIES
CLASS HIERARCHIES
Shape
Users
Logo
Common
Circle
Triangle
MULTIPARADIGM PROGRAMMING
The
The
Represent
ideas directly
Represent independent ideas independently in code
ALGORITHMS ON CONTAINERS OF
POLYMORPHIC OBJECTS
void draw_all(vector<Shape*>& v)
// for vectors
{
for_each(v.begin(), v.end(), mem_fun(&Shape::draw));
}
template<class C> void draw_all(C& c)
// for all standard
containers
{
for_each(c.begin(), c.end(), mem_fun(&Shape::draw));
}
template<class For> void draw_all(For first, For last)
sequences
{
for_each(first, last, mem_fun(&Shape::draw));
}
// for all
~1990
Apple
Object Pascal
Object Pascal
C++
Dylan
C++
Objective C++
C++
Borland
Turbo-Pascal
Pascal-5
C++
Delphi
C++
?
C++
DEC
BLISS
C
Trellis
C++
Modula-3
C++
?
IBM
PL/1
Objective C
Smalltalk
Smalltalk
C++
Java
C++
HP
C++
Objective C
C++
C
C++
HP Java
MS
BASIC
C
MS Pascal
BASIC
C
VB
C++
VB
J++
C++
C
C++
Ada
C++
?
Java
C
C++
Sun Java
C
C++
SGI
Sun
~1995
~2000
STANDARDS
Formal standards
Consortia
ISO, IEEE
CORBA, W3C
Corporate
Microsoft, Sun
Computer science
Performance
Complexity
Reliability
Effectiveness of techniques
Education
Programming languages
Tools
Design
Science
Im still waiting