Abstract
The goal of research in programming languages should be to develop languages that integrates the best of concepts and constructs from the various programming paradigms. We do not argue for a multi-paradigm language, where the programmer alternates between the different paradigms/styles. Instead, we find that the languages of the future should integrate the best available concepts and constructs in such a way that the programmer does not think of multiple paradigms when using a given language. In this paper, we describe to what extent the BETA language has been successful in obtaining a unified style and where more research is needed. In addition to traditional paradigms such as object-oriented-, imperative-functional- and logic programming, we also discuss concurrent programming and prototype-based programming. We discuss language features such as the BETA pattern construct, virtual procedures and classes, higher order classes, methods and functions, part objects, block-structure, and class-less objects.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Arnold, K., Gosling, J.: The Java Programming Language. Addison Wesley, 1996.
Bobrow, D.G., Stefik, M.: The LOOPS Manual. Xerox Corporation, Palo Alto, CA, 1983.
Borning, A.: The Programming Language Aspects of Thinglab, a Constraint-Oriented Simulation Laboratory. ACM Trans. on Programming Languages and Systems, 3(4):353–387, October 1981.
Brinch-Hansen, P.: The Programming Language Concurrent Pascal. IEEE Trans Software Engineering, 1(2), (1975), 149–207.
Brinch-Hansen, P.: Java’s Insecure Parallelism. ACM SIGPLAN, Vol. 34, No. 4, April 1999.
Budd, T.A.: Multiparadigm Programming in Leda. Addison-Wesley Publishing Company, Reading, Massachusetts, 1995.
Coplien, J.: Multi-Paradigm Design for C++. Addison Wesley Longman, 1998.
Dahl, O.-J., Nygaard, K., Myrhaug, B.: Simula 67 Common Base Language. Technical Report Publ. no. S-2, Norwegian Computing Center, Oslo, 1968.
Ernst, E.: gbeta — a Language with Virtual Attributes, Block Structure, and Propagating, Dynamic Inheritance. Ph.D. Thesis, Computer Science Department, Aarhus University, 1999.
Ernst. E.: Propagating Class and Method Combination. In: Guerraoui, R. (ed).: 13th European Conference on Object-Oriented Programming, Lisbon, June 1999. Lecture Notes in Computer Science, Vol. 1628. Springer-Verlag, Berlin Heidelberg New York, 1999.
Floyd, R.W.: The Paradigms of Programming. Comm. of the ACM, 22(8), 445–460, August 1979.
Freeman-Benson, B.N., Borning, A.: Integrating Constraints with an Object-Oriented Language. In: Madsen, O.L. (ed).: 6th European Conference on Object-Oriented Programming, Utrecht, June/July. Lecture Notes in Computer Science, Vol. 615. Springer-Verlag, Berlin Heidelberg New York, 1992.
Gamma, E., Helm, R., Johnson, R.E., Vlissides, J.: Design Patterns: Elements of Object-Oriented Software Architecture. Addison-Wesley, 1994.
Goldberg, A., Robson, D.: Smalltak-80: The Language and its Implementation. Addison-Wesley Publishing Company, 1983.
Hoare, C.A.R.: Notes on Data Structuring. In: Dahl, O.-J., Dijkstra, E., Hoare, C.A.R.: Structured Programming. Academic Press, 1972.
Igarashi, A., Pierce, B.C.: Foundations for Virtual Types. In: Guerraoui, R. (ed).: 13th European Conference on Object-Oriented Programming, Lisbon, June 1999. Lecture Notes in Computer Science, Vol. 1628. Springer-Verlag, Berlin Heidelberg New York, 1999.
Knudsen, J.L., Löfgren, M., Madsen, O.L., Magnusson, B.: Object-Oriented Environments — The Mjølner Approach. Prentice Hall, 1994.
Kristensen, B.B., Madsen, O.L., Møller-Pedersen, B. Nygaard, K.: Abstraction Mechanisms in the BETA Programming Language. In Conference Record of the Tenth Annual ACM Symposium on Principles of Programming Languages. Austin, Texas, January 1983.
Kristensen, B.B., Madsen, O.L., Møller-Pedersen, B. Nygaard, K.: Classification of Actions or Inheritance also for Methods. In: 1st European Conference Object-oriented programming, Paris, France, June 1987. Lecture Notes in Computer Science, Vol. 276. Springer-Verlag, Berlin Heidelberg New York, 1987.
Liebermann, H.: Using Prototypical Objects to Implement Shared behavior in Object-Oriented Systems. Proc. OOPSLA’86, Portland, OR, 1986.
MacLennan, B.J.: Values and Objects in Programming Languages. ACM SIGPLAN Notices 17(1982) 12(Dec), 70–79.
Madsen, O.L., Møller-Pedersen, B., Nygaard, K.: Object-Oriented Programming in the BETA Programming Language. Addison Wesley/ACM Press, Wokingham, England, 1993.
Madsen, O.L., Møller-Pedersen, B.: What Object-Oriented Programming may be and What it does not have to be. In: Gjessing, S., Nygaard, K. (eds).: 2nd European Conference on Object-Oriented Programming, Oslo, August 1988. Lecture Notes in Computer Science, Vol. 322. Springer-Verlag, Berlin Heidelberg New York, 1988.
Madsen, O.L., Møller-Pedersen, B.: Virtual Classes, a Powerful Mechanism in Object-Oriented Languages. In: Proc. OOPSLA’89, New Orleans, 1989.
Madsen, O.L., Møller-Pedersen, B.: Part Objects and their Locations. In: (Magnusson, B., Meyer, B., Perrot, J.F. (eds).: Proc. Technology of Object-Oriented Languages and Systems — TOOLS10. Prentice-Hall, 1993, pp. 283–297.
Madsen, O.L., Magnusson, B., Møller-Pedersen, B.: Strong Typing of Object-Oriented Languages Revisited. In: Proc. OOPSLA’90, Ottawa, Canada, 1990.
Madsen, O.L.: Block Structure and Object-Oriented Languages. In: Shriver, B.D., Wegner, P. (eds).: Research Directions in Object-Oriented Programming. Cambridge MA: MIT Press, 1987.
Madsen, O.L.: An Overview of BETA. In.
Madsen, O.L.: Open Issues in Object-Oriented Programming-A Scandinavian Perspective. Software Practice and Experience, Vol. 25, No. S4, Dec. 1995.
Madsen, O.L: Toward Integration of State Machines and OO Languages. In: Mitchell, R. et al.: (eds).: Technology of Object-Oriented Languages and Systems 29, Nancy, June 1999. IEEE Computer Society, 1999.
Madsen, O.L.: Semantic Analysis of Virtual Classes and Nested Classes. In: Proc. OOPSLA’ 99, Denver, Colorado, 1999.
Magnusson, B.: An Overview of Simula. In.
Magnusson, B.: Personal Communication, 1999.
Meyer, B.: Object-Oriented Software Construction. Prentice-Hall, 1988.
Nygaard, K.: GOODS to Appear on the Stage. In: Aksit, M., Matsouka, S. (eds).: 11th European Conference on Object-Oriented Programming. Lecture Notes in Computer Science, Vol. 1241. Springer Verlag, Berlin Heidelberg New York, 1997.
Nygaard, K. Sørgaard, P.: The Perspective Concept in Informatics. In Bjerknes, G., Ehn, P., Kyng, M. (eds).: Computers and Democracy. Abury, Aldershot, UK, 1987.
The Mjølner System, http://www.mjolner.com.
Rogerson, D.: Inside COM-Microsoft’s Component Object Model, Microsoft Press, 1997.
Rumbaugh, J. Jacobsen, I., Booch, G.: The Unified Modeling Language Reference Manual. Addison-Wesley, 1999.
Salvesen, A., Wang, A.: Primula — An Integration of Prolog and Simula. Report no. 781, Norwegian Computing Center, 1986.
Stroustrup, B.: The C++ Programming Language. Addison-Wesley, 1986.
Thorup, K.K.: Genericity in Java with Virtual Types. In: Aksit, M., Matsouka, S. (eds).: 11th European Conference on Object-Oriented Programming. Lecture Notes in Computer Science, Vol. 1241. Springer Verlag, Berlin Heidelberg New York, 1997.
Thorup, K.K.: Objective-C. In: Zamir, S. (ed).: Handbook of Object Technology. CRC Press, 1999.
Thorup, K.K.: Genericity in Java with Virtual Classes. In: Aksit, M., Matsuoka, S.: (ed).: 11th European Conference on Object-Oriented Programming, Lisbon, June 1997. Lecture Notes in Computer Science, Vol. 1241. Springer-Verlag, Berlin Heidelberg New York, 1997.
Thorup, K.K., Torgersen, M.: Unifying Genericity-Combining the Benefits of Virtual Types and parameterized Types. In: Guerraoui, R. (ed).: 13th European Conference on Object-Oriented Programming, Lisbon, June 1999. Lecture Notes in Computer Science, Vol. 1628. Springer-Verlag, Berlin Heidelberg New York, 1999.
Torgersen, M.: Virtual Types are Statically Safe. In:Bruce, K. (ed). 5th Workshop on Foundations of Object-Oriented Languages, (San Diego, CA, January 16–17, 1998).
Torgersen, M.: Unifying Abstraction. “Progress Report” in partial fulfillment of the requirements for the Ph.D. degree. Computer Science Department, Aarhus University, 1999.
Ungar, D., Smith, R.B.: SELF — The Power of Simplicity. In: Proc. OOPSLA’87, Orlando, FL, 1987.
Wegner, P.: On the Unification of Data and Program Abstraction in Ada. In Conference Record of the Tenth Annual ACM Symposium on Principles of Programming Languages. Austin, Texas, January 1983.
Wegner, P.: Concepts and Paradigms of Object-Oriented Programming. Object-Oriented Messenger 1, 1 August 1990.
Wikstrøm, A.: Functional Programming using Standard ML. Prentice-Hall NJ, Englewood Cliffs, 1987.
Østerbye, K.: Associations as a Language Construct. In: Mitchell, R. et al.: (eds).: Technology of Object-Oriented Languages and Systems 29, Nancy, June 1999. IEEE Computer Society, 1999.
Østerbye, K.: Parts, Wholes and Sub-Classes. In Proc. European Simulation Multiconference, ISBN 0-911801-1, 1990.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Madsen, O.L. (2000). Towards a Unified Programming Language. In: Bertino, E. (eds) ECOOP 2000 — Object-Oriented Programming. ECOOP 2000. Lecture Notes in Computer Science, vol 1850. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45102-1_1
Download citation
DOI: https://doi.org/10.1007/3-540-45102-1_1
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67660-7
Online ISBN: 978-3-540-45102-0
eBook Packages: Springer Book Archive