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


add to Google Reader add to Google Bookmark add to bloglines add to newsgator add to FURL add to digg add to webnews add to Netscape add to Yahoo MyWeb add to spurl.net add to diigo Bookmark newsvine Bookmark del.icio.us Bookmark @ SIMPIFY Bookmark MISTER WONG Bookmark Linkarena Bookmark icio.de Bookmark oneview Bookmark folkd.com Bookmark yigg.de Bookmark reddit Bookmark StumbleUpon Bookmark Slashdot Bookmark blinklist Bookmark technorati add to blogmarks add to blinkbits add to ma.gnolia add to smarking.com add to netvouz add to co.mments add to Connotea add to de.lirio.us
Search Terms:

 

Related Files

Programming in C C++ Java

Filed under: Programming and C Programming Language
Programming 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 Language
The 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 Language
The 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 Language
1 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 Language
C Programming Language (below) as part of their research at AT&T. Unix and C++ ... The C Programming Language 2nd ed. by Kernighan and Ritchie. ...