Parse & Syntax Trees Syntax & Semantic Errors Mini Lecture - - PDF document

parse syntax trees syntax semantic errors mini lecture
SMART_READER_LITE
LIVE PREVIEW

Parse & Syntax Trees Syntax & Semantic Errors Mini Lecture - - PDF document

Parse & Syntax Trees Syntax & Semantic Errors Mini Lecture CSC 4181 Compiler Construction 1 Parse Tree Expression: a[index] = 4 + 2 Identify tokens: a identifier [ left bracket index identifier ] right bracket =


slide-1
SLIDE 1

1

Parse & Syntax Trees Syntax & Semantic Errors Mini‐Lecture

CSC 4181 Compiler Construction

Parse Tree

  • Expression: a[index] = 4 + 2
  • Identify tokens:

a identifier [ left bracket index identifier ] right bracket = assignment operator 4 number + plus sign 2 number

2

1 2

slide-2
SLIDE 2

2

Parse Tree

3 expression Assign‐expression expression = expression Subscript‐expression Additive‐expressive expression [ expression ] expression expression Identifier a Identifier index Number 4 Number 2

  • Expression: a[index] = 4 + 2

+

Syntax Tree

  • Also called “Abstract Syntax Tree” or AST
  • Expression: a[index] = 4 + 2
  • Condensed version of Parse Tree
  • Excludes redundant information

4

3 4

slide-3
SLIDE 3

3

Syntax Tree

  • Expression: a[index] = 4 + 2

5 Assign‐expression Subscript‐expression Additive‐expression Identifier a Identifier index Number 4 Number 2

Syntax Errors

  • Syntax error ‐ an error in the syntax (the rules
  • f formation) of a sequence of characters or

tokens that is intended to be written in a particular programming language.

  • Example is: entering an invalid equation into a

calculator, such as opening brackets without closing them, or several decimal points in a number

6

5 6

slide-4
SLIDE 4

4

Syntax Errors

  • In Java, the following is a syntactically correct

statement: System.out.println("Hello World");

  • while the following is not:

System.out.+println("Hello World");

7

Semantic Errors

  • Semantic error: Writing a valid programming

structure with invalid logic.

  • The compiler will generate instructions that

the computer will execute, because it understands the syntax of the programming statements, but the output will not be correct.

8

7 8

slide-5
SLIDE 5

5

Semantic Errors

  • Non‐initialized variable:

int i; i++;

  • Type incompatibility:

int a = "hello";

9

9