skip to main content
Skip header Section
The design and evolution of C++January 1995
Publisher:
  • ACM Press/Addison-Wesley Publishing Co.
  • 1515 Broadway, 17th Floor New York, NY
  • United States
ISBN:978-0-201-54330-8
Published:01 January 1995
Pages:
461
Skip Bibliometrics Section
Bibliometrics
Abstract

No abstract available.

Cited By

  1. ACM
    Bentkamp A, Blanchette J, Nummelin V, Tourret S, Vukmirović P and Waldmann U (2023). Mechanical Mathematicians, Communications of the ACM, 66:4, (80-90), Online publication date: 1-Apr-2023.
  2. Steinbach P and Werner M gearshifft – The FFT Benchmark Suite for Heterogeneous Platforms High Performance Computing, (199-216)
  3. ACM
    Pentecost L and Stratton J Accelerating dynamically typed languages with a virtual function cache Proceedings of the 2nd International Workshop on Hardware-Software Co-Design for High Performance Computing, (1-6)
  4. Porkoláb Z Immutables in C++: Language Foundation for Functional Programming Central European Functional Programming School, (75-110)
  5. Baráth Á and Porkoláb Z (2015). Automatic checking of the usage of the C++ 11 move semantics, Acta Cybernetica, 22:1, (5-20), Online publication date: 1-Jan-2015.
  6. ACM
    Cacho N, César T, Filipe T, Soares E, Cassio A, Souza R, Garcia I, Barbosa E and Garcia A Trading robustness for maintainability: an empirical study of evolving c# programs Proceedings of the 36th International Conference on Software Engineering, (584-595)
  7. ACM
    Martin M, Mezini M and Erdweg S (2013). Template constructors for reusable object initialization, ACM SIGPLAN Notices, 49:3, (43-52), Online publication date: 5-Mar-2014.
  8. ACM
    Chen S, Erwig M and Walkingshaw E (2014). Extending Type Inference to Variational Programs, ACM Transactions on Programming Languages and Systems, 36:1, (1-54), Online publication date: 1-Mar-2014.
  9. ACM
    Chen S and Erwig M Early detection of type errors in C++ templates Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation, (133-144)
  10. ACM
    Martin M, Mezini M and Erdweg S Template constructors for reusable object initialization Proceedings of the 12th international conference on Generative programming: concepts & experiences, (43-52)
  11. Reis G A system for axiomatic programming Proceedings of the 11th international conference on Intelligent Computer Mathematics, (295-309)
  12. ACM
    Duffy E and Malloy B Design and implementation of a language-complete C++ semantic graph Proceedings of the 50th Annual Southeast Regional Conference, (170-175)
  13. Stroustrup B Foundations of c++ Proceedings of the 21st European conference on Programming Languages and Systems, (1-25)
  14. ACM
    Ramananandro T, Dos Reis G and Leroy X A mechanized semantics for C++ object construction and destruction, with applications to resource management Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (521-532)
  15. ACM
    Ramananandro T, Dos Reis G and Leroy X (2012). A mechanized semantics for C++ object construction and destruction, with applications to resource management, ACM SIGPLAN Notices, 47:1, (521-532), Online publication date: 18-Jan-2012.
  16. ACM
    Voufo L, Zalewski M and Lumsdaine A ConceptClang Proceedings of the seventh ACM SIGPLAN workshop on Generic programming, (71-82)
  17. Sutton A and Stroustrup B Design of concept libraries for c++ Proceedings of the 4th international conference on Software Language Engineering, (97-118)
  18. Wichmann B Whetstone wanderings Dependable and Historic Computing, (84-92)
  19. Pirkelbauer P, Dechev D and Stroustrup B Support for the evolution of C++ generic functions Proceedings of the Third international conference on Software language engineering, (123-142)
  20. Yu J, Yap C, Du Z, Pion S and Brönnimann H The design of core 2 Proceedings of the Third international congress conference on Mathematical software, (121-141)
  21. ACM
    Willcock J, Hoefler T, Edmonds N and Lumsdaine A AM++ Proceedings of the 19th international conference on Parallel architectures and compilation techniques, (401-410)
  22. Russell G, Keir P, Donaldson A, Dolinsky U, Richards A and Riley C Programming heterogeneous multicore systems using threading building blocks Proceedings of the 2010 conference on Parallel processing, (117-125)
  23. Brosgol B A comparison of generic template support Proceedings of the 15th Ada-Europe international conference on Reliable Software Technologies, (222-237)
  24. ACM
    Backes W and Cordasco J xM Proceedings of the 2010 ICSE Workshop on Software Engineering for Sensor Network Applications, (55-60)
  25. ACM
    Dos Reis G and Stroustrup B General constant expressions for system programming languages Proceedings of the 2010 ACM Symposium on Applied Computing, (2131-2136)
  26. ACM
    Garcia R and Lumsdaine A (2009). Toward foundations for type-reflective metaprogramming, ACM SIGPLAN Notices, 45:2, (25-34), Online publication date: 1-Feb-2010.
  27. ACM
    Riehl J (2009). Language embedding and optimization in mython, ACM SIGPLAN Notices, 44:12, (39-48), Online publication date: 25-Dec-2009.
  28. ACM
    Riehl J Language embedding and optimization in mython Proceedings of the 5th symposium on Dynamic languages, (39-48)
  29. ACM
    Garcia R and Lumsdaine A Toward foundations for type-reflective metaprogramming Proceedings of the eighth international conference on Generative programming and component engineering, (25-34)
  30. ACM
    Lincke D and Schupp S The function concept in C++ Proceedings of the 2009 ACM SIGPLAN workshop on Generic programming, (25-36)
  31. Seshadri S, Chiu L and Liu L A systematic approach to system state restoration during storage controller micro-recovery Proccedings of the 7th conference on File and storage technologies, (283-296)
  32. ACM
    Bruce K and Freund S (2008). Programming languages in a liberal arts education, ACM SIGPLAN Notices, 43:11, (45-49), Online publication date: 30-Nov-2008.
  33. ACM
    van Ellen T and Hasselbring W Extended exceptions for contingencies Proceedings of the 2008 RISE/EFTS Joint International Workshop on Software Engineering for Resilient Systems, (107-116)
  34. ACM
    Krischer R and Buhr P Asynchronous exception propagation in blocked tasks Proceedings of the 4th international workshop on Exception handling, (8-15)
  35. ACM
    Bachmann P Deferred cancellation Proceedings of the 15th Conference on Pattern Languages of Programs, (1-17)
  36. ACM
    Gil J, Pugh W, Weddell G and Zibin Y (2008). Two-dimensional bidirectional object layout, ACM Transactions on Programming Languages and Systems, 30:5, (1-38), Online publication date: 1-Aug-2008.
  37. Daniel H, Emil P and Mircea M Data types and abstraction Proceedings of the 12th WSEAS international conference on Computers, (229-234)
  38. ACM
    Zhao L (2008). Patterns, symmetry, and symmetry breaking, Communications of the ACM, 51:3, (40-46), Online publication date: 1-Mar-2008.
  39. ACM
    Gil J and Zibin Y (2007). Efficient dynamic dispatching with type slicing, ACM Transactions on Programming Languages and Systems, 30:1, (5-es), Online publication date: 1-Nov-2007.
  40. ACM
    Pirkelbauer P, Solodkyy Y and Stroustrup B Open multi-methods for c++ Proceedings of the 6th international conference on Generative programming and component engineering, (123-134)
  41. Decyk V, Norton C and Gardner H (2007). Why Fortran?, Computing in Science and Engineering, 9:4, (68-71), Online publication date: 1-Jul-2007.
  42. Kumar R and Agrawal V (2007). Multiple dispatch in reflective runtime environment, Computer Languages, Systems and Structures, 33:2, (60-78), Online publication date: 1-Jul-2007.
  43. ACM
    Stroustrup B Evolving a language in and for the real world Proceedings of the third ACM SIGPLAN conference on History of programming languages, (4-1-4-59)
  44. ACM
    Wong M (2007). C++ benchmarks in SPEC CPU2006, ACM SIGARCH Computer Architecture News, 35:1, (77-83), Online publication date: 1-Mar-2007.
  45. ACM
    Wasserrab D, Nipkow T, Snelting G and Tip F An operational semantics and type safety prooffor multiple inheritance in C++ Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, (345-362)
  46. ACM
    Gregor D, Järvi J, Siek J, Stroustrup B, Dos Reis G and Lumsdaine A Concepts Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, (291-310)
  47. ACM
    Porkoláb Z, Mihalicza J and Sipos Á Debugging C++ template metaprograms Proceedings of the 5th international conference on Generative programming and component engineering, (255-264)
  48. ACM
    Bachmann P Static and metaprogramming patterns and static frameworks Proceedings of the 2006 conference on Pattern languages of programs, (1-33)
  49. ACM
    Wasserrab D, Nipkow T, Snelting G and Tip F (2006). An operational semantics and type safety prooffor multiple inheritance in C++, ACM SIGPLAN Notices, 41:10, (345-362), Online publication date: 16-Oct-2006.
  50. ACM
    Gregor D, Järvi J, Siek J, Stroustrup B, Dos Reis G and Lumsdaine A (2006). Concepts, ACM SIGPLAN Notices, 41:10, (291-310), Online publication date: 16-Oct-2006.
  51. ACM
    Scott E and Johnstone A (2006). Right nulled GLR parsers, ACM Transactions on Programming Languages and Systems, 28:4, (577-618), Online publication date: 1-Jul-2006.
  52. Kompanets L Sketch of autopoietic essence of computing and knowledge working Proceedings of the 8th international conference on Artificial Intelligence and Soft Computing, (1130-1139)
  53. ACM
    Järvi J, Gregor D, Willcock J, Lumsdaine A and Siek J Algorithm specialization in generic programming Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation, (272-282)
  54. ACM
    Järvi J, Gregor D, Willcock J, Lumsdaine A and Siek J (2006). Algorithm specialization in generic programming, ACM SIGPLAN Notices, 41:6, (272-282), Online publication date: 11-Jun-2006.
  55. Rintala M Handling multiple concurrent exceptions in c++ using futures Advanced Topics in Exception Handling Techniques, (62-80)
  56. Buhr P and Krischer R Bound exceptions in object-oriented programming Advanced Topics in Exception Handling Techniques, (1-21)
  57. Shopyrin D (2006). Multimethods Implementation in C++ Using Recursive Deferred Dispatching, IEEE Software, 23:3, (62-73), Online publication date: 1-May-2006.
  58. ACM
    Dos Reis G and Stroustrup B (2006). Specifying C++ concepts, ACM SIGPLAN Notices, 41:1, (295-308), Online publication date: 12-Jan-2006.
  59. ACM
    Dos Reis G and Stroustrup B Specifying C++ concepts Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (295-308)
  60. ACM
    Buhr P and Harji A (2005). Implicit-signal monitors, ACM Transactions on Programming Languages and Systems, 27:6, (1270-1343), Online publication date: 1-Nov-2005.
  61. Richardson D and Krandick W Compiler-enforced memory semantics in the SACLIB computer algebra library Proceedings of the 8th international conference on Computer Algebra in Scientific Computing, (330-343)
  62. Porkoláb Z and Zólyomi I A feature composition problem and a solution based on c++ template metaprogramming Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering, (459-470)
  63. ACM
    Kumar R, Agrawal V and Mangolia A (2005). Realization of multimethods in single dispatch object oriented languages, ACM SIGPLAN Notices, 40:5, (18-27), Online publication date: 1-May-2005.
  64. Tanasescu V and Wojciechowski P Role-Based declarative synchronization for reconfigurable systems Proceedings of the 7th international conference on Practical Aspects of Declarative Languages, (52-66)
  65. Johnstone A, Scott E and Economopoulos G (2004). The Grammar Tool Box, Electronic Notes in Theoretical Computer Science (ENTCS), 110:C, (97-113), Online publication date: 31-Dec-2005.
  66. Stroustrup B Keynote speech Proceedings of the First international conference on Embedded Software and Systems, (1-13)
  67. ACM
    Donovan A, Kiežun A, Tschantz M and Ernst M Converting java programs to use generic libraries Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (15-34)
  68. ACM
    Donovan A, Kiežun A, Tschantz M and Ernst M (2004). Converting java programs to use generic libraries, ACM SIGPLAN Notices, 39:10, (15-34), Online publication date: 1-Oct-2004.
  69. Hu C (2004). Rethinking of Teaching Objects-First, Education and Information Technologies, 9:3, (209-218), Online publication date: 1-Sep-2004.
  70. ACM
    Ghosh D (2004). Generics in Java and C++, ACM SIGPLAN Notices, 39:5, (40-47), Online publication date: 1-May-2004.
  71. ACM
    Garcia R, Jarvi J, Lumsdaine A, Siek J and Willcock J (2003). A comparative study of language support for generic programming, ACM SIGPLAN Notices, 38:11, (115-134), Online publication date: 26-Nov-2003.
  72. ACM
    Garcia R, Jarvi J, Lumsdaine A, Siek J and Willcock J A comparative study of language support for generic programming Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, (115-134)
  73. Jayatilaka D and Grimwood D Tonto Proceedings of the 2003 international conference on Computational science, (142-151)
  74. Dillon L and Stirewalt R (2003). Inference Graphs, IEEE Transactions on Software Engineering, 29:2, (133-150), Online publication date: 1-Feb-2003.
  75. ACM
    Boehm H (2003). Destructors, finalizers, and synchronization, ACM SIGPLAN Notices, 38:1, (262-272), Online publication date: 15-Jan-2003.
  76. ACM
    Zibin Y and Gil J (2003). Incremental algorithms for dispatching in dynamically typed languages, ACM SIGPLAN Notices, 38:1, (126-138), Online publication date: 15-Jan-2003.
  77. ACM
    Boehm H Destructors, finalizers, and synchronization Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (262-272)
  78. ACM
    Zibin Y and Gil J Incremental algorithms for dispatching in dynamically typed languages Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (126-138)
  79. Sammet J and Mahoney M Software history Encyclopedia of Computer Science, (1613-1620)
  80. Stroustrup B C++ Encyclopedia of Computer Science, (174-176)
  81. Ernst M, Badros G and Notkin D (2002). An Empirical Analysis of C Preprocessor Use, IEEE Transactions on Software Engineering, 28:12, (1146-1170), Online publication date: 1-Dec-2002.
  82. Baskiyar S (2002). Efficient execution of pure object-oriented programs by follow-up compilation, Computing, 69:4, (273-289), Online publication date: 1-Dec-2002.
  83. ACM
    Kuchen H and Striegnitz J Higher-order functions and partial applications for a C++ skeleton library Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande, (122-130)
  84. ACM
    Garrido A and Johnson R Challenges of refactoring C programs Proceedings of the International Workshop on Principles of Software Evolution, (6-14)
  85. ACM
    Power J and Malloy B Exploiting metrics to facilitate grammar transformation into LALR format Proceedings of the 2001 ACM symposium on Applied computing, (636-640)
  86. Duret-Lutz A, Géraud T and Demaille A Design patterns for generic programming in C++ Proceedings of the 6th conference on USENIX Conference on Object-Oriented Technologies and Systems - Volume 6, (14-14)
  87. ACM
    Harrison W, Barton C and Raghavachari M (2000). Mapping UML designs to Java, ACM SIGPLAN Notices, 35:10, (178-187), Online publication date: 1-Oct-2000.
  88. ACM
    Harrison W, Barton C and Raghavachari M Mapping UML designs to Java Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (178-187)
  89. Buhr P and Mok W (2000). Advanced Exception Handling Mechanisms, IEEE Transactions on Software Engineering, 26:9, (820-836), Online publication date: 1-Sep-2000.
  90. Viega J, Reynolds P and Behrends R Automating Delegation in Class-Based Languages Proceedings of the Technology of Object-Oriented Languages and Systems (TOOLS 34'00)
  91. ACM
    Engler D and Hsieh W (2000). Derive, ACM SIGPLAN Notices, 35:7, (12-22), Online publication date: 1-Jul-2000.
  92. ACM
    Rayside D and Campbell G Aristotle and object-oriented programming Proceedings of the thirty-first SIGCSE technical symposium on Computer science education, (237-244)
  93. ACM
    Rayside D and Campbell G (2000). Aristotle and object-oriented programming, ACM SIGCSE Bulletin, 32:1, (237-244), Online publication date: 1-Mar-2000.
  94. ACM
    Engler D and Hsieh W Derive Proceedings of the ACM SIGPLAN workshop on Dynamic and adaptive compilation and optimization, (12-22)
  95. Kasbekar M, Das C, Yajnik S, Klemm R and Huang Y Issues in the Design of a Reflective Library for Checkpointing C++ Objects Proceedings of the 18th IEEE Symposium on Reliable Distributed Systems
  96. ACM
    Sweeney P and Gil J (1999). Space and time-efficient memory layout for multiple inheritance, ACM SIGPLAN Notices, 34:10, (256-275), Online publication date: 1-Oct-1999.
  97. ACM
    Sweeney P and Gil J Space and time-efficient memory layout for multiple inheritance Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (256-275)
  98. ACM
    P. P and Raccoon L (1999). Multiple downcasting techniques, ACM SIGSOFT Software Engineering Notes, 24:3, (69-75), Online publication date: 1-May-1999.
  99. ACM
    Fisher K and Reppy J (1999). The design of a class mechanism for Moby, ACM SIGPLAN Notices, 34:5, (37-49), Online publication date: 1-May-1999.
  100. ACM
    Fisher K and Reppy J The design of a class mechanism for Moby Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation, (37-49)
  101. Gil J and Gutterman Z Compile time symbolic derivation with C++ templates Proceedings of the 4th conference on USENIX Conference on Object-Oriented Technologies and Systems - Volume 4, (18-18)
  102. ACM
    Proulx V (1998). Traffic simulation, ACM SIGCSE Bulletin, 30:1, (48-52), Online publication date: 1-Mar-1998.
  103. ACM
    Proulx V Traffic simulation Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education, (48-52)
  104. ACM
    Boyland J and Castagna G (1997). Parasitic methods, ACM SIGPLAN Notices, 32:10, (66-76), Online publication date: 9-Oct-1997.
  105. ACM
    Boyland J and Castagna G Parasitic methods Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (66-76)
  106. ACM
    Bogoiavlenski I, Clear A, Davies G, Flack H, Myers J, Rasala R, Goldweber M and Impagliazzo J (1997). Historical perspectives on the computing curriculum, ACM SIGCUE Outlook, 25:4, (94-111), Online publication date: 1-Oct-1997.
  107. van Emden M (1997). Value Constraints in the CLP Scheme, Constraints, 2:2, (163-183), Online publication date: 1-Oct-1997.
  108. Hamilton J Montana smart pointers Proceedings of the 3rd conference on USENIX Conference on Object-Oriented Technologies (COOTS) - Volume 3, (2-2)
  109. ACM
    Goldweber M, Impagliazzo J, Bogoiavlenski I, Clear A, Davies G, Flack H, Myers J and Rasala R Historical perspectives on the computing curriculum (report of the ITiCSE '97 working group on historical perspectives in computing education) The supplemental proceedings of the conference on Integrating technology into computer science education: working group reports and supplemental proceedings, (94-111)
  110. ACM
    Chen W, Sun J and Tang Z (1997). Consummating virtuality to support more polymorphism in C++, ACM SIGPLAN Notices, 32:6, (61-68), Online publication date: 1-Jun-1997.
  111. ACM
    Chandra R, Chen D, Cox R, Maydan D, Nedeljkovic N and Anderson J (1997). Data distribution support on distributed shared memory multiprocessors, ACM SIGPLAN Notices, 32:5, (334-345), Online publication date: 1-May-1997.
  112. ACM
    Chandra R, Chen D, Cox R, Maydan D, Nedeljkovic N and Anderson J Data distribution support on distributed shared memory multiprocessors Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation, (334-345)
  113. ACM
    Dean D The security of static typing with dynamic linking Proceedings of the 4th ACM conference on Computer and communications security, (18-27)
  114. ACM
    Schoenefeld D (1997). Object-oriented design and programming, ACM SIGCSE Bulletin, 29:1, (135-139), Online publication date: 1-Mar-1997.
  115. ACM
    Rasala R (1997). A model C++ tree iterator class for binary search trees, ACM SIGCSE Bulletin, 29:1, (72-76), Online publication date: 1-Mar-1997.
  116. ACM
    Rasala R (1997). Function objects, function templates, and passage by behavior in C++, ACM SIGCSE Bulletin, 29:1, (35-38), Online publication date: 1-Mar-1997.
  117. ACM
    Schoenefeld D Object-oriented design and programming Proceedings of the twenty-eighth SIGCSE technical symposium on Computer science education, (135-139)
  118. ACM
    Rasala R A model C++ tree iterator class for binary search trees Proceedings of the twenty-eighth SIGCSE technical symposium on Computer science education, (72-76)
  119. ACM
    Rasala R Function objects, function templates, and passage by behavior in C++ Proceedings of the twenty-eighth SIGCSE technical symposium on Computer science education, (35-38)
  120. ACM
    Wise G (1996). Objective view point: a cornucopia of C++ resources, XRDS: Crossroads, The ACM Magazine for Students, 3:2, (20-23), Online publication date: 1-Nov-1996.
  121. ACM
    Werther B and Conway D (1996). A modest proposal, ACM SIGPLAN Notices, 31:11, (74-82), Online publication date: 1-Nov-1996.
  122. ACM
    Gil J and Lorenz D (1996). Environmental acquisition, ACM SIGPLAN Notices, 31:10, (214-231), Online publication date: 1-Oct-1996.
  123. ACM
    Gil J and Lorenz D Environmental acquisition Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (214-231)
  124. ACM
    Wise G (1996). Objective view point: casting in C++, XRDS: Crossroads, The ACM Magazine for Students, 3:1, (21-25), Online publication date: 1-Sep-1996.
  125. ACM
    Wise G (1996). Casting in C++, ACM SIGPLAN Notices, 31:8, (10-15), Online publication date: 1-Aug-1996.
  126. Canada J Assessment of Tools in the Telecommunications Industry Proceedings of the Proceedings of the Fourth International Symposium on Assessment of Software Tools (SAST '96)
  127. ACM
    Reppy J and Riecke J (1996). Simple objects for Standard ML, ACM SIGPLAN Notices, 31:5, (171-180), Online publication date: 1-May-1996.
  128. ACM
    Reppy J and Riecke J Simple objects for Standard ML Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation, (171-180)
  129. ACM
    Jazayeri M and Trausmuth G Design concepts as basis for organizing software catalogs Proceedings of the 1996 ACM symposium on Applied Computing, (558-564)
  130. ACM
    Sabbaghi N (1996). Facilitating abstraction and reuse with ExpectTK, XRDS: Crossroads, The ACM Magazine for Students, 2:3, (8-10), Online publication date: 1-Feb-1996.
  131. McIver L and Conway D Seven Deadly Sins of Introductory Programming Language Design Proceedings of the 1996 International Conference on Software Engineering: Education and Practice (SE:EP '96)
  132. ACM
    Toal R (1996). Using Ada and C++ in computer science education, ACM SIGAda Ada Letters, XVI:1, (58-69), Online publication date: 15-Jan-1996.
  133. ACM
    Stroustrup B A history of C++ History of programming languages---II, (699-769)
  134. Seelemann I Limiting the probe effect in debugging concurrent object-oriented programs Proceedings of the 1995 conference of the Centre for Advanced Studies on Collaborative research
  135. ACM
    Riehle D (1995). How and why to encapsulate class trees, ACM SIGPLAN Notices, 30:10, (251-264), Online publication date: 17-Oct-1995.
  136. ACM
    Riehle D How and why to encapsulate class trees Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, (251-264)
  137. ACM
    Stroustrup B (1995). Why C++ is not just an object-oriented programming language, ACM SIGPLAN OOPS Messenger, 6:4, (1-13), Online publication date: 1-Oct-1995.
  138. ACM
    Stroustrup B Why C++ is not just an object-oriented programming language Addendum to the proceedings of the 10th annual conference on Object-oriented programming systems, languages, and applications, (1-13)
  139. Nilsson N (1995). Eye on the Prize, AI Magazine, 16:2, (9-17), Online publication date: 1-Jun-1995.
  140. ACM
    Stacy W and MacMillan J (1995). Cognitive bias in software engineering, Communications of the ACM, 38:6, (57-63), Online publication date: 1-Jun-1995.
  141. ACM
    Schilling J (1995). Dynamically-valued constants, ACM SIGPLAN Notices, 30:4, (13-20), Online publication date: 1-Apr-1995.
  142. ACM
    Bergin J Run-time design for object-oriented extensions to Pascal Proceedings of the 1995 ACM 23rd annual conference on Computer science, (97-103)
  143. Parkes S, Chandy J and Banerjee P A library-based approach to portable, parallel, object-oriented programming Proceedings of the 1994 ACM/IEEE conference on Supercomputing, (69-78)
Contributors
  • Columbia University

Recommendations

Reviews

Allan Blackman

The designer of C++ has produced a generally readable and literate account of the development of the language: an explanation and justification of difficult, sometimes agonizing, design decisions. He holds that language design isnt an exercise in pure thought, but a very practical exercise in balancing needs, ideals, techniques, and constraints. A good language is not merely designed, it is grown. The exercise has more to do with engineering, sociology, and philosophy than with mathematics. This view is amply supported by his experience, but only because Stroustrup was concerned, above all, that C++ be widely accepted and used by the often-intransigent C community and others. In this respect he has succeeded, since by 1992 over one million C++ compilers had been sold and C++ had become the most popular object-oriented language. Written for designers and sophisticated programmers, the presentation assumes a detailed knowledge of C++, but readers familiar with other languages can still read some sections with profit or can ob tain the background knowledge by consulting the authors earlier works [1,2] or other surveys of C++. The book is formally divided into two parts, but four parts can be distinguished. The first part (chapters 1 through 4) describes the development of the language from its prehistory through Release 1.0 of the compiler front-end Cfront, while the fourth part (chapters 10 through 18) reviews language attributes—memory management, overloading, multiple inheritance, class, casting, templates, exception handling, namespaces, and the C preprocessor—that were added or changed thereafter. The first part proceeds chronologically, but the fourth part is organized by language element. The second part (chapter 5) provides the post–Release 1.0 chronology and should be read immediately before the fourth part. The third part (chapters 6 through 9) deals with broad issues—standardization, use, libraries, and the future—and should have been placed last as a conclusion. The nonspecialist will find the early parts more readable than the last part. Depending on the readers interest, the value of this volume could lie in either the generalizations about language design or the rationales for particular language features. Among the former, Stroustrup repeatedly states that C++ was designed to combine Simulas classes with Cs efficiency. While maintaining that class is the proper basis of program organization and that the language designer should provide features that encourage such organization, he also emphasizes that C++ can and should accommodate different styles and that programmers should not be forced to adopt any one style. The fairly elaborate design rules for C++ are organized hierarchically. At the most general level are two aims. First, C++ makes programming more enjoyable for serious programmers. Second, C++ is a general-purpose programming language that is a better C, supports data abstraction, and supports object-oriented programming. By contrast, “provide as good support for user-defined types as for built-in types” is a low-level, language-technical rule. While Stroustrup admits that hindsight played a part in the formulation of these rules, he also says they were present in his thinking from the earliest days of the project. Although the author admits some errors and omissions, and has some definite ideas about how C++ should evolve, he is generally happy with what he has wrought. Since there is no accounting for taste in languages, some people will disagree, perhaps vehemently, with his design decisions and will deplore the final product. But Stroustrup must be commended for making his thinking available—as he has in his many papers and Internet postings—for all to examine, applaud, or criticize. Everyone interested in programming languages must attend to the issues raised in this volume.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.