1 / 19

# CS 330 Organization of Programming Languages - PowerPoint PPT Presentation

CS 330 Organization of Programming Languages . Soundararajan Ezekiel Department of Computer Science Ohio Northern University ADA, Ohio 45810 e-mail: s-ezekiel@onu.edu http://www.onu.edu/user/FS/sezekiel. FORTRAN CODE WALK PROBLEMS.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'CS 330 Organization of Programming Languages' - carys

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### CS 330 Organization of Programming Languages

Soundararajan Ezekiel

Department of Computer Science

Ohio Northern University

e-mail: s-ezekiel@onu.edu

http://www.onu.edu/user/FS/sezekiel

• 1. Wrtie a program to read two n-dimensional vectors and then evaluate

• the norm of each vector

• unit vectors having the same direction as the vectors

• the sum, difference and dot product

• the cosine of the angle between the vectors calculated using cos0 = a.b /(|a||b|)

Expressions and Assignment Statements them, and the calculate their mean, variance, and standard deviation. Print how many numbers there are and their mean, variance, and SD

• Introduction

• Arithmetic expressions

• Type Conversions

• Relational and Boolean Expressions

• Short-Circuit Evaluation

• Assignment Statements

• Mixed-Mode Assignments

Introduction them, and the calculate their mean, variance, and standard deviation. Print how many numbers there are and their mean, variance, and SD

• Expressions are the fundamental means of specifying computations in a programming language

• Programmers should understand both syntax and semantics of expression

• To understand evaluation -- understand the order of operator and operand evaluation

• An assignment statement can simply cause a value to be copied from one memory cell to another-- in many case it include expressions with operators, which cause values to be copied to the processor and to be operated on, and the result to be copied back to memory

• simple assignment statements specify an expression to be evaluated and a target location in which to place the result of the expression evaluation

• we will see number of variation on this basic form

2. Arithmetic Expression them, and the calculate their mean, variance, and standard deviation. Print how many numbers there are and their mean, variance, and SD

• Most of the characteristic of Arithmetic expression were inherited from Math

• Consists of operators, operands, parentheses, and function calls

• operator can be

• unary--- single operands

• binary -- double operands

• C, C++, Java, - ternary-- three operands

• Most cases-- binary operators are infix-- between their operands

• In Perl-- some of them are prefix-- precede their operands

• The purpose is to specify an arithmetic computation them, and the calculate their mean, variance, and standard deviation. Print how many numbers there are and their mean, variance, and SD

• Implementation of such computation must cause two action

• fetching the operands-- usually from memory

• executing arithmetic operations on those operands

• Design issues

• 1. What are the operator precedence rules

• 2. What are the operator associativity rules

• 3. What is the order of operand evaluation

• 4. Are there restrictions on operands evaluation side effect

• 6. What mode mixing is allowed in expression

Precedence them, and the calculate their mean, variance, and standard deviation. Print how many numbers there are and their mean, variance, and SD

• Consider the following expression -- a+b*c

• suppose a=3, b=4, c=5---- evaluate left to right=> 35, right to left=> 23

• FORTRAN:- **,* /+-

• Pascal: *,/,div, mod+ -

• Ada: **, abs*/ unary +/binary +-

• C: postfix ++, --prefix ++.-- , unary +-,*/&binary +-

• APL is odd among languages because it has single level of precedence

Associativity them, and the calculate their mean, variance, and standard deviation. Print how many numbers there are and their mean, variance, and SD

• consider the following expression a-b+c-d

• here + - are the same level of precedence-- this case which operator is evaluated first is answered by the associativity rule of the language

• Fortran:- left to right ( exponential right to left A**B**C )

• Ada: exponential is nonassociative-- A**B**C is illegal () should be used that is (A**B)**C or A** (B**C)

• FORTRAN and Ada have the exp operator

Language Associativity Rule them, and the calculate their mean, variance, and standard deviation. Print how many numbers there are and their mean, variance, and SD

FORTRAN Left: */+-

Right: **

Pascal Left: all

C Left: postfix++, postfix--, */%binary+ binary-

Right: prefix++ prefix--, unary + unary-

C++ Left: */%binary+ binary-

Right: ++, --, unary -, unary +

Nonassociativity **

in APL: AxB+C (x means multiplication) A=3, B=4, C=5 then 27

How: associative right to left-- addition first then multiplication

Parentheses them, and the calculate their mean, variance, and standard deviation. Print how many numbers there are and their mean, variance, and SD

• programmers can alter the precedence and associativity rules by placing () in expression --- (A+B)*C

• programmer would specify the desired order of evaluation with parentheses

• the disadvantage of this scheme is that it makes writing expression more tedious and it also seriously compromises the readability of the code

Conditional expression them, and the calculate their mean, variance, and standard deviation. Print how many numbers there are and their mean, variance, and SD

• we will look at the the ternary operator ?: which is part of C, C++ Java

• this operator is used to form conditional expression

• sometimes if then else statements are used to perform a conditional expression assignment

• example

• if (count = = 0)

• average =0;

• else

• average= sum/count;

• In C, C++ and Java this can be specified more conveniently in an assignment statement using condition expression

• expression_1 ? Expression_2 :expression_3 them, and the calculate their mean, variance, and standard deviation. Print how many numbers there are and their mean, variance, and SD

• expression_1 is Boolean expression--- if that is true do expression_2 otherwise expression_3

• average= (count = = 0)? 0 : sum/count;

Operand evaluation order them, and the calculate their mean, variance, and standard deviation. Print how many numbers there are and their mean, variance, and SD

• A less commonly discussed design characteristics of expression is the order of evaluation of operands

• Side Effects:- A side effect of a function called a functional side effect, occurs when the function changes either of its parameters or global variable ( variable declared outside of the function)

Example: them, and the calculate their mean, variance, and standard deviation. Print how many numbers there are and their mean, variance, and SD

• consider the expression a+fun(a)

• if fun does not have the side effect of changing a, the order of evaluation is two operands a fun(a) has no effect on value of the expression

• if fun changes the value of a say divide by 2 and change its parameter to have the value 20 then it matters

• a=10;

• b=a+fun(a)

• two answers--- 15 from left to right and 25 from right to left

C example them, and the calculate their mean, variance, and standard deviation. Print how many numbers there are and their mean, variance, and SD

• the following c code will the same problem like before

• int a=5;

• int fun1(){

• a=17;

• return 3;

• } /* of fun1*/

• void fun2(){

• a=a+fun1();

• } /* of fun2*/

• void main(){

• fun2();

• }/* of main */

The value computed for a in fun2

depends on the order of evaluation

of the operands in the expression

a+fun1()

the value will be 8 or 20

Solution them, and the calculate their mean, variance, and standard deviation. Print how many numbers there are and their mean, variance, and SD

• 1. The language designer could disallow functional side effect

• 2. Avoid the problem by stating in the language definition that operands in expressions are to be evaluated in a particular order and demand that implementors guarantee that order

Overloaded operators them, and the calculate their mean, variance, and standard deviation. Print how many numbers there are and their mean, variance, and SD

• Arithmetic operators are often used for more than one purpose

• example:- + for addition In Java it is used for string catenation