160 likes | 756 Views
What is C++ . Introduction to the C++ Programming Language. Outline. History What is C++ How does C++ relate to other OO languages Types of applications for C++ Components of MS’s Visual C++ 6.0 Advantages / Disadvantages of C++. History of C++. 1967: "B" and BCPL developed (typeless)
E N D
What is C++ Introduction to the C++ Programming Language
Outline • History • What is C++ • How does C++ relate to other OO languages • Types of applications for C++ • Components of MS’s Visual C++ 6.0 • Advantages / Disadvantages of C++
History of C++ • 1967: "B" and BCPL developed (typeless) • 1972: C language developed at Bell Labs • Dennis Ritchie wrote C for Unix OS • Needed C for work with Unix • late 70s: C becomes popular for OS development by many vendors • Many variants of the language developed • ANSI standard C in 1987-89
History of C++ (continued) • early 80s: Bjarne Stroustrup adds OO features to C creating C++ • 90s: continued evolution of the language and its applications • preferred language for OS and low level programming • popular language for application development • low level control and high level power
Conceptually what is C++ • Alternatives: • is it C, with lots more options and features? • is it an OO programming language with C as its core? • is it a development environment? • On most systems it is a development environment, language, and library, used for both procedural and object oriented programming, that can be customized and extended as desired
Versions of C++ • ANSI C++ • Microsoft C++ (MS Visual C++ 6.0) • Other vendors: Borland, Symantec, Turbo, … • Many older versions (almost annual) including different version of C too • Many vendor specific versions • Many platform specific versions
Characteristics of C++ as a Computer Language • Procedural • Object Oriented • Extensible • ...
Other OO Languages • Smalltalk • pure OO language developed at PARC • Java • built on C/C++ • objects and data types • Eifel and others
What you can do with C++ • Apps (standalone, Web apps, components) • Tiered apps • Active desktop (Dynamic HTML, incl Web) • Access to MFC • Create new controls • Create apps with "look and feel" of IE4 • ActiveX documents (charts, graphs, etc.) • Data access (OLE, e-mail, files, ODBC) • Integrate components w/ other languages
Microsoft’s C++ • Development Environment • project mgmt, editor, debugging tools, user interface to tools • Visual Studio 6.0 • Language ( • compiler, linker, loader, etc. • Visual C++ 6.0 • Libraries • std libraries, iostream, iomanip, stdio, time, string, math, etc. • Standard Template Library (STL)
Disadvantages of C++ • Tends to be one of the less portable languages • Complicated!!! • 40 operators, intricate precedence, pointers, etc. • can control everything • many exceptions and special cases • tremendous libraries both standard, vendor specific, and available for purchase, but all are intricate • Aspects above can result in high cost, maintenance and reliability problems
Advantages of C++ • Available on most machines • Can get good performance • Can get small size • Can manage memory effectively • Can control everything • Good supply of programmers • Suitable for almost any type of program (from systems programs to applications)
Steps in Developing a C++ Program • Plan • Edit (uses integrated editor) • Compile * (converts to binary) • Link * (resolves external references) • Load (places into memory) • Run * (transfers control, executes) * IDE reports errors at this step; must fix them
Objectives for a C++ System • Solves correct problem • Correct solution ************ but also • Clear documentation (internal and external) • Understandable code • Maintainable and extendable system • Reusable code ************ how about succinct code?? performance??