Assignment Statements and Arithmetic Expressions - PowerPoint PPT Presentation

About This Presentation
Title:

Assignment Statements and Arithmetic Expressions

Description:

Boolean and Relational Expressions: Relational Expressions ... arithmetic operators as compared to boolean operators, differs according to each ... – PowerPoint PPT presentation

Number of Views:114
Avg rating:3.0/5.0
Slides: 35
Provided by: eckerdwor
Category:

less

Transcript and Presenter's Notes

Title: Assignment Statements and Arithmetic Expressions


1
Assignment Statements and Arithmetic Expressions
2
Assignment Statements
  • Change the value of a variable
  • Cause a value to be copied from one memory
    cell to another
  • Specify an expression to be evaluated and
    stored into a target location

3
Arithmetic Expressions
The purpose of an arithmetic expressions is to
specify an arithmetic computation.
  • The implementation of the computation involves
  • fetching the operands
  • executing the arithmetic operations

4
Arithmetic Expressions
  • Arithmetic expressions are constructions of
  • operators
  • operands
  • parentheses
  • function calls

5
Arithmetic Expressions
  • The operators can be
  • unary
  • binary
  • ternary

6
Arithmetic Expressions
  • Operator evaluation order
  • Precedence - defines the order in which
    operators of different precedence are
    evaluated
  • Associativity - defines the order in which
    operators of equal precedence are evaluated
  • Parentheses - default evaluation order can be
    overridden with use of parentheses

7
Arithmetic Expressions Precedence
FORTRAN highest (exponentiation) ,
/ (multiplication, division) all , -
(unary and binary addition and subtraction) l
owest
8
Arithmetic Expressions Precedence
Pascal highest , /,div, mod all , -
lowest
9
Arithmetic Expressions Precedence
C highest postfix , -- prefix , -- unary
, - , /, binary , - lowest
10
Arithmetic Expressions associativity
Left associativity - leftmost operator is
evaluated first A / B C (FORTRAN) Right
associativity - rightmost operator is evaluated
first A B C (FORTRAN) Non-associativity
- operators of equal precedence must be
parenthesized A (B C) (ADA for
exponentiation)
11
Sequence Control for Arithmetic Expressions
  • Tree Structure Representation
  • clarifies control structure of an expression
  • syntactic representation options
  • Execution-time Representation
  • machine code
  • evaluation of tree structures
  • prefix or postfix form

12
Tree Structure Representation
  • prefix (Polish prefix) notation
  • infix
  • postfix or reverse Polish notation (RPN)

13
Tree Structure Representation
  • Syntactic Representation Options
  • prefix (Polish prefix) notation
  • the operator comes first, followed by the
    operands
  • - same notation as function calls f(x, y, z)
  • - no parenthesis needed
  • - relatively simple translation process
  • - unique operators needed for operations with
  • variable number of operands
  • - lack of structuring cues (reduces readability)
  • - number of operands must be known

14
Tree Structure Representation
Syntactic Representation Options
  • infix
  • for binary operations, the operator is
    written
  • between the two operands
  • - gives natural representation (readability)
  • - best suited for binary operations
  • - requires complex translation process

15
Tree Structure Representation
Syntactic Representation Options
  • postfix or reverse Polish notation (RPN)
  • the operands are written first, followed by
    the
  • operator
  • - advantages and disadvantages similar to prefix

16
Tree Structure Representation
(a b) x (c - a)
x

-
c
b
a
a
17
Tree Structure Representation
(a b) x (c - a)
Prefix?
x
Infix?
Postfix?

-
c
b
a
a
18
Evaluations of Expressions
Postfix evaluation (evaluate using an
execution stack) 1. Scan expression left to
right 2. If OPERAND, push onto stack. 3. If
OPERATOR, pop the corresponding number of
arguments off the stack, apply the operator
to the operands. 4. Push result onto stack as
next operand.
19
Evaluations of Expressions
(a b) x (c - a), let a3, b4, c5
  • Find the postfix representation
  • Evaluate the postfix expression using an
    execution stack.

20
Evaluations of Expressions
Prefix evaluation (evaluate using an execution
stack) 1. Scan expression left to right 2. If
OPERATOR, push onto stack. Set argument
count to n, number of arguments reqd by
operator 3. If OPERAND, push onto stack. 4. If
top n entries are operands, pop the top n
entries, pop the operator and apply the
operator to those operands. 5. Push result
onto stack as next operand.
21
Arithmetic Expressions
Operand evaluation order side effects A
10 NEW A fun(A)
Suppose function fun returns the value of its
argument divided by two. And suppose as a side
effect, it changes the value of its argument to
20.
22
Arithmetic Expressions
Conditional expression C and C
expression1 ? expression2 expression3
avg (count 0) ? 0 sum / count
23
Arithmetic Expressions
Overloaded Operators Arithmetic operators are
often used for more than one purpose examples
for integer and floating point addition,
string catenation for addressing
and bitwise and operation in C
24
Arithmetic Expressions
  • Type Conversions
  • narrowing
  • widening
  • A narrowing conversion is one that converts an
    objects to a type that cannot include all of the
    values of the original type
  • A widening conversion is one in which an object
    is converted to a type that can include at least
    approximations of all the values of the original
    type

25
Arithmetic Expressions
  • Type Coercion
  • When arithmetic operations include operands of
    different types (mixed-mode expressions) implicit
    type conversions must be performed.
  • A coercion is an implicit type conversion
    performed by the compiler.

26
Arithmetic Expressions
  • Explicit Type Conversion
  • Most languages allow for explicit type
    conversion.
  • Some provide a warning when the conversion is
    narrowing and significant change in value will
    result.

ADA AVG FLOAT(SUM) / FLOAT(COUNT) C
avg (float) sum / count
27
Boolean and Relational Expressions
  • Relational Expressions
  • A relational operator compares the values of its
    two operands
  • A relational expression has two operands and one
    relational operator
  • The value produced by a relational operator is
    boolean (unless boolean is not a type in the
    language)

28
Boolean and Relational Expressions
  • Relational Operators
  • Pascal FORTRAN C
  • .EQ.
  • ltgt .NE. !
  • lt .LE. lt
  • lt .LT. lt
  • gt .GE. gt
  • gt .GT. !gt

29
Boolean and Relational Expressions
Boolean Expressions consist of boolean
variables boolean constants relational
expressions and boolean operators
30
Boolean and Relational Expressions
  • Boolean Operators
  • Pascal FORTRAN C
  • not .NOT. !
  • and .AND.
  • or .OR.

31
Boolean and Relational Expressions
The precedence of boolean operators is normally
not - highest and or - lowest but the
precedence of relational operators and arithmetic
operators as compared to boolean operators,
differs according to each language.
32
Boolean and Relational Expressions
FORTRAN 77 Highest , / , - //
(string catenation) .EQ., .NE., .GT., .GE.,
.LT., .LE. .NOT. .AND. .OR. Lowest .EQV.,
.NEQV. (logical compare)
33
Boolean and Relational Expressions
Pascal Highest not , /, div, mod, and ,
-, or Lowest , ltgt, lt, lt, gt, gt, in
34
Boolean and Relational Expressions
C !, , , ---, sizeof(), (type), ,-(unary),
(indirection), (address) Highest , /,
, - gtgt, ltlt lt, lt, gt, gt ,
! Lowest
Write a Comment
User Comments (0)
About PowerShow.com