Search For:

Displaying 1-24 out of 24 total
Understanding and Effectively Preventing the ABA Problem in Descriptor-Based Lock-Free Designs
Found in: Object-Oriented Real-Time Distributed Computing, IEEE International Symposium on
By Damian Dechev, Peter Pirkelbauer, Bjarne Stroustrup
Issue Date:May 2010
pp. 185-192
An increasing number of modern real-time systems and the nowadays ubiquitous multicore architectures demand the application of programming techniques for reliable and efficient concurrent synchronization. Some recently developed Compare-And-Swap (CAS) base...
 
The demacrofier
Found in: 2012 IEEE International Conference on Software Maintenance (ICSM)
By Aditya Kumar,Andrew Sutton,Bjarne Stroustrup
Issue Date:September 2012
pp. 658-661
C++ programs can be rejuvenated by replacing error-prone usage of the C Preprocessor macros with type safe C++11 declarations. We have developed a classification of macros that directly maps to corresponding C++11 expressions, statements, and declarations....
 
Rejuvenating C++ programs through demacrofication
Found in: 2012 IEEE International Conference on Software Maintenance (ICSM)
By Aditya Kumar,Andrew Sutton,Bjarne Stroustrup
Issue Date:September 2012
pp. 98-107
We describe how legacy C++ programs can be rejuvenated using C++11 features such as generalized constant expressions, perfect forwarding, and lambda expressions. In general, this work develops a correspondence between different kinds of macros and the C++ ...
 
Software Development for Infrastructure
Found in: Computer
By Bjarne Stroustrup
Issue Date:January 2012
pp. 47-58
Infrastructure software needs more stringent correctness, reliability, efficiency, and maintainability requirements than non- essential applications. This implies greater emphasis on up-front design, static structure enforced by a type system, compact data...
 
Reliable and Efficient Concurrent Synchronization for Embedded Real-Time Software
Found in: Space Mission Challenges for Information Technology, IEEE International Conference on
By Damian Dechev, Bjarne Stroustrup
Issue Date:July 2009
pp. 323-330
The high degree of autonomy and increased complexity of future robotic spacecraft pose significant challenges in assuring their reliability and efficiency. To achieve fast and safe concurrent interactions in mission critical code, we survey the practical s...
 
Semantically Enhanced Containers for Concurrent Real-Time Systems
Found in: Engineering of Computer-Based Systems, IEEE International Conference on the
By Damian Dechev, Peter Pirkelbauer, Nicolas Rouquette, Bjarne Stroustrup
Issue Date:April 2009
pp. 48-57
Future space missions, such as Mars Science Laboratory, are built upon computing platforms providing a high degree of autonomy and diverse functionality. The increased sophistication of robotic spacecraft has skyrocketed the complexity and cost of its soft...
 
Model-Based Product-Oriented Certification
Found in: Engineering of Computer-Based Systems, IEEE International Conference on the
By Damian Dechev, Bjarne Stroustrup
Issue Date:April 2009
pp. 295-304
Future space missions such as the Mars Science Laboratory and Project Constellation suggest the engineering of some of the most complex man-rated software systems. The present process-oriented certification methodologies employed by NASA are becoming prohi...
 
C++ Dynamic Cast in Autonomous Space Systems
Found in: Object-Oriented Real-Time Distributed Computing, IEEE International Symposium on
By Damian Dechev, Rabi Mahapatra, Bjarne Stroustrup, David Wagner
Issue Date:May 2008
pp. 499-507
The dynamic cast operation allows flexibility in the design and use of data management facilities in object-oriented programs. Dynamic cast has an important role in the implementation of the Data Management Services (DMS) of the Mission Data System Project...
 
An Early-Reply Based Framework: Reliable Concurrency that Is Verifiable
Found in: High-Assurance Systems Engineering, IEEE International Symposium on
By Stephen W. Cook, Bjarne Stroustrup, Scott M. Pike
Issue Date:November 2007
pp. 405-406
Despite its widespread use, concurrent programming is still plagued by reliability problems, such as race conditions and deadlock, not found in sequential programs. We present a concurrency framework to help developers avoid these error conditions, and mak...
   
What Is Object-Oriented Programming?
Found in: IEEE Software
By Bjarne Stroustrup
Issue Date:May 1988
pp. 10-20
<p>The meaning of the term 'object oriented' is examined in the context of the general-purpose programming language C++. This choice is made partly to introduce C++ and partly because C++ is one of the few languages that supports data abstraction, ob...
 
Open pattern matching for C++
Found in: Proceedings of the 12th international conference on Generative programming: concepts & experiences (GPCE '13)
By Bjarne Stroustrup, Gabriel Dos Reis, Yuriy Solodkyy
Issue Date:October 2013
pp. 33-42
Pattern matching is an abstraction mechanism that can greatly simplify source code. We present functional-style pattern matching for C++ implemented as a library, called Mach71. All the patterns are user-definable, can be stored in variables, passed among ...
     
Open pattern matching for C++
Found in: Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity (SPLASH '13)
By Gabriel Dos Reis, Bjarne Stroustrup, Yuriy Solodkyy
Issue Date:October 2013
pp. 97-98
Pattern matching is an abstraction mechanism that can greatly simplify source code. We present functional-style pattern matching for C++ implemented as a library, called Mach7. All the patterns are user-definable, can be stored in variables, passed among f...
     
Open and efficient type switch for C++
Found in: Proceedings of the ACM international conference on Object oriented programming systems languages and applications (OOPSLA '12)
By Bjarne Stroustrup, Gabriel Dos Reis, Yuriy Solodkyy
Issue Date:October 2012
pp. 963-982
Selecting operations based on the run-time type of an object is key to many object-oriented and functional programming techniques. We present a technique for implementing open and efficient type switching on hierarchical extensible data types. The techniqu...
     
ViewpointWhat should we teach new software developers? Why?
Found in: Communications of the ACM
By Bjarne Stroustrup
Issue Date:January 2010
pp. 40-42
Fundamental changes to computer science education are required to better address the needs of industry.
     
Minimizing dependencies within generic classes for faster and smaller programs
Found in: Proceeding of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications (OOPSLA '09)
By Bjarne Stroustrup, Dan Tsafrir, David F. Bacon, Robert W. Wisniewski
Issue Date:October 2009
pp. 1057-1058
Generic classes can be used to improve performance by allowing compile-time polymorphism. But the applicability of compile-time polymorphism is narrower than that of runtime polymorphism, and it might bloat the object code. We advocate a programming princi...
     
Scalable nonblocking concurrent objects for mission critical code
Found in: Proceeding of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications (OOPSLA '09)
By Bjarne Stroustrup, Damian Dechev
Issue Date:October 2009
pp. 597-612
The high degree of complexity and autonomy of future robotic space missions, such as Mars Science Laboratory (MSL), poses serious challenges in assuring their reliability and efficiency. Providing fast and safe concurrent synchronization is of critical imp...
     
Programming in an undergraduate CS curriculum
Found in: Proceedings of the 14th Western Canadian Conference on Computing Education (WCCCE '09)
By Bjarne Stroustrup
Issue Date:May 2009
pp. 1-36
This note argues for a fairly classical undergraduate computer science (CS) curriculum where "software" (programming and related topics) takes a bigger role than is often the case. The discussion is based partly on experience with an undergraduate curricul...
     
Runtime concepts for the C++ standard template library
Found in: Proceedings of the 2008 ACM symposium on Applied computing (SAC '08)
By Bjarne Stroustrup, Mat Marcus, Peter Pirkelbauer, Sean Parent
Issue Date:March 2008
pp. 28-34
A key benefit of generic programming is its support for producing modules with clean separation. In particular, generic algorithms are written to work with a wide variety of unmodified types. The Runtime concept idiom extends this support by allowing unmod...
     
Evolving a language in and for the real world: C++ 1991-2006
Found in: Proceedings of the third ACM SIGPLAN conference on History of programming languages (HOPL III)
By Bjarne Stroustrup
Issue Date:June 2007
pp. 4-es
This paper outlines the history of the C++ programming language from the early days of its ISO standardization (1991), through the 1998 ISO standard, to the later stages of the C++0x revision of that standard (2006). The emphasis is on the ideals, constrai...
     
Specifying C++ concepts
Found in: Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL'06)
By Bjarne Stroustrup, Gabriel Dos Reis
Issue Date:January 2006
pp. 295-308
C++ templates are key to the design of current successful mainstream libraries and systems. They are the basis of programming techniques in diverse areas ranging from conventional general-purpose programming to software for safety-critical embedded systems...
     
Why C++ is not just an object-oriented programming language
Found in: Addendum to the proceedings of the 10th annual conference on Object-oriented programming systems, languages, and applications (Addendum) (OOPSLA '95)
By Bjarne Stroustrup
Issue Date:October 1995
pp. 99-107
This paper describes the design and implementation of a query engine that provides extended SQL-based access to the data managed by an object-oriented database system. This query engine allows extended SQL queries to be embedded in C++ programs or issued i...
     
A history of C++: 1979--1991
Found in: The second ACM SIGPLAN conference on History of programming languages (HOPL-II)
By Bjarne Stroustrup
Issue Date:April 1993
pp. 199
This paper outlines the history of the C++ programming language. The emphasis is on the ideas, constraints, and people that shaped the language, rather than the minuitiae of language features. Key design decisions relating to language features are discusse...
     
An overview of C++ (abstract only)
Found in: Proceedings of the 1986 SIGPLAN workshop on Object-oriented programming
By Bjarne Stroustrup
Issue Date:June 1986
pp. 1-ff
The computing employed in oil and gas exploration is predominately scientific, resulting in a variety of data analysis applications. Although the analytical domains vary greatly (e.g., seismic processing,, geologic modeling, engineering facilities design, ...
     
An overview of C++
Found in: Proceedings of the 1986 SIGPLAN workshop on Object-oriented programming
By Bjarne Stroustrup
Issue Date:June 1986
pp. 1-ff
The computing employed in oil and gas exploration is predominately scientific, resulting in a variety of data analysis applications. Although the analytical domains vary greatly (e.g., seismic processing,, geologic modeling, engineering facilities design, ...
     
 1