Programming Language Pragmatics, Fourth Edition
Programming Language Pragmatics, Fourth Edition
4th Edition
ISBN: 9780124104099
Author: Michael L. Scott
Publisher: Elsevier Science
Expert Solution & Answer
Book Icon
Chapter 2, Problem 14E

Explanation of Solution

a.

Grammar for LL (1):

Consider the grammar for LL (1) as below:

1. P  S $$2. S  ( S ) S3. S  [ S ] S4. S  ε

Grammar for SLR (1):

Consider the grammar for SLR (1) as below:

1. P  S $$2. S  S ( S ) 3. S  S [ S ] 4. S  ε

Explanation of Solution

b.

Parsing table for LL (1) grammar:

Top-of-stack non-terminal()[]$$
P1-1-1
S24344
  • The entries in the above table indicates the production of predict. The “-” means an error.
  • If the top-of-stack is terminal, the appropriate action is always to match it against an incoming token from the scanner.

Parsing table for SLR (1) grammar:

Top-of-stackS()[]$$
0s1r4r4r4r4r4
1-s2-s3-b1
2s4r4r4r4r4r4
3s5r4r4r4r4r4
4-s2b2s3--
5-s2-s3b3-
  • The entries in the above table indicates whether to shift (s), reduce (r), or shift and then reduce (d). The “-” means an error.

Explanation of Solution

c.

Parsing tree for LL (1):

Programming Language Pragmatics, Fourth Edition, Chapter 2, Problem 14E , additional homework tip  1

Parsing tree for SLR (1):

Programming Language Pragmatics, Fourth Edition, Chapter 2, Problem 14E , additional homework tip  2

Explanation of Solution

d.

LL (1) trace:

Parse stackInput streamComment
P( [ ] ( [ ] ) ) [ ] ( ( ) ) $$ 
S $$( [ ] ( [ ] ) ) [ ] ( ( ) ) $$Predict P →S $$
( S ) S $$( [ ] ( [ ] ) ) [ ] ( ( ) ) $$Predict S →( S ) S
S ) S $$[ ] ( [ ] ) ) [ ] ( ( ) ) $$Match (
[ S ] S ) S $$[ ] ( [ ] ) ) [ ] ( ( ) ) $$Predict S →[ S ] S
S ] S ) S $$] ( [ ] ) ) [ ] ( ( ) ) $$Match [
] S ) S $$] ( [ ] ) ) [ ] ( ( ) ) $$Predict S → ε
S ) S $$( [ ] ) ) [ ] ( ( ) ) $$Match ]
( S ) S ) S $$( [ ] ) ) [ ] ( ( ) ) $$Predict S →( S ) S
S ) S ) S $$[ ] ) ) [ ] ( ( ) ) $$Match (
[ S ] S ) S ) S $$[ ] ) ) [ ] ( ( ) ) $$Predict S →[ S ] S
S ] S ) S ) S $$] ) ) [ ] ( ( ) ) $$Match [
] S ) S ) S $$] ) ) [ ] ( ( ) ) $$Predict S → ε
S ) S ) S $$) ) [ ] ( ( ) ) $$Match ]
) S ) S $$) ) [ ] ( ( ) ) $$Predict S → ε
S ) S $$) [ ] ( ( ) ) $$Predict S →
) S $$) [ ] ( ( ) ) $$Predict S → ε
S $$[ ] ( ( ) ) $$Match )
[ S ] S $$[ ] ( ( ) ) $$Predict S →[ S ] S
S ] S $$] ( ( ) ) $$Match [
] S $$] ( ( ) ) $$Predict S → ε
S $$( ( ) ) $$Match ]
( S ) S $$( ( ) ) $$Predict S →( S ) S
S ) S $$( ) ) $$Match (
( S ) S ) S $$( ) ) $$Predict S →( S ) S
S ) S ) S $$) ) $$Match (
) S ) S $$) ) $$Predict S → ε
S ) S $$) $$Match )
) S $$) $$Predict S → ε
S $$$$Match )
$$$$Predict S → ε

SLR (1) trace:

Parse stackInput streamComment
0( [ ] ( [ ] ) ) [ ] ( ( ) ) $$ 
0S ( [ ] ( [ ] ) ) [ ] ( ( ) ) $$Reduce by S→ ε
0S1( [ ] ( [ ] ) ) [ ] ( ( ) ) $$Shift S
0S1 ( 2[ ] ( [ ] ) ) [ ] ( ( ) ) $$Shift (
0S1 ( 2S [ ] ( [ ] ) ) [ ] ( ( ) ) $$Reduce by S→ ε
0S1 ( 2 S 4[ ] ( [ ] ) ) [ ] ( ( ) ) $$Shift S
0S1 ( 2 S 4 [ 3 ] ( [ ] ) ) [ ] ( ( ) ) $$Shift [
0S1 ( 2 S 4 [ 3S ] ( [ ] ) ) [ ] ( ( ) ) $$Reduce by S→ ε
0S1 ( 2 S 4 [ 3 S 5] ( [ ] ) ) [ ] ( ( ) ) $$Shift S
0S1 ( 2( [ ] ) ) [ ] ( ( ) ) $$Shift and reduce by S→ S [ S ]
0S1 ( 2S ( [ ] ) ) [ ] ( ( ) ) $$Reduce by S→ ε
0S1 ( 2 S 4( [ ] ) ) [ ] ( ( ) ) $$Shift S
0S1 ( 2 S 4 ( 2[ ] ) ) [ ] ( ( ) ) $$Shift (
0S1 ( 2 S 4 ( 2S [ ] ) ) [ ] ( ( ) ) $$Reduce by S→ ε
0S1 ( 2 S 4 ( 2 S 4[ ] ) ) [ ] ( ( ) ) $$Shift S
0S1 ( 2 S 4 ( 2 S 4 [ 3] ) ) [ ] ( ( ) ) $$Shift [
0S1 ( 2 S 4 ( 2 S 4 [ 3S ] ) ) [ ] ( ( ) ) $$Reduce by S→ ε
0S1 ( 2 S 4 ( 2 S 4 [ 3 S 5] ) ) [ ] ( ( ) ) $$Shift S
0S1 ( 2 S 4 ( 2) ) [ ] ( ( ) ) $$Shift and reduce by S→ S [ S ]
0S1 ( 2 S 4 ( 2S ) ) [ ] ( ( ) ) $$Reduce by S→ ε
0S1 ( 2 S 4 ( 2 S 4) ) [ ] ( ( ) ) $$Shift S
0S1 ( 2) [ ] ( ( ) ) $$Shift and reduce by S→ S ( S )
0S1 ( 2S ) [ ] ( ( ) ) $$Reduce by S→ ε
0S1 ( 2 S 4) [ ] ( ( ) ) $$Shift S
0[ ] ( ( ) ) $$Shift and reduce by S→ S ( S )
0S [ ] ( ( ) ) $$Reduce by S→ ε
0S1[ ] ( ( ) ) $$Shift S
0S1 [ 3] ( ( ) ) $$Shift [
0S1 [ 3S ] ( ( ) ) $$Reduce by S→ ε
0S1 [ 3 S 5] ( ( ) ) $$Shift S
0( ( ) ) $$Shift and reduce by S→ S [ S ]
0S ( ( ) ) $$Reduce by S→ ε
0S1( ( ) ) $$Shift S
0S1 ( 2( ) ) $$Shift (
0S1 ( 2S ( ) ) $$Reduce by S→ ε
0S1 ( 2 S 4( ) ) $$Shift S
0S1 ( 2 S 4 ( 2) ) $$Shift (
0S1 ( 2 S 4 ( 2S ) ) $$Reduce by S→ ε
0S1 ( 2 S 4 ( 2 S 4) ) $$Shift S
0S1 ( 2) $$Shift and reduce by S→ S ( S )
0S1 ( 2S ) $$Reduce by S→ ε
0S1 ( 2 S 4) $$Shift S
0$$Shift and reduce by S→ S ( S )
0S $$Reduce by S→ ε
0S1$$Shift S
0PShift and reduce by S→ S ( S )
[done]  

Want to see more full solutions like this?

Subscribe now to access step-by-step solutions to millions of textbook problems written by subject matter experts!
Knowledge Booster
Background pattern image
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education