Is object-oriented programming structured programming?

Object-oriented programming is one of today's buzzwords . On the one hand it is a programmin g paradigm of its own right . On the other hand it is a set of software engineering tools to build more reliable and reusable systems . One other kind of programming style, which has alr eady shown its power on this field is structured programming . In this paper we look at the relationship between structured programming and object-oriente d programming. We give a definition of structured programming and check the object-oriented features encapsulation, inheritance and messages for compatibility . Two problems arise . The first addresse s interfaces and inheritance, the second polymorphism and dynamic binding . We do not end with an answer like yes or no, but try to give a basis for further discussions . This may help to classify object-oriented programming into a wide range of tools for compute r programming and computer science . It may also help to abandon the hypothesis that object-oriente d programming is the solution to all the problems .

[1]  Alan Snyder,et al.  Encapsulation and inheritance in object-oriented programming languages , 1986, OOPLSA '86.

[2]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[3]  David E. Monarchi,et al.  A research typology for object-oriented analysis and design , 1992, CACM.

[4]  Timothy A. Budd,et al.  An introduction to object-oriented programming , 1991 .

[5]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[6]  Daniel G. Bobrow,et al.  Object-Oriented Programming: Themes and Variations , 1989, AI Mag..

[7]  P.H.M. America,et al.  A parallel object-oriented language: design and semantic foundations , 1989 .

[8]  Grady Booch,et al.  Object-Oriented Design with Applications , 1990 .

[9]  Brian W. Kernighan,et al.  The C Programming Language, Second Edition , 1988 .

[10]  Niklaus Wirth,et al.  Program development by stepwise refinement , 1971, CACM.

[11]  Edsger W. Dijkstra,et al.  Letters to the editor: go to statement considered harmful , 1968, CACM.

[12]  R. Acevedo,et al.  Research report , 1967, Revista odontologica de Puerto Rico.

[13]  Ralph E. Johnson,et al.  Surveying current research in object-oriented design , 1990, CACM.

[14]  Bertrand Meyer,et al.  From Structured Programming to Object-Oriented Design: The Road to Eiffel , 1989, Struct. Program..

[15]  Randy Shepherd,et al.  Object-Oriented Programming , 1994, Lecture Notes in Computer Science.

[16]  Peter Wegner,et al.  The Object-Oriented Classification Paradigm , 1987, Research Directions in Object-Oriented Programming.

[17]  Bjarne Stroustrup,et al.  The C++ programming language (2nd ed.) , 1991 .

[18]  William R. Cook,et al.  Inheritance is not subtyping , 1989, POPL '90.

[19]  Günther Blaschek Implementation of Objects in Modula-2 , 1989, Struct. Program..

[20]  N. Falconer Structured Programming , 1973, Nature.

[21]  Brad J. Cox,et al.  Object-oriented programming ; an evolutionary approach , 1986 .

[22]  Peter Grogono,et al.  Issues in the Design of an Object Oriented Programming Language , 1991, Struct. Program..

[23]  Daniel R. Edelson How objective mechanisms facilitate the development of large software systems in three programming languages , 1987, SIGP.

[24]  Luca Cardelli,et al.  Modula-3 Report (revised) , 1992 .

[25]  AmericaPierre,et al.  A parallel object-oriented language with inheritance and subtyping , 1990 .

[26]  Peter Wegner,et al.  Concepts and paradigms of object-oriented programming , 1990, OOPS.

[27]  Pierre America,et al.  A parallel object-oriented language with inheritance and subtyping , 1990, OOPSLA/ECOOP '90.

[28]  Clemens A. Szyperski,et al.  Import is Not Inheritance - Why We Need Both: Modules and Classes , 1992, ECOOP.

[29]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.