On including part hierarchies in object-oriented languages, with an implementation in Smalltalk
European conference on object-oriented programming on ECOOP '87
Classification of actions or inheritance also for methods
European conference on object-oriented programming on ECOOP '87
Inheritance and subtyping in a parallel object-oriented language
European conference on object-oriented programming on ECOOP '87
Research directions in object-oriented programming
Research directions in object-oriented programming
Research directions in object-oriented programming
Block-structure and object-oriented languages
Research directions in object-oriented programming
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Rationale and tutorial on OSDL : an object-oriented extension of SDL
Computer Networks and ISDN Systems - CCITT SDL
Inheritance on processes, exemplified on distributed termination detection
International Journal of Parallel Programming
An object-oriented metaprogramming system
Proceedings of the Twenty-First Annual Hawaii International Conference on Software Track
What object-oriented programming may be - and what it does not have to be
on ECOOP '88 (European Conference on Object-Oriented Programming)
Teaching object-oriented programming is more then teaching object-oriented programming languages
on ECOOP '88 (European Conference on Object-Oriented Programming)
Inheritance as an incremental modification mechanism or what like is and isn'tlike
on ECOOP '88 (European Conference on Object-Oriented Programming)
Name collision in multiple classification hierarchies
on ECOOP '88 (European Conference on Object-Oriented Programming)
Object-oriented programming and computerised shared material
on ECOOP '88 (European Conference on Object-Oriented Programming)
Virtual classes: a powerful mechanism in object-oriented programming
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Strong typing of object-oriented languages revisited
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Type substitution for object-oriented programming
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Object-oriented type inference
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Eiffel: the language
Object-oriented analysis (2nd ed.)
Object-oriented analysis (2nd ed.)
An introduction to object-oriented programming
An introduction to object-oriented programming
Part objects and their location
TOOLS 7 Proceedings of the seventh international conference on Technology of object-oriented languages and systems
Object-oriented type systems
Object-oriented analysis and design with applications (2nd ed.)
Object-oriented analysis and design with applications (2nd ed.)
The Dexter hypertext reference model
Communications of the ACM
Design issues for a Dexter-based hypermedia system
Communications of the ACM
Conceptual modeling and programming languages
ACM SIGPLAN Notices
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Complex associations: abstractions in object-oriented modeling
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Object-oriented programming in the BETA programming language
Object-oriented programming in the BETA programming language
Open issues in object-oriented programming—a Scandinavian perspective
Software—Practice & Experience - Special issue on object-oriented programming and technology
Roles: conceptual abstraction theory and practical language issues
Theory and Practice of Object Systems - Special issue on subjectivity in object-oriented systems
How to preserve the benefits of design patterns
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Semantic analysis of virtual classes and nested classes
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Database abstractions: aggregation and generalization
ACM Transactions on Database Systems (TODS)
Communications of the ACM
Communicating sequential processes
Communications of the ACM
Guarded commands, nondeterminacy and formal derivation of programs
Communications of the ACM
Monitors: an operating system structuring concept
Communications of the ACM
Exception handling: issues and a proposed notation
Communications of the ACM
Letters to the editor: go to statement considered harmful
Communications of the ACM
SIMULA: an ALGOL-based simulation language
Communications of the ACM
Revised report on the algorithm language ALGOL 60
Communications of the ACM
A metro map metaphor for guided tours on the Web: the Webvise guided tour system
Proceedings of the 10th international conference on World Wide Web
The C++ Programming Language
Systems Engineering Using SDL-92
Systems Engineering Using SDL-92
The Origins of Concurrent Programming: From Semaphores to Remote Procedure Calls
The Origins of Concurrent Programming: From Semaphores to Remote Procedure Calls
The Java Language Specification
The Java Language Specification
On the unification of data and program abstraction in Ada
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Abstraction mechanisms in the BETA programming language
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design
Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design
Dynamic inheritance in a statically typed language
Nordic Journal of Computing
Conquering aspects with Caesar
Proceedings of the 2nd international conference on Aspect-oriented software development
Fault tolerance and exception handling in BETA
Advances in exception handling techniques
Associative Modeling and Programming
OOIS '02 Proceedings of the 8th International Conference on Object-Oriented. Information Systems
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Incremental Mature Garbage Collection Using the Train Algorithm
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Activities: Abstractions for Collective Behavior
ECCOP '96 Proceedings of the 10th European Conference on Object-Oriented Programming
Generalising the BETA Type System
ECCOP '96 Proceedings of the 10th European Conference on Object-Oriented Programming
The M.A.D. Experience: Multiperspective Application Development in evolutionary prototyping
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
A Statically Safe Alternative to Virtual Types
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Frameworks by means of virtual types - exemplified by SDL
FORTE XI / PSTV XVIII '98 Proceedings of the FIP TC6 WG6.1 Joint International Conference on Formal Description Techniques for Distributed Systems and Communication Protocols (FORTE XI) and Protocol Specification, Testing and Verification (PSTV XVIII)
Aspect-Oriented Programming in BETA Using the Fragment System
Proceedings of the Workshop on Object-Oriented Technology
Transverse Activities: Abstractions in Object-Oriented Programming
Proceedings of the First JSSST International Symposium on Object Technologies for Advanced Software
A Petri Net Definition of a System Description Language
Proceedings of the International Sympoisum on Semantics of Concurrent Computation
An algebra for program fragments
SLIPE '85 Proceedings of the ACM SIGPLAN 85 symposium on Language issues in programming environments
Programming with abstract data types
Proceedings of the ACM SIGPLAN symposium on Very high level languages
Proceedings of the 1976 conference on Data : Abstraction, definition and structure
Associations as a Language Construct
TOOLS '99 Proceedings of the Technology of Object-Oriented Languages and Systems
New feature for module protection in SIMULA
ACM SIGPLAN Notices
Adding wildcards to the Java programming language
Proceedings of the 2004 ACM symposium on Applied computing
Values and objects in programming languages
ACM SIGPLAN Notices
Multi-sequential execution in the BETA programming language
ACM SIGPLAN Notices
Super and inner: together at last!
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ALGOL Bulletin
Further Thoughts on Record Handling AB21.3.6
ALGOL Bulletin
Scalable component abstractions
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
System development (Prentice-Hall International series in computer science)
System development (Prentice-Hall International series in computer science)
The Scala experiment: can we provide better language support for component systems?
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The development of the SIMULA languages
History of programming languages I
Structured programming
Chapter II: Notes on data structuring
Structured programming
Chapter III: Hierarchical program structures
Structured programming
The C# Programming Language
Synchronization abstraction in the BETA programming language
Computer Languages
Virtual class support at the virtual machine level
Proceedings of the Third Workshop on Virtual Machines and Intermediate Languages
A unified approach to modeling and programming
MODELS'10 Proceedings of the 13th international conference on Model driven engineering languages and systems: Part I
SAM'12 Proceedings of the 7th international conference on System Analysis and Modeling: theory and practice
Back to the future: SIMULA style concurrent objects
Proceedings of the 2013 workshop on Programming based on actors, agents, and decentralized control
Hi-index | 0.02 |
This paper tells the story of the development of BETA: a programming language with just one abstraction mechanism, instead of one abstraction mechanism for each kind of program element (classes, types, procedures, functions, etc.). The paper explains how this single abstraction mechanism, the pattern, came about and how it was designed to be so powerful that it covered the other mechanisms. In addition to describing the technical challenge of capturing all programming elements with just one abstraction mechanism, the paper also explains how the language was based upon a modeling approach, so that it could be used for analysis, design and implementation. It also illustrates how this modeling approach guided and settled the design of specific language concepts. The paper compares the BETA programming language with other languages and explains how such a minimal language can still support modeling, even though it does not have some of the language mechanisms found in other object-oriented languages. Finally, the paper tries to convey the organization, working conditions and social life around the BETA project, which turned out to be a lifelong activity for Kristen Nygaard, the authors of this paper, and many others.