Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture # 21 Chapter 6 Uptill 6.4. Type System A type system is a collection of rules for assigning type expressions to the various parts of the program.

Similar presentations


Presentation on theme: "Lecture # 21 Chapter 6 Uptill 6.4. Type System A type system is a collection of rules for assigning type expressions to the various parts of the program."— Presentation transcript:

1 Lecture # 21 Chapter 6 Uptill 6.4

2 Type System A type system is a collection of rules for assigning type expressions to the various parts of the program. A Type Checker implements a Type System

3 Type checking of Expressions E  char {E.type=char} E  int {E.type=int} E  id {E.type= lookup (id.entry)} E  E1 mod E2 { E.type= if E1.type= integer and E2.type=integer then integer else error } E  E1[E2] {E.type= if E2.type= integer and E1.type= lookup(E1.type) then E1.type else error }

4 Type Checking of Statements S  id := E { S.type := if id.type = E.type then void else type_error } S  if E then S { S.type := if E.type = boolean then S 1.type else type_error } S  while E do S 1 { S.type := if E.type = boolean then S 1.type else type_error } S  S 1 ; S 2 { S.type := if S 1.type = void and S 2.type = void then void else type_error }

5 Testing the Type Equivalence of Expressions Public bool sequiv (s,t) { if s and t are the same basic type return true else if s=array(s1,s2) and t= array(t1,t2) then return sequiv(s1,t1) and sequiv(s2,t2) else if s=s1*s2 and t=t1* t2 then return sequiv(s1,t1) and sequiv(s2,t2) else return false }

6 Encoding of Type Expressions The expressions can be encoded in bits to check their type equivalence Type Constructor Encoding pointer01 array10 freturns11

7 Basic TypesEncoding boolean 0000 char 0001 integer 0010 real 0011

8 Example Type Encoding Type Expression Char 000000 0001 Freturns(char)000011 0001 Pointer(Freturns(char)) 000111 0001 Array(Pointer(Freturns(char))) 100111 0001


Download ppt "Lecture # 21 Chapter 6 Uptill 6.4. Type System A type system is a collection of rules for assigning type expressions to the various parts of the program."

Similar presentations


Ads by Google