Lecture #4 Programming Languages MISHRA 95

G22.2210

Programming Languages: PL I

B. Mishra
New York University.


Lecture # 4

---Slide 1---
The C Programming Language
Language Survey 1

---Slide 2---
History of C

---Slide 3---
SYNTAX

---Slide 4---
SYNTAX

---Slide 5---
Assignment Operator

---Slide 6---
Syntax of Statements

<stmt-list> ::= <empty> | <stmt-list> <statement>

<statement> ::=
   ;
 | <expression>;
 | {<stmt-list>}
 | if(<expression>)<statement>
 | if(<expression>)<statement> else <statement>
 | while(<expression>) <statement>
 | do <statement> while (<expression>)
 | for(<opt-exp>;<opt-exp>;<opt-exp>)<statement>
 | switch (<expression>) <statement>
 | case <const-exp> : <statement>
 | default : <statement>
 | break;
 | continue;
 | return;
 | return <expression>;
 | goto <label-name>;
 | <label-name> : <statement>;

---Slide 7---
Control Structure

---Slide 8---
Control Structure

---Slide 9---
Iterative Statement

---Slide 10---
break, continue & goto

---Slide 11---
Examples of break & continue

 for(i = 0; i < n; i++){       for(i = 0; i < n; i++){
   if(a[i] < 0)                  if(a[i] < 0)
     break;                        continue;
   ...                           ...
 }                             }


       for(;;c = getchar()){
         if(c == ' '||c == '\t')
           continue;
         if(c != '\n')
           break;
         ++lineno;
       }

Skips over blanks, tabs & newlines, while keeping track of line numbers.

---Slide 12---
Program Structure

---Slide 13---
Scope in C

---Slide 14---
Automatic and External Variables

---Slide 15---
Usage of extern: Example

    char line[MAXLINE];
    ...
    int getline(void);

    main(){...
       extern char line[];
        ...
       getline();
       ...
    }
    int getline(void){...
       extern char line[];
       ...
    }

---Slide 16---
Static Variables

---Slide 17---
Static Variables

---Slide 18---
Types

---Slide 19---
Types (contd)

---Slide 20---
Types: Constants

---Slide 21---
TYPE CONVERSION

---Slide 22---
Composite Types: Arrays & Pointers

---Slide 23---
Multidimensional Arrays

---Slide 24---
Strings

---Slide 25---
Structures

---Slide 26---
Union

---Slide 27---
Type Abstraction

---Slide 28---
Procedure Declarations

  <result-type> <name> (<formal-pars>){
    <declaration-list>
    <statement-list>
  }

  int succ(int i){
    return (i+1)%size;
  }

---Slide 29---
Parameter Passing in C

---Last Slide---
Summary

C Design

[End of Lecture #4]