Articles and Interviews
This page summarizes Scott's technical publications and interviews. It includes his doctoral dissertation, but does not include information on books or book-like publications (those are described on his Books & CDs page), nor does it list his many technical blog entries.
To be notified whenever Scott comes out with a new publication, subscribe to Scott's Professional Activities Blog.
"Universal References in C++11." Available in multiple formats as follows:
- Monochrome PDF: In Overload, October 2012.
- Video: At Channel 9, 9 October 2012
- Web page with syntax-colored code examples: At ISOcpp.org, 2 November 2012
"Make Interfaces Easy to Use Correctly and Hard to Use Incorrectly," 97 Things Every Programmer Should Know, September 2009. This is a condensed version of my 2004 IEEE Software article.
[Video Interview] "A Unique Perspective on C++," filmed in March 2007, posted in August/September 2007:
- Part 1: Scott's background and view on the proper role of C++.
- Part 2: Comments on C++ in embedded systems and on template metaprogramming.
- Part 3: Remarks on C++0x and a discussion of general approaches to software quality.
[Interview] Die Zukunft von C++ (The Future of C++), September 2006. A conversation with iX magazine. Available in two versions:
- As printed in the magazine (in German).
- In raw pre-publication form (in English, but lacking the sidebar added by the interviewer, Bernhard Merkle).
"A Pause to Reflect: Five Lists of Five," a series at The C++ Source:
- Part 1: The Most Important C++ Books...Ever, August 9, 2006.
- Part 2: The Most Important C++ Non-Book Publications...Ever, August 16, 2006.
- Part 3: The Most Important C++ Software...Ever, August 23, 2006.
- Part 4: The Most Important C++ People...Ever, August 30, 2006.
- Part 5: My Most Important Aha! Moments...Ever, September 6, 2006.
An annotated draft of an abandoned would-be article, "The Resource Return Problem," September 2005. Examines various C++ options for return types of factory functions.
[Interview] The evolution of C++ gives application developers an edge, June 2005. A brief interview with TechRepublic upon publication of Effective C++, Third Edition.
"Never Call Virtual Functions during Construction or Destruction," The C++ Source, May 2005. This is Item 9 of Effective C++, Third Edition, made available on the web as an example of what's in the book. (It's also available in PDF.)
"C++ and the Perils of Double-Checked Locking" (with Andrei Alexandrescu), Dr. Dobb's Journal, July (Part I) and August (Part II) 2004. Available in PDF in two versions:
Advice for Prospective Book Authors, December 2003 (with occasional updates since). Scott's insights and advice for people thinking about writing a technical book.
"Class Template, Member Template — or Both?," C/C++ Users Journal, November 2002.
"How Non-Member Functions Improve Encapsulation," C/C++ Users Journal, February 2000.
"Document Design for Effective Electronic Publication" (with Jason Jones), Proceedings of the 5th Conference on Human Factors & the Web, June 1999.
"Refinements to smart pointers," C++ Report, November-December 1996.
"Combining C++ and C in the Same Program," C/C++ Users Journal, October 1996. Based on material in More Effective C++.
"Smart pointers: automating inheritance and
const conversions," C++ Report, September 1996. Based on material in More Effective C++.
endl that couldn't," C++ Report, November-December 1995.
"Signed and unsigned types in interfaces," C++ Report, September 1995.
"Mastering User-defined Conversion Functions," C/C++ Users Journal, August 1995. Based on material in a pre-publication draft of More Effective C++.
"min, max, and more," C++ Report, January 1995.
"Constraining the Structure and Style of Object-Oriented Programs" (with Carolyn K. Duby and Steven P. Reiss), in Principles and Practice of Constraint Programming, MIT Press, 1995. The work described here was originally presented at the First Workshop on Principles and Practice of Constraint Programming, April 1993.
operator=: The readers fight back," C++ Report, November-December 1994.
"Code reuse, concrete classes, and inheritance," C++ Report, July-August 1994.
"Our friend, the assignment operator," C++ Report, May 1994.
"More on templates and parameters," C++ Report, February 1994.
"Efficiency and the real world," C++ Report, November-December 1993.
"On templates and parameters," C++ Report, September 1993.
"Facilitating Software Maintenance by Automated Detection of Constraint Violations" (with Anir Chowdhury), Proceedings of the 1993 Conference on Software Maintenance, September 1993.
Representing Software Systems in Multiple-View Development Environments. Doctoral dissertation, Brown University Department of Computer Science, May 1993.
CCEL: The C++ Constraint Expression Language (with Yueh-hong Lin), Brown University Computer Science Department, Technical Report CS-93-23, May 1993.
"Guidelines for efficiency," C++ Report, April 1993. Based on material in the first edition of Effective C++.
"Constraining the Structure and Style of Object-Oriented Programs" (with Carolyn K. Duby and Steven P. Reiss), Proceedings of the First Workshop on Principles and Practice of Constraint Programming (PPCP93), April 1993. Reprinted in Principles and Practice of Constraint Programming, MIT Press, 1995.
"Examining Development tools," C++ Report, October 1992 (part 1) and January 1993 (part 2). Later reprinted (with modest updates) in Black Belt C++: The Masters Collection, edited by Bruce Eckel, M&T Books, 1994.
"An Empirical Study of Multiple-View Software Development" (with Steven P. Reiss), Proceedings of the Fifth Symposium on Software Development Environments (ACM SIGSOFT ‘92), December 1992.
"CCEL: A Metalanguage for C++" (with Carolyn K. Duby and Steven P. Reiss), Proceedings of the 1992 USENIX C++ Conference, August 1992.
"Approaches to Effectiveness," C++ Report, July-August 1992.
"Support for Maintaining Object-Oriented Programs" (with Moises Lejter and Steven P. Reiss), IEEE Transactions on Software Engineering, December 1992. An earlier version of this paper appeared in Proceedings of the 1991 Conference on Software Maintenance (CSM-91), October 1991.
"A System for Multiparadigm Development of Software Systems" (with Steven P. Reiss), Proceedings of the Sixth International Workshop on Software Specification and Design (IWSSD-6), October 1991.
"Automatic Detection of Programming Errors: Initial Thoughts on a lint++" (with Moises Lejter), Proceedings of the 1991 USENIX C++ Conference, April 1991.
"Difficulties in Integrating Multiview Development Systems," IEEE Software, January 1991. This paper was nominated for the IEEE Software Best Article of the Year Award.
"Adding Semantic Information to C++ Development Environments" (with Moises Lejter and Steven P. Reiss), Proceedings of C++ at Work – ‘90, September 1990.
"Working with Object-Oriented Programs: The View from the Trenches is Not Always Pretty," Proceedings of the Symposium on Object-Oriented Programming emphasizing Practical Applications (SOOPPA), September 1990.
"FIELD Support for C++" (with Steven P. Reiss), Proceedings of the 1990 USENIX C++ Conference, April 1990.
"Using GELO to Visualize Software Systems" (with Steven P. Reiss and Carolyn Duby), Proceedings of the ACM SIGGRAPH Symposium on User Interface Software and Technology (UIST ‘89), November 1989.
"Representing Programs in Multiparadigm Software Development Environments" (with Steven P. Reiss), Proceedings of the Computer Software and Applications Conference (COMPSAC ‘89), September 1989.
Creating Graphical Languages in Garden (with Steven P. Reiss), Brown University Computer Science Department, Technical Report CS-89-02, January 1989.
Annotating Software With Arbitrary Performance Characteristics, Brown University Computer Science Department, Technical Report CS-89-01, January 1989.
"A Semantic Basis for Multiple Views of Programs" (with Steven P. Reiss), Advance Working Papers of the Second International Workshop on Computer-Aided Software Engineering (CASE ‘88), July 1988.
"DAMON: A Powerful Monitor for Design Automation Software" (with David R. Coelho), Proceedings of the 4th International Conference on Custom & Semi-Custom ICs, November 1984.
"Knowledge-Based Simulation of Genetic Regulation in Bacteriophage Lambda" (with Peter Friedland), Nucleic Acids Research, January 1984.
A Simulator for Regulatory Genetics and Its Application to Bacteriophage Lambda, Stanford University Heuristic Programming Project, Technical Report HPP-83-12, 1983.