C++ How to Program 7th Edition: Chapter 1 Review
C++
enhances the C language and provides capabilities for object-oriented programming
Agile Software Development
a set of methodologies that try to get software implemented quickly with fewer resources than previous methodologies
Unified Modeling Language (UML)
a graphical language that allows people who build systems to represent their object-oriented designs in a common notation
object technology
a packaging scheme that helps us create meaningful software units
Web 2.0
a series of Internet trends especially focused on the empowerment of the user and on community-generated content
World Wide Web
allows computer users to locate and view multimedia-based documents on almost any subject over the Internet
object-oriented programming
allows for the production of software that is more understandable, better organized, and easier to maintain and debug
LAMP
an acronym for a set of open source technologies used to build web applications - it stands for Linux, Apache, MySQL, and PHP (or Perl or Python)
object
an instance of a class
MySQL
an open source database management system
Linux
an open source operating system
PHP
an open source server-side "scripting" language for developing Internet applications
computer
capable of performing computations and making logical decisions at speeds billions of times faster than human beings can
associations
class relationships with other classes
mashup
combination of two or more existing web applications to serve a new purpose; dependent on small modular pieces and open access to web services APIs
Ruby on Rails
combines the scripting language Ruby with the Rails web application framework
preprocessor directives
commands which indicate that certain manipulations are to be performed on the program before compilation
Apple Computer
company that popularized personal computing
software
computer programs that run on a computer
1990s
decade in which object-oriented programming became widely used, allowing software developers to make major strides in the software development process
Technical Report 1
describes the proposed changes to the C++ Standard Library, many of which are based on current Boost libraries
FORTRAN
developed by IBM in the 1950s for scientific and engineering applications that require complex mathematical computations
COBOL
developed in the 1950s for commercial applications that require precise and efficient data manipulation
BASIC
developed in the 1960s at Dartmouth College for programming novices
Ada
developed under the sponsorship of the DoD during the 1970s and early 1980s; provides multitasking, which allows programmers to specify that many activities are to occur in parallel
open source software development
developers creating and evolving software in exchange for the right to use that software for their own purposes
preprocessor program
executes automatically before the compiler's translation phase begins
Boost C++ Libraries
free and open source libraries that work well with the C++ Standard Library
C++ systems
generally consist of three parts: a program development environment, the language, and the C++ Standard Library
Internet
global network of computers initiated four decades ago with funding supplied by the U.S. Department of Defense
computing costs
have been decreasing due to rapid technological development
.NET platform
implementation of Microsoft's strategy for integrating the Internet and the web into computer applications
data members
instances of data contained within a class
Visual Basic
introduced in the 1990s to simplify developing Windows applications
refactoring
involves reworking code to make it clearer and easier to maintain
high-level languages
languages (like C++) that contain English words and conventional mathematical notations
IBM's Personal Computer (PC)
legitimized personal computing in business, industry, and government organizations
linker
links the object code with the code for the missing functions to fill in the "holes" and produce an executable program
packaging software as classes
makes it possible for future software systems to reuse the classes
object-oriented design (OOD)
models software components in terms of real world objects; takes advantage of class relationships and inheritance relationships
information hiding
objects normally not allowed to know how other objects are implemented
computers
often referred to as hardware; controlled by software
distributed computing
phenomenon prompted by early personal computers linked together in computer networks
Visual C#
programming language developed for Microsoft's .NET platform; forms the core of the .NET platform along with Visual Basic and Visual C++
assembly language
programming language formed from English-like abbreviations; translator programs called assemblers convert it into machine language
interpreter programs
programs that directly execute high-level language programs; eliminate the need to compile them into machine language
design patterns
proven architectures for constructing object-oriented software
memory unit
rapid-access and low-capacity "warehouse" section of the computer; retains both input and output for processing and placement
objects
reusable software components that model items in the real world
C++ Standard Library
rich collection of existing classes and functions that programmers use instead of programming every needed class and function
member functions
set of functions that manipulate data and provide services to clients
computer programs
sets of instructions that allow the computer to process data through orderly sets of actions
Simula
simulation programming language whose capabilities were added to C to create C++
social networking sites
sites that help users manage their interpersonal relationships
classes
software entities that with object technology can be reused for future projects if properly designed
Software as a Service (SaaS)
software run on servers; typically accessed through a browser, all clients are update simultaneously, with no local installation necessary
central processing unit (CPU)
the "administrative" section of the computer; coordinates and supervises the operation of the other sections
loader
takes the executable program from disk and transfers it to memory for execution
arithmetic logic unit (ALU)
the "manufacturing" section of the computer; responsible for performing calculations and making decisions
input unit
the "receiving" section of the computer; obtaining information and placing it at the disposal of other units for processing
output unit
the "shipping" section of the computer; taking information processed by the computer and making it available for use outside the computer
cin
the C++ standard input stream from which data is often input
cout
the C++ standard output stream from which data is often output
collective intelligence
the concept that collaboration will result in intelligent ideas
load
the fifth phase of C++ programs; the placement of a program into the memory so that it can be executed
edit
the first phase of C++ programs; consists of editing a file with an editor program
link
the fourth phase of C++ programs; fills in object code "holes" with referenced functions and data
object orientation
the key programming methodology used by programmers today
tagging
the labeling of content, a key part of the collaborative them of Web 2.0
secondary storage unit
the long-term and high-capacity "warehousing" section of the computer; programs or data not currently being used are stored here until they're needed
machine language
the only language a computer can directly understand; consists of numbers that instruct computer to perform their most elementary operations
Object-oriented analysis and design (OOAD)
the process of analyzing and designing a system from an object-oriented point of view
preprocess
the second phase of C++ programs; executes automatically before the compiler's translation phase begins
execute
the sixth and final phase of C++ programs; the CPU follows the instructions of the program one step at a time
compile
the third phase of C++ programs; the creation of object code
hardware
the various devices that comprise a computer system
C++0x
the working name for the next version of C++ Standard; it includes some changes to the core language and many of the library additions described in Technical Report 1
compiler
translates high-level language programs into machine-language programs
open source software
type of software making it cheaper and easier to start Web 2.0 companies
Java
used to create dynamic and interactive content for web pages, develop enterprise applications, enhance web server functionality, provide applications for consumer devices and more
blogs
websites characterized by short postings in reverse chronological order
client/server computing
where computers called servers offer a common data store and other capabilities that may be used by client computers throughout the network
C++ programming language
widely used for writing software for operating systems, computer network, and distributed client/server applications