1
C++ Syntax and Semantics,
and the Program Development
Process
2
Chapter 2 Topics
Syntax and Semantics
Programs Composed of Several Functions
Syntax Templates
Legal C++ Identifiers
Data and Data Types
Assigning Values to Variables
Declaring Named Constants
String Concatenation
Output Statements
C++ Program Comments
3
Syntax and Semantics
A programming language is a set of rules,and special words
used to construct a program.There are rules for both syntax
(grammar) and semantics (meaning).
Syntax The formal rules governing how valid instructions are
written in a programming language.
Semantics The set of rules that determines the meaning of
instructions written in a programming language,
4
Syntax Templates
Let’s look at the syntax template for the C++
main function.
Main Function
int main ()
{
Statement
.
.
.
}
5
A C++ program is a collection
of one or more functions
there must be a function called main( )
execution always begins with the first
statement in function main( )
any other functions in your program are
subprograms and are not executed until they
are called
6
Program With Several Functions
main function
square function
cube function
7
Program With Three Functions
#include <iostream>
int Square( int ); // declares these two
int Cube( int ); // value-returning functions
using namespace std ;
int main( )
{
cout <<,The square of 27 is,
<< Square(27) << endl; // function call
cout <<,The cube of 27 is,
<< Cube(27) << endl; // function call
return 0;
}
8
Rest of Program
int Square( int n )
{
return n * n;
}
int Cube( int n )
{
return n * n * n;
}
9
Output of program
The square of 27 is 729
The cube of 27 is 19683
Every C++ function has 2 parts
int main ( ) heading
{
body block
return 0;
}
What is in a heading?
int main ( )
type of returned value name of function says no parameters
12
Block (Compound Statement)
a block is a sequence of zero or more
statements enclosed by a pair of curly braces
{ }
SYNTAX
{
Statement (optional)
.
.
.
}
13
Shortest C++ Program
int main ( )
{
return 0;
}
type of returned value name of function
means everything were OK
The syntax template allows the function body to have no
statements at all,
14
What is an Identifier?
An identifier is the name used for a data
object (a variable or a constant),or for a
function,in a C++ program.
C++ is a case-sensitive language.
Uppercase letters are different from
lower letters.
using meaningful readable identifiers is
a good programming practice
15
Identifiers
an identifier must start with a letter or
underscore,and be followed by zero or more
letters
(A-Z,a-z),digits (0-9),or underscores
VALID
age_of_dog taxRateY2K
PrintHeading ageOfHorse
NOT VALID (Why?)
age# 2000TaxRate Age-Of-Cat
int Get Data
16
More About Identifiers
some C++ compilers recognize only the first 32
characters of an identifier as significant
then these identifiers are considered the same:
age_Of_This_Old_Rhinoceros_At_My_Zoo
age_Of_This_Old_Rhinoceros_At_My_Safari
consider these:
Age_Of_This_Old_Rhinoceros_At_My_Zoo
age_Of_This_Old_Rhinoceros_At_My_Zoo
17
C++ Data Types
structured
array struct union class
address
pointer reference
simple
integral enum
char short int long bool
floating
float double long double
18
C++ Simple Data Types
simple types
integral floating
char short int long bool enum float double long double
unsigned
19
Standard Data Types in C++
Integral Types
represent whole numbers and their negatives
declared as int,short,or long
Floating Types
represent real numbers with a decimal point
declared as float,or double
Character Types
represent single characters
declared as char
20
Samples of C++ Data Values
int sample values
4578 -4578 0
float sample values
95.274 95.,265
char sample values
Bd4*?
21
Naming Elements,Declarations
Example:
int empNum;
How do we tell the computer what an identifier
represents?
By using a declaration,a statement that
associates an identifier with a data object,
a function,or a data type so that the
programmer can refer to that item by name.
22
What is a Variable?
A variable is a location in memory
which we can refer to by an
identifier,and in which a data
value that can be changed is
stored,
declaring a variable means
specifying both its name and its
data type
23
What Does a
Variable Declaration Do?
A declaration tells the compiler to
allocate enough memory to hold a value of this data
type,and to associate the identifier with this location.
int ageOfDog;
float taxRateY2K;
char middleInitial;
4 bytes for taxRateY2K 1 byte for middleInitial
24
Giving a Value to a Variable
You can assign (give) a value to a variable by
using the assignment operator =
VARIABLE DECLARATIONS
string firstName ;
char middleInitial ;
char letter ;
int ageOfDog;
VALID ASSIGNMENT STATEMENTS
firstName =,Fido” ;
middleInitial =?X? ;
letter = middleInitial ;
ageOfDog = 12 ;
25
What is a Named Constant?
A named constant is a location in memory
that we can refer to by an identifier,and in
which a data value that cannot be changed is
stored.
VALID CONSTANT DECLARATIONS
const string STARS =,****” ;
const float NORMAL_TEMP = 98.6 ;
const char BLANK = ;
const int VOTING_AGE = 18 ;
const float MAX_HOURS = 40.0 ;
26
What is an Expression in C++?
An expression is a valid arrangement
of variables,constants,and operators,
in C++ each expression can be
evaluated to compute a value of a
given type
the value of the expression
9 + 5 is 14
Variable = Expression
First,Expression on right is evaluated.
Then the resulting value is stored in the
memory location of Variable on left.
NOTE,An automatic type coercion occurs after
evaluation but before the value is stored if the
types differ for Expression and Variable
Assignment Operator Syntax
28
String expressions
C++ Data Type String
a string is a sequence of characters
enclosed in double quotes
string sample values
“Hello”,Year 2000”,1234”
the empty string (null string) contains no
characters and is written as,”
29
More About Type String
string is not a built-in (standard) type
it is a programmer-defined data type
it is provided in the C++ standard library
string operations include
comparing 2 string values
searching a string for a particular character
joining one string to another(concatenation)
30
String Concatenation (+)
concatenation is a binary operation that uses
the + operator
at least one of the operands must be a string
variable or named constant--the other
operand can be string type or char type
31
Concatenation Example
const string WHEN =,Tomorrow” ;
const char EXCLAMATION =?!? ;
string message1 ;
string message2 ;
message1 =,Yesterday,;
message2 =,and,;
message1 = message1 + message2 +
WHEN + EXCLAMATION ;
32
Insertion Operator ( << )
variable cout is predefined to denote an output
stream that goes to the standard output device
(display screen)
the insertion operator << called,put to” takes 2
operands
the left operand is a stream expression,such as
cout,The right operand is an expression of
simple type or a string constant
33
Output Statements
SYNTAX
These examples yield the same output:
cout <<,The answer is,;
cout << 3 * 4 ;
cout <<,The answer is,<< 3 * 4 ;
cout << Expression << Expression,,,;
34
Is compilation the first step?
No,Before your source program is
compiled,it is first examined by the
preprocessor to
remove all comments from source code
handle all preprocessor directives--they begin
with the # character such as
#include <iostream>
tells preprocessor to look in the standard
include directory for the header file called
iostream and insert its contents into your
source code
35
Figure C++ Preprocessor
Source program Preprocessor Expandedsource program C++ compiler
36
An introduction to Namespaces
namespace std
{
.
,
}
Declarations of variables,data types,
and so forth
An identifier declared within a namespace block can be
accessed directly only by statements within that block.
The first option is to use a qualified name for the identifier.
std,,cout
The second option is to use a statement called a using
directive:
using namespace std;
37
More About Output
Creating Blank Lines
Inserting Blanks Within a Line
No I/O is built into C++
Instead,a library provides an output stream
Screenexecuting
program
ostream
39
Using Libraries
A library has 2 parts
Interface (stored in a header file) tells what
items are in the library and how to use them.
Implementation (stored in another file) contains
the definitions of the items in the library.
#include <iostream>
Refers to the header file for the iostream library
needed for use of cout and endl.
40
Function Concept in Math
f ( x ) = 5 x - 3
When x = 1,f ( x ) = 2 is the returned value.
When x = 4,f ( x ) = 17 is the returned value.
Returned value is determined by the function
definition and by the values of any parameters.
Name of function
Parameter of function
Function definition
41
// ******************************************************
// PrintName program
// This program prints a name in two different formats
// ******************************************************
#include <iostream> // for cout and endl
#include <string> // for data type string
using namespace std;
const string FIRST =,Herman”; // Person?s first name
const string LAST =,Smith”; // Person?s last name
const char MIDDLE =?G?; // Person?s middle initial
C++ Program
42
C++ Code Continued
int main( )
{
string firstLast; // Name in first-last format
string lastFirst; // Name in last-first format
firstLast = FIRST +,,+ LAST ;
cout <<,Name in first-last format is,<< endl
<< firstLast << endl;
lastFirst = LAST +,,,+ FIRST + ;
cout <<,Name in first-last format is,<< endl
<< lastFirst << MIDDLE <<?.? << endl;
return 0;
}
43
Output of Program
Name in first-last format is
Herman Smith
Name in last-first-initial format is
Smith,Herman G.
C++ Syntax and Semantics,
and the Program Development
Process
2
Chapter 2 Topics
Syntax and Semantics
Programs Composed of Several Functions
Syntax Templates
Legal C++ Identifiers
Data and Data Types
Assigning Values to Variables
Declaring Named Constants
String Concatenation
Output Statements
C++ Program Comments
3
Syntax and Semantics
A programming language is a set of rules,and special words
used to construct a program.There are rules for both syntax
(grammar) and semantics (meaning).
Syntax The formal rules governing how valid instructions are
written in a programming language.
Semantics The set of rules that determines the meaning of
instructions written in a programming language,
4
Syntax Templates
Let’s look at the syntax template for the C++
main function.
Main Function
int main ()
{
Statement
.
.
.
}
5
A C++ program is a collection
of one or more functions
there must be a function called main( )
execution always begins with the first
statement in function main( )
any other functions in your program are
subprograms and are not executed until they
are called
6
Program With Several Functions
main function
square function
cube function
7
Program With Three Functions
#include <iostream>
int Square( int ); // declares these two
int Cube( int ); // value-returning functions
using namespace std ;
int main( )
{
cout <<,The square of 27 is,
<< Square(27) << endl; // function call
cout <<,The cube of 27 is,
<< Cube(27) << endl; // function call
return 0;
}
8
Rest of Program
int Square( int n )
{
return n * n;
}
int Cube( int n )
{
return n * n * n;
}
9
Output of program
The square of 27 is 729
The cube of 27 is 19683
Every C++ function has 2 parts
int main ( ) heading
{
body block
return 0;
}
What is in a heading?
int main ( )
type of returned value name of function says no parameters
12
Block (Compound Statement)
a block is a sequence of zero or more
statements enclosed by a pair of curly braces
{ }
SYNTAX
{
Statement (optional)
.
.
.
}
13
Shortest C++ Program
int main ( )
{
return 0;
}
type of returned value name of function
means everything were OK
The syntax template allows the function body to have no
statements at all,
14
What is an Identifier?
An identifier is the name used for a data
object (a variable or a constant),or for a
function,in a C++ program.
C++ is a case-sensitive language.
Uppercase letters are different from
lower letters.
using meaningful readable identifiers is
a good programming practice
15
Identifiers
an identifier must start with a letter or
underscore,and be followed by zero or more
letters
(A-Z,a-z),digits (0-9),or underscores
VALID
age_of_dog taxRateY2K
PrintHeading ageOfHorse
NOT VALID (Why?)
age# 2000TaxRate Age-Of-Cat
int Get Data
16
More About Identifiers
some C++ compilers recognize only the first 32
characters of an identifier as significant
then these identifiers are considered the same:
age_Of_This_Old_Rhinoceros_At_My_Zoo
age_Of_This_Old_Rhinoceros_At_My_Safari
consider these:
Age_Of_This_Old_Rhinoceros_At_My_Zoo
age_Of_This_Old_Rhinoceros_At_My_Zoo
17
C++ Data Types
structured
array struct union class
address
pointer reference
simple
integral enum
char short int long bool
floating
float double long double
18
C++ Simple Data Types
simple types
integral floating
char short int long bool enum float double long double
unsigned
19
Standard Data Types in C++
Integral Types
represent whole numbers and their negatives
declared as int,short,or long
Floating Types
represent real numbers with a decimal point
declared as float,or double
Character Types
represent single characters
declared as char
20
Samples of C++ Data Values
int sample values
4578 -4578 0
float sample values
95.274 95.,265
char sample values
Bd4*?
21
Naming Elements,Declarations
Example:
int empNum;
How do we tell the computer what an identifier
represents?
By using a declaration,a statement that
associates an identifier with a data object,
a function,or a data type so that the
programmer can refer to that item by name.
22
What is a Variable?
A variable is a location in memory
which we can refer to by an
identifier,and in which a data
value that can be changed is
stored,
declaring a variable means
specifying both its name and its
data type
23
What Does a
Variable Declaration Do?
A declaration tells the compiler to
allocate enough memory to hold a value of this data
type,and to associate the identifier with this location.
int ageOfDog;
float taxRateY2K;
char middleInitial;
4 bytes for taxRateY2K 1 byte for middleInitial
24
Giving a Value to a Variable
You can assign (give) a value to a variable by
using the assignment operator =
VARIABLE DECLARATIONS
string firstName ;
char middleInitial ;
char letter ;
int ageOfDog;
VALID ASSIGNMENT STATEMENTS
firstName =,Fido” ;
middleInitial =?X? ;
letter = middleInitial ;
ageOfDog = 12 ;
25
What is a Named Constant?
A named constant is a location in memory
that we can refer to by an identifier,and in
which a data value that cannot be changed is
stored.
VALID CONSTANT DECLARATIONS
const string STARS =,****” ;
const float NORMAL_TEMP = 98.6 ;
const char BLANK = ;
const int VOTING_AGE = 18 ;
const float MAX_HOURS = 40.0 ;
26
What is an Expression in C++?
An expression is a valid arrangement
of variables,constants,and operators,
in C++ each expression can be
evaluated to compute a value of a
given type
the value of the expression
9 + 5 is 14
Variable = Expression
First,Expression on right is evaluated.
Then the resulting value is stored in the
memory location of Variable on left.
NOTE,An automatic type coercion occurs after
evaluation but before the value is stored if the
types differ for Expression and Variable
Assignment Operator Syntax
28
String expressions
C++ Data Type String
a string is a sequence of characters
enclosed in double quotes
string sample values
“Hello”,Year 2000”,1234”
the empty string (null string) contains no
characters and is written as,”
29
More About Type String
string is not a built-in (standard) type
it is a programmer-defined data type
it is provided in the C++ standard library
string operations include
comparing 2 string values
searching a string for a particular character
joining one string to another(concatenation)
30
String Concatenation (+)
concatenation is a binary operation that uses
the + operator
at least one of the operands must be a string
variable or named constant--the other
operand can be string type or char type
31
Concatenation Example
const string WHEN =,Tomorrow” ;
const char EXCLAMATION =?!? ;
string message1 ;
string message2 ;
message1 =,Yesterday,;
message2 =,and,;
message1 = message1 + message2 +
WHEN + EXCLAMATION ;
32
Insertion Operator ( << )
variable cout is predefined to denote an output
stream that goes to the standard output device
(display screen)
the insertion operator << called,put to” takes 2
operands
the left operand is a stream expression,such as
cout,The right operand is an expression of
simple type or a string constant
33
Output Statements
SYNTAX
These examples yield the same output:
cout <<,The answer is,;
cout << 3 * 4 ;
cout <<,The answer is,<< 3 * 4 ;
cout << Expression << Expression,,,;
34
Is compilation the first step?
No,Before your source program is
compiled,it is first examined by the
preprocessor to
remove all comments from source code
handle all preprocessor directives--they begin
with the # character such as
#include <iostream>
tells preprocessor to look in the standard
include directory for the header file called
iostream and insert its contents into your
source code
35
Figure C++ Preprocessor
Source program Preprocessor Expandedsource program C++ compiler
36
An introduction to Namespaces
namespace std
{
.
,
}
Declarations of variables,data types,
and so forth
An identifier declared within a namespace block can be
accessed directly only by statements within that block.
The first option is to use a qualified name for the identifier.
std,,cout
The second option is to use a statement called a using
directive:
using namespace std;
37
More About Output
Creating Blank Lines
Inserting Blanks Within a Line
No I/O is built into C++
Instead,a library provides an output stream
Screenexecuting
program
ostream
39
Using Libraries
A library has 2 parts
Interface (stored in a header file) tells what
items are in the library and how to use them.
Implementation (stored in another file) contains
the definitions of the items in the library.
#include <iostream>
Refers to the header file for the iostream library
needed for use of cout and endl.
40
Function Concept in Math
f ( x ) = 5 x - 3
When x = 1,f ( x ) = 2 is the returned value.
When x = 4,f ( x ) = 17 is the returned value.
Returned value is determined by the function
definition and by the values of any parameters.
Name of function
Parameter of function
Function definition
41
// ******************************************************
// PrintName program
// This program prints a name in two different formats
// ******************************************************
#include <iostream> // for cout and endl
#include <string> // for data type string
using namespace std;
const string FIRST =,Herman”; // Person?s first name
const string LAST =,Smith”; // Person?s last name
const char MIDDLE =?G?; // Person?s middle initial
C++ Program
42
C++ Code Continued
int main( )
{
string firstLast; // Name in first-last format
string lastFirst; // Name in last-first format
firstLast = FIRST +,,+ LAST ;
cout <<,Name in first-last format is,<< endl
<< firstLast << endl;
lastFirst = LAST +,,,+ FIRST + ;
cout <<,Name in first-last format is,<< endl
<< lastFirst << MIDDLE <<?.? << endl;
return 0;
}
43
Output of Program
Name in first-last format is
Herman Smith
Name in last-first-initial format is
Smith,Herman G.