Home > Programming > C Programming Language
Science of C++ Programming
Sort Desciption:on a solid theoretical foundation. The science of. C++. programming ... program that compiles is correct! Thescienceof C++ programming ...
Content Inside:Science of C++ ProgrammingPage 1Science ofC++ ProgrammingAlexander A. StepanovHewlettPackard Laboratories(joint work with Andrew Koenig Bell Labs andMehdi Jazayeri and Meng LeeHLabs)November 11199Page 2AbstractThe purpose ofthistalkis to demonstrate that to transform programming from an art into science it is necessary to develop a system offundamental laws that govern the behaviorofsoftware components. We start with a set of axioms that describe the relationshipsbetween constructors assignment and equality and show that without them even the mostbasic routines would not work correctly. We proceed to show that similar axioms describe'the semantics of iterators or generalized pointers and allow one to build generic algorithms for such iterators. C++ is a powerful enough languagethe first such language inour experienceto allow the construction of generic programming components that combine mathematical precision beauty and abstractness with the efficiency of nongenerichandcrafted code. We maintain that the development of such components must be basedon a solid theoretical foundation.The science ofC++programming2rHEWLETT.tPACKAADPage 3The message:1. There exists a set ofbasic conceptsthat describe software.2.These concepts are related byfundamentallaws.3. These laws arepracticalandselfevident.Translation:not everyprogram that compiles is correct!Thescienceof C++ programming3rHEWLETTPACKARDPage 4What's wrong with this program?class IntVec (int*Viintnipublic:IntVec(int len) : v(new intlen]) n(len) {}IntVec(IntVec&);IntVec(int len int start);IntVec() { delete (]Vi}int operator==(IntVec& x){ returnV==X.Vi}int& operator(] (int i) { returnVi]i }int size() {returnni});IntVec::IntVec(IntVec& x) : y(new intx.size()]) n(x.size({for (int i=Oii<size(); i++) (*this) i]=xi];}IntVec::IntVec(int len int start)v(new intlen]) n(len) {for (int i=Oii<size(); i++) (*this) i]=start++i}The science of C++programming4r13HEWLETTa:..&PACKARDP age 5Dermition ofcorrectness: ...
Source: www.stepanovpapers.com
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Related Files
Programming in C C++ Java
Filed under: Programming and C Programming LanguageProgramming in C C++ Java. Course Overview. Object oriented programming languages are widely used for the development of complex software systems. ...
C Programming
Filed under: Programming and C Programming LanguageThe C Programming Language ANSI C. By Brian W. C. Kernighan & Dennis M. Ritchie. K and R. "Practical C programming". By Steve ...
An Overview of the C++ Programming Language
Filed under: Programming and C Programming LanguageThe C++ programming language provides a model of memory and computation that ... 3 The C Programming Model presents the C subset of C++ and other C++ ...
C Programming Fundamentals
Filed under: Programming and C Programming Language1 C Programming Fundamentals C is a compiled language. The user creates source code (often ... exe extension). Below is typical C program called LED.C that illustrates some fundamental C ...
Essential C
Filed under: Programming and C Programming LanguageC Programming Language (below) as part of their research at AT&T. Unix and C++ ... The C Programming Language 2nd ed. by Kernighan and Ritchie. ...
