Chapter 06

114
Chapter 06 ๊ตฌ๋ฌธ ๋ถ„์„

Transcript of Chapter 06

Page 1: Chapter 06

Chapter 06 ๊ตฌ๋ฌธ ๋ถ„์„

Page 2: Chapter 06

01 ๊ตฌ๋ฌธ ๋ถ„์„์˜ ๊ฐœ์š”

02 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

03 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

04 ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์˜ ์‚ฌ์šฉ๊ณผ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด

Page 3: Chapter 06

๊ตฌ๋ฌธ ๋ถ„์„์˜ ์ข…๋ฅ˜์™€ ํŠน์ง•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„ ๋ฐฉ๋ฒ• ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„ ๋ฐฉ๋ฒ• ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ• ์‚ฌ์šฉ๊ณผ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

Page 4: Chapter 06

6.1 ๊ตฌ๋ฌธ ๋ถ„์„์˜ ๊ฐœ์š”

๊ตฌ๋ฌธ๋ถ„์„(Syntax analysis)

์ฃผ์–ด์ง„ ์ž…๋ ฅ์ด ์˜ฌ๋ฐ”๋ฅธ ํ”„๋กœ๊ทธ๋žจ์ธ๊ฐ€๋ฅผ ๊ฒ€์‚ฌํ•˜๊ณ  ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ

๊ตฌ์„ฑํ•˜๋Š” ๊ณผ์ •

์Šค์บ๋„ˆ์— ์˜ํ•ด ์ƒ์„ฑ๋œ ํ† ํฐ์„ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„ ์ฃผ์–ด์ง„ ๋ฌธ๋ฒ•์— ๋งž๋Š”์ง€๋ฅผ ๊ฒ€์‚ฌํ•˜

๊ณ , ๋ฌธ๋ฒ•์— ๋งž์œผ๋ฉด ํŒŒ์Šค ํŠธ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋งž์ง€ ์•Š์œผ๋ฉด ์—๋Ÿฌ๋ฅผ ๋‚ด๋Š” ๋‹จ๊ณ„

๊ตฌ๋ฌธ๋ถ„์„์„ ๋‹ด๋‹นํ•˜๋Š” ๋„๊ตฌ๋ฅผ ๊ตฌ๋ฌธ๋ถ„์„๊ธฐ(Syntax analyzer) ํ˜น์€ ํŒŒ์„œ(parser)

๋ผ๊ณ  ํ•จ

4

Page 5: Chapter 06

6.1 ๊ตฌ๋ฌธ ๋ถ„์„์˜ ๊ฐœ์š”

๊ตฌ๋ฌธ๋ถ„์„ ๋ฐฉ๋ฒ• - ํŒŒ์Šค ํŠธ๋ฆฌ๋ฅผ ์–ด๋–ค ์ˆœ์„œ๋กœ ๋งŒ๋“ค์–ด ๊ฐ€๋Š๋ƒ์— ๋”ฐ๋ผ ๋ถ„๋ฅ˜

ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„ :

โ€ข ์ž…๋ ฅ ๋ฌธ์ž์—ด์„ ํ•œ๋ฒˆ์— ํ•œ ์‹ฌ๋ฒŒ์”ฉ ์ขŒ์—์„œ ์šฐ๋กœ ๊ฒ€์‚ฌ(left to right scanning)ํ•˜๋ฉด์„œ ๋ฃจํŠธ

๋…ธ๋“œ์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ํ„ฐ๋ฏธ๋„ ๋…ธ๋“œ๋กœ ๋งŒ๋“ค์–ด๋‚˜๊ฐ€๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

โ€ข ์ฆ‰ ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„์€ ์‹œ์ž‘ ๊ธฐํ˜ธ S๋กœ๋ถ€ํ„ฐ ๋ฌธ๋ฒ•์˜ ๊ทœ์น™์„ ์ ์šฉํ•˜์—ฌ ์ขŒ๋‹จ ์œ ๋„์— ์˜ํ•ด

์ฃผ์–ด์ง„ ๋ฌธ์žฅ์„ ์ฐพ์•„๊ฐ€๋Š” ๋ฐฉ๋ฒ•์ด๊ณ  ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„์˜ ๊ฒฝ์šฐ ์ขŒ๋‹จ ์œ ๋„์— ์˜ํ•œ ์ขŒํŒŒ์Šค

๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ๋ถ„์„ :

โ€ข ์ž…๋ ฅ ๋ฌธ์ž์—ด์„ ํ•œ๋ฒˆ์— ํ•œ ์‹ฌ๋ฒŒ์”ฉ ์ขŒ์—์„œ ์šฐ๋กœ ๊ฒ€์‚ฌ(left to right scanning)ํ•˜๋ฉด์„œ ํ„ฐ๋ฏธ

๋„ ๋…ธ๋“œ์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ๋ฃจํŠธ ๋…ธ๋“œ๋กœ ๋งŒ๋“ค์–ด๋‚˜๊ฐ€๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

โ€ข ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„์€ ์ž…๋ ฅ๋œ ๋ฌธ์žฅ์—์„œ ๊ฐ์ถ•์— ์˜ํ•ด ์‹œ์ž‘ ๊ธฐํ˜ธ๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์šฐ

๋‹จ ์œ ๋„์˜ ์—ญ์ˆœ์ด ๋œ๋‹ค. ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„์˜ ๊ฒฝ์šฐ ์šฐ๋‹จ ์œ ๋„์˜ ์—ญ์ˆœ์— ์˜ํ•œ ์šฐํŒŒ์Šค๊ฐ€

์ƒ์„ฑ๋œ๋‹ค.

5

Page 6: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„์€ ์‹œ์ž‘ ๊ธฐํ˜ธ๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ ๊ทœ์น™์— ์ขŒ๋‹จ ์œ ๋„๋งŒ์„ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

์œผ๋กœ ๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•˜์—ฌ ํ•™์Šตํ•  ๋•Œ๋Š” ์ž์ฃผ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ์—ญ์ถ”์  ๋ฌธ์ œ ๋•Œ๋ฌธ์— ์ƒ์—…์ 

์ธ ์šฉ๋„๋กœ๋Š” ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ผ๋ฐ˜์ ์ธ ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„ ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ

์นœ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.

โ‘  ์‹œ์ž‘ ๊ธฐํ˜ธ์— ๋Œ€ํ•ด ์ƒ์„ฑ ๊ทœ์น™์„ ์ ์šฉํ•œ๋‹ค. ์ด๋•Œ ์ƒ์„ฑ ๊ทœ์น™์ด ์—ฌ๋Ÿฌ ๊ฐœ ์กด์žฌํ•˜๋ฉด ์ฒซ ๋ฒˆ์งธ์ƒ์„ฑ ๊ทœ์น™๋ถ€ํ„ฐ ์ ์šฉํ•œ๋‹ค. ์ƒ์„ฑ ๊ทœ์น™์„ ์ ์šฉํ•  ๋•Œ๋งˆ๋‹ค ๋ถ€๋ถ„ ํŒŒ์Šค ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•ด๋‚˜๊ฐ„๋‹ค.

โ‘ก ์ƒ์„ฑ๋œ ๋ฌธ์žฅ ํ˜•ํƒœ์˜ ๋ฌธ์ž์—ด๊ณผ ์ž…๋ ฅ ๊ธฐํ˜ธ๋ฅผ ์ฐจ๋ก€๋กœ ๋น„๊ตํ•œ๋‹ค.

โ‘ข ๋งŒ์•ฝ ์œ ๋„๋œ ๋ฌธ์ž์—ด๊ณผ ์ž…๋ ฅ ๊ธฐํ˜ธ๊ฐ€ ๊ฐ™์œผ๋ฉด ๊ณ„์† ๋น„๊ตํ•ด๋‚˜๊ฐ„๋‹ค.

โ‘ฃ ๋น„๊ตํ•œ ๋‘ ๊ธฐํ˜ธ๊ฐ€ ๊ฐ™์ง€ ์•Š์œผ๋ฉด ์ƒ์„ฑ ๊ทœ์น™์„ ์ž˜๋ชป ์ ์šฉํ•œ ๊ฒƒ์ด๋ฏ€๋กœ ํ˜„์žฌ ์ ์šฉ๋œ ์ƒ์„ฑ๊ทœ์น™์„ ์ œ๊ฑฐํ•˜๊ณ  ๋‹ค๋ฅธ ์ƒ์„ฑ ๊ทœ์น™์„ ์ ์šฉํ•œ๋‹ค. ์ด๋•Œ ์ž…๋ ฅ ๊ธฐํ˜ธ์˜ ์œ„์น˜๋Š” ์ œ๊ฑฐํ•œ ์ƒ์„ฑ ๊ทœ์น™์—์„œ ๋ณด์•˜๋˜ ๊ธฐํ˜ธ์˜ ๊ฐœ์ˆ˜๋งŒํผ ๋’ค๋กœ ์ด๋™ํ•˜๋Š”๋ฐ ์ด๋ฅผ ์—ญ์ถ”์ ์ด๋ผ ํ•œ๋‹ค.

โ‘ค ์ด์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋‹ค๊ฐ€ ๋” ์ด์ƒ ์ ์šฉํ•  ์ƒ์„ฑ ๊ทœ์น™์ด ์—†์œผ๋ฉด ์ฃผ์–ด์ง„ ๋ฌธ์žฅ์„ ์ฃผ์–ด์ง„ ๋ฌธ๋ฒ•์— ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๋ฌธ์žฅ์œผ๋กœ ์ธ์‹ํ•˜๊ณ  ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ ์ƒ์„ฑ๋œ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด๊ณผ ์ผ์น˜ํ•˜๋ฉด ์˜ฌ๋ฐ”๋ฅธ ๋ฌธ์žฅ์œผ๋กœ ์ธ์‹ํ•˜๊ณ  ํŒŒ์Šค ํŠธ๋ฆฌ๋ฅผ ์ถœ๋ ฅ์œผ๋กœ ๋‚ด๋ณด๋‚ธ๋‹ค.

6

Page 7: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์˜ˆ์ œ 6-1]ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

๋‹ค์Œ ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด ๋ฌธ์ž์—ด cabdd๊ฐ€ ๋ฌธ๋ฒ•์— ๋งž๋Š” ๋ฌธ์žฅ์ธ์ง€ ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฒ€์‚ฌํ•˜๊ณ , ์ขŒ๋‹จ ์œ ๋„๊ฐ€ ์ ์šฉ๋  ๋•Œ๋งˆ๋‹ค ํŒŒ์Šค ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•ด๋ณด์ž.

โ‘  S โ†’ cDd

โ‘ก D โ†’ a

โ‘ข D โ†’ aE

โ‘ฃ E โ†’ bb

โ‘ค E โ†’ bd

[ํ’€์ด]

1) ์‹œ์ž‘ ๊ธฐํ˜ธ๊ฐ€ S์ด๋ฏ€๋กœ S์˜ ์ƒ์„ฑ ๊ทœ์น™์„ ์ ์šฉํ•œ๋‹ค. ์ƒ์„ฑ ๊ทœ์น™ S โ†’ cDd์— ๋Œ€ํ•ด S โ‡’ cDd๋ฅผ ์œ ๋„ํ•œ๋‹ค. ์ž…๋ ฅ c์™€ ์ƒ์„ฑ๋œ c๊ฐ€ ๊ฐ™์œผ๋ฏ€๋กœ ์ž…๋ ฅ ์œ„์น˜๋Š” ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•˜๋‚˜ ์ด๋™ํ•˜๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒŒ์Šค ํŠธ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

7

Page 8: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

2) ๋‹ค์Œ ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ D์— ๋Œ€ํ•ด D์˜ ์ƒ์„ฑ ๊ทœ์น™์ด 2๊ฐœ ์กด์žฌํ•˜๋ฏ€๋กœ ์ฒซ ๋ฒˆ์งธ ์ƒ์„ฑ ๊ทœ์น™์„์ ์šฉํ•œ๋‹ค. ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ๊ธฐํ˜ธ a์™€ ํ˜„์žฌ์˜ ์ž…๋ ฅ ๊ธฐํ˜ธ๊ฐ€ ๊ฐ™์œผ๋ฏ€๋กœ ์ž…๋ ฅ ์œ„์น˜๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœํ•˜๋‚˜ ์ด๋™ํ•œ๋‹ค. ํŒŒ์Šค ํŠธ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค

3) ๋‹ค์Œ์œผ๋กœ ์ƒ์„ฑ๋œ ๊ธฐํ˜ธ d์™€ ํ˜„์žฌ์˜ ์ž…๋ ฅ ๊ธฐํ˜ธ๊ฐ€ ๋งž์ง€ ์•Š์œผ๋ฏ€๋กœ ์ ์šฉ๋œ ์ƒ์„ฑ ๊ทœ์น™์„ ์ œ๊ฑฐํ•˜๊ณ , ์ œ๊ฑฐํ•œ ์ƒํƒœ์—์„œ ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ D์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ์ƒ์„ฑ ๊ทœ์น™์„ ์ ์šฉํ•œ๋‹ค. ๋ฌผ๋ก  ์ด์ƒ์„ฑ ๊ทœ์น™์€ ์ž…๋ ฅ ๊ธฐํ˜ธ์™€ ๋งž์•„์•ผ ํ•˜๋ฉฐ ์•„์ง ์ ์šฉํ•˜์ง€ ์•Š์€ ๊ฒƒ ์ด์–ด์•ผ ํ•œ๋‹ค. ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ D๋กœ ๋Œ์•„๊ฐˆ ๋•Œ๋Š” ์ฒ˜์Œ์— D๋กœ ๊ฐ”์„ ๋•Œ์˜ ์ž…๋ ฅ ์œ„์น˜๋กœ ๊ฐ€์•ผ ํ•œ๋‹ค. ์ด๋Š” ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธD์— ๋Œ€ํ•œ ํ”„๋กœ์‹œ์ €๊ฐ€ ์ง€์—ญ ๋ณ€์ˆ˜๋กœ ์ž…๋ ฅ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค. ์ฆ‰ S โ‡’ cDd์— D โ†’ aE๋ฅผ ์ ์šฉํ•˜๋ฉด S โ‡’ cDd โ‡’ caEd๊ฐ€ ๋œ๋‹ค. ํŒŒ์Šค ํŠธ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

8

Page 9: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

4) ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ๊ธฐํ˜ธ a์™€ ์ž…๋ ฅ ๊ธฐํ˜ธ a๊ฐ€ ๋งž์œผ๋ฏ€๋กœ ์ž…๋ ฅ ์œ„์น˜๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•˜๋‚˜ ์ด๋™ํ•œ๋‹ค.

5) ๋‹ค์Œ ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ E์— ๋Œ€ํ•ด E์˜ ์ฒซ ๋ฒˆ์งธ ์ƒ์„ฑ ๊ทœ์น™์ธ E โ†’ bb๋ฅผ ์ ์šฉํ•œ๋‹ค. ํŒŒ์Šค ํŠธ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค

6) ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ๊ธฐํ˜ธ b์™€ ํ˜„์žฌ์˜ ์ž…๋ ฅ ๊ธฐํ˜ธ b๊ฐ€ ๊ฐ™์œผ๋ฏ€๋กœ ์ž…๋ ฅ ์œ„์น˜๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•˜๋‚˜์ด๋™ํ•œ๋‹ค

9

Page 10: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

7) ๋‹ค์Œ ์ƒ์„ฑ๋œ ๊ธฐํ˜ธ b์™€ ํ˜„์žฌ์˜ ์ž…๋ ฅ ๊ธฐํ˜ธ๊ฐ€ ๋งž์ง€ ์•Š์œผ๋ฏ€๋กœ ์ ์šฉ๋œ ์ƒ์„ฑ ๊ทœ์น™์„ ์ œ๊ฑฐํ•˜๊ณ , ์ œ๊ฑฐ๋œ ์ƒํƒœ์—์„œ ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ E์— ๋Œ€ํ•ด ๋‹ค์Œ์˜ ์ƒ์„ฑ ๊ทœ์น™ E โ†’ bd ๋ฅผ ์ ์šฉํ•œ๋‹ค. ํ˜„์žฌ์˜ ์ž…๋ ฅ ์œ„์น˜๋ฅผ ์กฐ์ •ํ•œ๋‹ค. ํŒŒ์Šค ํŠธ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค

8) ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ๊ธฐํ˜ธ b์™€ ํ˜„์žฌ์˜ ์ž…๋ ฅ ๊ธฐํ˜ธ b๊ฐ€ ๊ฐ™์œผ๋ฏ€๋กœ ์ž…๋ ฅ ์œ„์น˜๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•˜๋‚˜์ด๋™ํ•œ๋‹ค

9) ๋‹ค์Œ ์ƒ์„ฑ๋œ ๊ธฐํ˜ธ d์™€ ํ˜„์žฌ์˜ ์ž…๋ ฅ ๊ธฐํ˜ธ d๊ฐ€ ๊ฐ™์œผ๋ฏ€๋กœ ์ž…๋ ฅ ์œ„์น˜๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•˜๋‚˜์ด๋™ํ•œ๋‹ค.

10

Page 11: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

10) ๋‹ค์Œ ์ƒ์„ฑ๋œ ๊ธฐํ˜ธ d์™€ ์ž…๋ ฅ ๊ธฐํ˜ธ d๊ฐ€ ์ผ์น˜ํ•˜๋ฏ€๋กœ ์ž…๋ ฅ ๋ฌธ์ž์—ด cabdd๋Š” ์ •์˜๋œ ๋ฌธ๋ฒ•์— ๋งž๋Š” ๋ฌธ์žฅ์ด๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒŒ์Šค ํŠธ๋ฆฌ๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„์˜ ์ถœ๋ ฅ์œผ๋กœ ๋‚ด ๋ณด๋‚ธ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ ์ผ๋ฐ˜์ ์ธ ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„์€ ์—ญ์ถ”์ ์„ ํ•˜๋ฉด์„œ ์ฐจ๋ก€๋กœ ์ƒ์„ฑ ๊ทœ์น™์„์ ์šฉํ•œ๋‹ค. ์ด๋•Œ ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด๊ณผ ๊ฐ™์€ ๋ฌธ์ž์—ด์„ ์ƒ์„ฑํ•˜๋ฉด ์˜ฌ๋ฐ”๋ฅธ ๋ฌธ์žฅ์œผ๋กœ ์ธ์‹ํ•˜๊ณ , ์‹œ์ž‘ ๊ธฐํ˜ธ๋กœ๋ถ€ํ„ฐ ๋ชจ๋“  ์ƒ์„ฑ ๊ทœ์น™์„ ์ ์šฉํ•ด๋„ ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด๊ณผ ๊ฐ™์€ ๋ฌธ์ž์—ด์ด ์ƒ์„ฑ๋˜์ง€ ์•Š์œผ๋ฉด ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„ ๋ฌธ๋ฒ•์œผ๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ๋  ์ˆ˜ ์—†๋Š” ๋ฌธ์žฅ์ด๋ผ๊ณ  ํŒ๋‹จํ•˜์—ฌ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ๋‚ด๋ณด๋‚ธ๋‹ค.

์ด ๊ณผ์ •์—์„œ ์ƒ์„ฑ ๊ทœ์น™์ด ์ž˜๋ชป ์ ์šฉ๋˜์–ด ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์œผ๋ฉด ๊ทธ์ƒ์„ฑ ๊ทœ์น™์—์„œ ๋ณด์•˜๋˜ ๋ฌธ์ž์—ด์„ ๋‹ค์‹œ ๊ฒ€์กฐํ•˜๊ธฐ ์œ„ํ•ด ์ž…๋ ฅ์œผ๋กœ ๋ณด๋‚ด๋ฉฐ ๋‹ค๋ฅธ ์ƒ์„ฑ๊ทœ์น™์„ ๊ฐ€์ง€๊ณ  ์œ ๋„๋ฅผ ์‹œ๋„ํ•œ๋‹ค.

11

Page 12: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

์ด์™€ ๊ฐ™์€ ๊ณผ์ •์„ ์—ญ์ถ”์ ์ด๋ผ ํ•˜๋Š”๋ฐ, ํ•œ ์ž…๋ ฅ ๊ธฐํ˜ธ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณตํ•ด์„œ ๊ฒ€์กฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ์•„์ฃผ ๋งŽ์ด ์†Œ์š”๋˜์–ด ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„์€ ์‹ค์ œ์ ์ธ ์ปดํŒŒ์ผ๋Ÿฌ์˜๊ตฌ๋ฌธ ๋ถ„์„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ์— ๋ถ€์ ๋‹นํ•˜๋‹ค.

๋”ฐ๋ผ์„œ ์—ญ์ถ”์ ์„ ํ•˜์ง€ ์•Š๊ณ  ๊ฒฐ์ •์ ์œผ๋กœ ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค.

ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„์—์„œ๋Š” ๋ฌธ๋ฒ•์— ์–ด๋–ค ์ œ์•ฝ์ ์ธ ์กฐ๊ฑด์„ ๋ถ™์—ฌ์„œ ๊ฒฐ์ •์ ์ธ ๊ตฌ๋ฌธ ๋ถ„์„์ด ๊ฐ€๋Šฅํ•œ๋ฐ ์ด๋Ÿฐ ์ œ์•ฝ ์กฐ๊ฑด์„ LL ์กฐ๊ฑด(LL condition)์ด๋ผ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  LL ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ฌธ๋ฒ•์„ LL ๋ฌธ๋ฒ•์ด๋ผ ํ•˜๋ฉฐ, LL ๋ฌธ๋ฒ•์œผ๋กœ ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ๋ฅผ ๋งŒ๋“ค์–ด ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ LL ๊ตฌ๋ฌธ ๋ถ„์„์ด๋ผ ํ•œ๋‹ค. LL์€ ์ž…๋ ฅ ๋ฌธ์ž์—ด์„ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ฝ์–ด๊ฐ€๋ฉฐ(left to right scanning) ์ขŒํŒŒ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถ™์€ ์ด๋ฆ„์ด๋‹ค.

LL ๋ฐฉ๋ฒ•์€ ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด๊ณผ ๊ฐ™์€ ๋ฌธ์žฅ์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ํ˜„์žฌ์˜ ์ž…๋ ฅ ๊ธฐํ˜ธ๋ฅผ ๋ณด๊ณ  ์ ์šฉ๋  ์ƒ์„ฑ ๊ทœ์น™์„ ๊ฒฐ์ •์ ์œผ๋กœ ์„ ํƒํ•˜์—ฌ ์œ ๋„ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ˜„์žฌ์˜ ์ž…๋ ฅ ๊ธฐํ˜ธ์™€ ์ƒ์„ฑ๋œ ํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ๊ฐ€ ๊ฐ™์ง€ ์•Š์œผ๋ฉด ์ฃผ์–ด์ง„ ๋ฌธ์žฅ์„ ํ‹€๋ฆฐ ๋ฌธ์žฅ์œผ๋กœ ๊ฐ„์ฃผํ•œ๋‹ค. LL ์กฐ๊ฑด์€ ์œ ๋„ ๊ณผ์ •์—์„œ ๋‚˜ํƒ€๋‚œ ๋ฌธ์žฅ ํ˜•ํƒœ์—์„œ ๋…ผํ„ฐ๋ฏธ๋„์„ ๋Œ€์ฒดํ•˜๋Š” ์ƒ์„ฑ ๊ทœ์น™์„ ๊ฒฐ์ •์ ์œผ๋กœ ์„ ํƒํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์œผ๋กœ FIRST์™€ FOLLOW๋ฅผ ์ด์šฉํ•œ๋‹ค.

๋จผ์ € FIRST์™€ FOLLOW ๋“ฑ ๋ช‡ ๊ฐ€์ง€ ์šฉ์–ด๋ฅผ ์ •์˜ํ•˜๊ณ  LL ์กฐ๊ฑด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ ๋‹ค์Œ, LL ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„์˜ ์ข…๋ฅ˜๋ฅผ ์‚ดํŽด๋ณด์ž.

12

Page 13: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์ •์˜ 6-1] FIRST

๋ฌธ๋ฒ• G = (VN, VT, P, S)๊ฐ€ ๋ฌธ๋งฅ์ž์œ  ๋ฌธ๋ฒ•์ผ ๋•Œ ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ A์— ๋Œ€ํ•œ FIRST๋Š” ๋‹ค์Œ๊ณผ๊ฐ™๋‹ค.

FIRST(A) = {b โˆˆ VT โˆช {ฮต} | A โ‡’ bฮฒ, ฮฒ โˆˆ V*}

์ฆ‰ ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ A๋กœ๋ถ€ํ„ฐ ์œ ๋„๋˜์–ด ์ฒซ ๋ฒˆ์งธ๋กœ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ๋Š” ํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ์˜ ์ง‘ํ•ฉ์ด๋‹ค.

[์˜ˆ์ œ 6-2] FIRST ๊ตฌํ•˜๊ธฐ 1

๋‹ค์Œ ๋ฌธ๋ฒ•์—์„œ ๊ฐ ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ์— ๋Œ€ํ•œ FIRST๋ฅผ ๊ตฌํ•ด๋ณด์ž.

S โ†’ C | D

C โ†’ aC | b

D โ†’ cD | d

[ํ’€์ด] ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ๋Š” S, C, D์ด๋ฏ€๋กœ ์ด๊ฒƒ๋“ค์— ๋Œ€ํ•œ FIRST๋ฅผ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค.

S โ‡’ C โ‡’ aC๋กœ ์œ ๋„๋˜๋ฏ€๋กœ a๋Š” S์˜ FIRST์ด๋‹ค.

S โ‡’ C โ‡’ b๋กœ ์œ ๋„๋˜๋ฏ€๋กœ b๋Š” S์˜ FIRST์ด๋‹ค.

S โ‡’ D โ‡’ cD๋กœ ์œ ๋„๋˜๋ฏ€๋กœ c๋Š” S์˜ FIRST์ด๋‹ค.

S โ‡’ D โ‡’ d๋กœ ์œ ๋„๋˜๋ฏ€๋กœ d๋Š” S์˜ FIRST์ด๋‹ค.

โˆด FIRST(S) = {a, b, c, d}

13

*

Page 14: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

C โ‡’ aC๋กœ ์œ ๋„๋˜๋ฏ€๋กœ a๋Š” C์˜ FIRST์ด๋‹ค.

C โ‡’ b๋กœ ์œ ๋„๋˜๋ฏ€๋กœ b๋Š” C์˜ FIRST์ด๋‹ค.

โˆด FIRST(C) = {a, b}

D โ‡’ cD๋กœ ์œ ๋„๋˜๋ฏ€๋กœ c๋Š” D์˜ FIRST์ด๋‹ค.

D โ‡’ d๋กœ ์œ ๋„๋˜๋ฏ€๋กœ d๋Š” D์˜ FIRST์ด๋‹ค.

โˆด FIRST(D) = {c, d}

๊ทธ๋Ÿฌ๋ฏ€๋กœ FIRST(S) = {a, b, c, d} FIRST(C) = {a, b} FIRST(D) = {c, d}

14

Page 15: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์˜ˆ์ œ 6-3] FIRST ๊ตฌํ•˜๊ธฐ 2

๋‹ค์Œ ๋ฌธ๋ฒ•์—์„œ ๊ฐ ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ์— ๋Œ€ํ•œ FIRST๋ฅผ ๊ตฌํ•ด๋ณด์ž.

E โ†’ TEโ€ฒ

Eโ€ฒ โ†’ +TEโ€ฒ | ฮต

T โ†’ FTโ€ฒ

Tโ€ฒ โ†’ *FTโ€ฒ | ฮต

F โ†’ (E) | id

[ํ’€์ด] ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ๋Š” E, Eโ€™, T, Tโ€™, F์— ๋Œ€ํ•œ FIRST๋ฅผ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค.

E โ‡’ TEโ€ฒ โ‡’ FTโ€ฒEโ€ฒ โ‡’ (E)Tโ€ฒEโ€ฒ๋กœ ์œ ๋„๋˜๋ฏ€๋กœ (๋Š” E์˜ FIRST์ด๋‹ค.

E โ‡’ TEโ€ฒ โ‡’ FTโ€ฒEโ€ฒ โ‡’ idTโ€ฒEโ€ฒ๋กœ ์œ ๋„๋˜๋ฏ€๋กœ id๋Š” E์˜ FIRST์ด๋‹ค.

โˆด FIRST(E) = {(, id}

Eโ€ฒ โ‡’ +TEโ€ฒ๋กœ ์œ ๋„๋˜๋ฏ€๋กœ +๋Š” Eโ€ฒ์˜ FIRST์ด๋‹ค.

Eโ€ฒ โ‡’ ฮต์œผ๋กœ ์œ ๋„๋˜๋ฏ€๋กœ ฮต์€ Eโ€ฒ์˜ FIRST์ด๋‹ค.

โˆด FIRST(Eโ€ฒ) = {+, ฮต}

15

Page 16: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

T โ‡’ FTโ€ฒ โ‡’ (E)Tโ€ฒ๋กœ ์œ ๋„๋˜๋ฏ€๋กœ (๋Š” T์˜ FIRST์ด๋‹ค.

T โ‡’ FTโ€ฒ โ‡’ idTโ€ฒ๋กœ ์œ ๋„๋˜๋ฏ€๋กœ id๋Š” T์˜ FIRST์ด๋‹ค.

โˆด FIRST(T) = {(, id}

Tโ€ฒ โ‡’ *FTโ€ฒ๋กœ ์œ ๋„๋˜๋ฏ€๋กœ *๋Š” Tโ€ฒ์˜ FIRST์ด๋‹ค.

Tโ€ฒ โ‡’ ฮต์œผ๋กœ ์œ ๋„๋˜๋ฏ€๋กœ ฮต์€ Tโ€ฒ์˜ FIRST์ด๋‹ค.

โˆด FIRST(Tโ€ฒ) = {*, ฮต}

F โ‡’ (E)๋กœ ์œ ๋„๋˜๋ฏ€๋กœ (๋Š” F์˜ FIRST์ด๋‹ค.

F โ‡’ id๋กœ ์œ ๋„๋˜๋ฏ€๋กœ id๋Š” F์˜ FIRST์ด๋‹ค.

โˆด FIRST(F) = {(, id}

๊ทธ๋Ÿฌ๋ฏ€๋กœ FIRST(E) = {(, id}

FIRST(Eโ€ฒ) = {+, ฮต}

FIRST(T) = {(, id}

FIRST(Tโ€ฒ) = {*, ฮต}

FIRST(F) = {(, id}

16

Page 17: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์ •์˜ 6-2] nullableํ•˜๋‹ค

๋…ผํ„ฐ๋ฏธ๋„ A๊ฐ€ ์„ ์œ ๋„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด A๋ฅผ nullableํ•˜๋‹ค๊ณ  ๋ถ€๋ฅธ๋‹ค.

์ฆ‰, Aโ‡’ ์ด๋ฉด nullableํ•˜๋‹ค.

[์˜ˆ์ œ 6-4] nullableํ•œ์ง€ ๊ฒ€์‚ฌํ•˜๊ธฐ 1

[์˜ˆ์ œ 6-3]์˜ ๋ฌธ๋ฒ•์—์„œ E๋Š” nullable ํ•œ๊ฐ€?

[ํ’€์ด] E โ‡’ TEโ€ฒ โ‡’ FTโ€ฒEโ€ฒ โ‡’ (E)Tโ€ฒEโ€ฒ๋กœ ์œ ๋„๋˜๋ฏ€๋กœ nullable ํ•˜์ง€ ์•Š๋‹ค.

[์ •์˜ 6-3] ring sum

1. A then A B = A

2. if A then A B = if (A โ€“ {})โˆชB.

[์ •์˜ 6-4] FIRST(A1A2 ยทยทยท An)

FIRST(A1A2 ยทยทยท An) = FIRST(A1) FIRST(A2) ยทยทยท FIRST(An)

์ฆ‰, ์–ด๋–ค ๋ฌธ์ž์—ด์˜ FIRST๋Š” ๋ฌธ์ž์—ด์˜ ๊ฐ€์žฅ ์™ผ์ชฝ ๊ธฐํ˜ธ๋กœ๋ถ€ํ„ฐ ์œ ๋„๋˜๋Š” ํ„ฐ๋ฏธ๋„๊ธฐํ˜ธ๋ฅผ ์ฐพ๋Š” ๊ณผ์ •์ด๋‹ค. ์ฆ‰ ๋ฌธ์ž์—ด์˜ ์ฒซ ๋ฒˆ์งธ ๊ธฐํ˜ธ๊ฐ€ nullable ํ•˜๋ฉด ๊ทธ ๋ฌธ์ž์—ด ๋‹ค์Œ ๊ธฐํ˜ธ์˜ FIRST๋„ ํ•ด๋‹น ๋ฌธ์ž ์—ด์˜ FIRST์— ์†ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ nullable์ด ์•„๋‹ ๋•Œ๊นŒ์ง€ ๊ธฐํ˜ธ๋“ค์˜ FIRST๋ฅผ ํ•ฉ์ง‘ํ•ฉํ•œ ๊ฒƒ์ด ๋ฌธ์ž์—ด์˜ FIRST๊ฐ€ ๋œ๋‹ค.

17

*

Page 18: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

FIRST(X) ๊ณ„์‚ฐ ๊ทœ์น™

โ‘  ๋งŒ์•ฝ X๊ฐ€ ํ•˜๋‚˜์˜ ํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ์ด๋ฉด {X}๋Š” FIRST(X)์— ํฌํ•จ๋œ๋‹ค.

โ‘ก ๋งŒ์•ฝ X๊ฐ€ ํ•˜๋‚˜์˜ ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ์ด๊ณ  X โ†’ aฮฒ์˜ ์ƒ์„ฑ ๊ทœ์น™์ด ์กด์žฌํ•˜๋ฉด ํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ์ธ {a}๋Š” FIRST(X)์— ์†ํ•œ๋‹ค.

โ‘ข ๋งŒ์•ฝ X โ†’ ฮต์˜ ์ƒ์„ฑ ๊ทœ์น™์ด ์กด์žฌํ•˜๋ฉด {ฮต}๋„ FIRST(X)์— ์†ํ•œ๋‹ค.

โ‘ฃ ๋งŒ์•ฝ X โ†’ Y1Y2 ยทยทยท Yk ์˜ ์ƒ์„ฑ ๊ทœ์น™์ด ์กด์žฌํ•˜๋ฉด FIRST(X) = FIRST(X) โˆช FIRST(Y1Y2 ยทยทยท Yk )์ด๋‹ค.

[์˜ˆ์ œ 6-7] FIRST ๊ตฌํ•˜๊ธฐ 2

[์˜ˆ์ œ 6-3]์˜ ๋ฌธ๋ฒ•์—์„œ ๊ฐ ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ์— ๋Œ€ํ•œ FIRST๋ฅผ FIRST(X) ๊ณ„์‚ฐ ๊ทœ์น™์œผ๋กœ ๊ตฌํ•ด๋ณด์ž.

[ํ’€์ด] ๋จผ์ € ์ƒ์„ฑ ๊ทœ์น™ ํ˜•ํƒœ์— ๋”ฐ๋ผ โ‘ก๋ฒˆ ๊ทœ์น™์„ ์ ์šฉํ•˜๋ฉด ๊ฐ ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ๋Š” ๋‹ค์Œ๊ณผ๊ฐ™์€ ์ดˆ๊ธฐ๊ฐ’์„ ๊ฐ–๋Š”๋‹ค.

FIRST(E) = { }

FIRST(Eโ€ฒ) = {๏ผ‹}

FIRST(T) = { }

18

Page 19: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

FIRST(Tโ€ฒ) = {๏ผŠ}

FIRST(F) = {(, id}

๋‹ค์Œ์œผ๋กœ โ‘ข๋ฒˆ ๊ทœ์น™์„ ์ ์šฉํ•˜๋ฉด ๊ฐ ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ’์„ ๊ฐ–๋Š”๋‹ค.

FIRST(E) = { }

FIRST(Eโ€ฒ) = {๏ผ‹, ฮต}

FIRST(T) = { }

FIRST(Tโ€ฒ) = {๏ผŠ, ฮต}

FIRST(F) = {(, id}

๋งˆ์ง€๋ง‰์œผ๋กœ โ‘ฃ๋ฒˆ๊ณผ โ‘ ๋ฒˆ ๊ทœ์น™์„ ์ ์šฉํ•œ๋‹ค.

FIRST(E) = FIRST(E) โˆช FIRST(TEโ€ฒ)

= FIRST(E) โˆช (FIRST(T) โŠ• FIRST(Eโ€ฒ))

= FIRST(E) โˆช FIRST(T)

FIRST(T) = FIRST(T) โˆช FIRST(FTโ€ฒ)

= FIRST(T) โˆช (FIRST(F) โŠ• FIRST(Tโ€ฒ))

= FIRST(T) โˆช FIRST(F)

= {(, id}

19

Page 20: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

๊ทธ๋Ÿฌ๋ฏ€๋กœ FIRST(E) = {(, id}

FIRST(Eโ€ฒ) = {๏ผ‹, ฮต}

FIRST(T) = {(, id}

FIRST(Tโ€ฒ) = {๏ผŠ, ฮต}

FIRST(F) = {(, id}

[์˜ˆ์ œ 6-3]์˜ ๊ฒฐ๊ณผ์™€ ๊ฐ™๋‹ค.

20

Page 21: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์ •์˜ 6-5] FOLLOW(A)

๋ฌธ๋ฒ• G = = (VN, VT, P, S)๊ฐ€ ๋ฌธ๋งฅ์ž์œ  ๋ฌธ๋ฒ•์ผ ๋•Œ ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ A์˜FOLLOW(A)๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

FOLLOW(A) = {a โˆˆ VT โˆช {$} | S โ‡’ ฮฑAaฮฒ, ฮฑ, ฮฒ โˆˆ V*}

FOLLOW(A)๋Š” ์–ด๋–ค ๋ฌธ์žฅ ํ˜•ํƒœ์—์„œ ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ A ๋‹ค์Œ์— ๋‚˜์˜ค๋Š” ํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค. ์—ฌ๊ธฐ์„œ $๋Š” ์ž…๋ ฅ ๋ฌธ์ž์—ด์˜ ๋์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ธฐํ˜ธ์ด๊ณ , ์‹œ์ž‘ ๊ธฐํ˜ธ์— ๋Œ€ํ•œFOLLOW๋Š” $์ด๋‹ค.

[์˜ˆ์ œ 6-9] FOLLOW ๊ตฌํ•˜๊ธฐ 2

[์˜ˆ์ œ 6-3]์˜ ๋ฌธ๋ฒ•์—์„œ FOLLOW๋ฅผ ๊ตฌํ•ด๋ณด์ž.

[ํ’€์ด] [์˜ˆ์ œ 6-3]์˜ ๋ฌธ๋ฒ•์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒ์„ฑ ๊ทœ์น™ ๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค.

โ‘  E โ†’ TEโ€ฒ

โ‘ก Eโ€ฒ โ†’ +TEโ€ฒ | ฮต

โ‘ข T โ†’ FTโ€ฒ

โ‘ฃ Tโ€ฒ โ†’ *FTโ€ฒ | ฮต

โ‘ค F โ†’ (E) | id

21

*

Page 22: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

๋จผ์ € FOLLOW(E)๋ฅผ ๊ตฌํ•œ๋‹ค. E๊ฐ€ ์‹œ์ž‘ ๊ธฐํ˜ธ์ด๋ฏ€๋กœ ์ž…๋ ฅ ๋ฌธ์ž์—ด์˜ ๋์— $๊ฐ€ ์žˆ๋‹ค. ๋˜ํ•œ โ‘ค๋ฒˆ ์ƒ์„ฑ ๊ทœ์น™์—์„œ E ๋‹ค์Œ์— )๊ฐ€ ์žˆ๋‹ค.

โˆด FOLLOW(E) = {$, )}

๋‹ค์Œ์œผ๋กœ FOLLOW(Eโ€ฒ)๋ฅผ ๊ตฌํ•œ๋‹ค. โ‘ ๋ฒˆ ์ƒ์„ฑ ๊ทœ์น™ E โ†’ TEโ€ฒ์—์„œ Eโ€ฒ ๋‹ค์Œ์— ๋‚˜์˜ค๋Š” ๊ธฐํ˜ธ๋Š” E ๋‹ค์Œ์— ๋‚˜์˜ค๋Š” ๊ธฐํ˜ธ๊ฐ€ ๋จ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ FOLLOW(E)์— ์†ํ•˜๋Š” ๊ธฐํ˜ธ๋Š”FOLLOW(Eโ€ฒ)์—๋„ ์†ํ•œ๋‹ค. ์ฆ‰

FOLLOW(E) โŠ† FOLLOW(Eโ€ฒ)

๊ทธ ๋ฐ–์— ๋” ์ด์ƒ FOLLOW(Eโ€ฒ)๊ฐ€ ์—†๋‹ค.

โˆด FOLLOW(Eโ€ฒ) = FOLLOW(E)

๋‹ค์Œ์œผ๋กœ FOLLOW(T)๋ฅผ ๊ตฌํ•œ๋‹ค. โ‘ ๋ฒˆ ์ƒ์„ฑ ๊ทœ์น™ E โ†’ TEโ€ฒ์—์„œ FOLLOW(T) โŠ‡ FIRST(Eโ€ฒ) = {+} ์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋‹จ, ฮต์€ ์ œ์™ธ๋œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ โ‘ก๋ฒˆ ์ƒ์„ฑ ๊ทœ์น™์—์„œ Eโ€ฒ โ†’ ฮต์ด๋ฏ€๋กœ โ‘ ๋ฒˆ ์ƒ์„ฑ ๊ทœ์น™์€ E โ†’ T๊ฐ€ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ FOLLOW(E)์— ์†ํ•˜๋Š” ๊ธฐํ˜ธ๋Š” FOLLOW(T)์—๋„ ์†ํ•œ๋‹ค. ์ฆ‰

FOLLOW(T) โŠ‡ FOLLOW(E) = {$, )}

โˆด FOLLOW(T) = {$, ), +}

๋‹ค์Œ์œผ๋กœ FOLLOW(Tโ€ฒ)๋ฅผ ๊ตฌํ•œ๋‹ค. โ‘ข๋ฒˆ ์ƒ์„ฑ ๊ทœ์น™ T โ†’ FTโ€ฒ์—์„œ FOLLOW(Tโ€ฒ) โŠ‡ FOLLOW(T) = {$, ), +}์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

โˆด FOLLOW(Tโ€ฒ) = {$, ), +}

22

Page 23: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

๋‹ค์Œ์œผ๋กœ FOLLOW(F)๋ฅผ ๊ตฌํ•œ๋‹ค. โ‘ข๋ฒˆ ์ƒ์„ฑ ๊ทœ์น™ T โ†’ FTโ€ฒ์—์„œ FOLLOW(F) โŠ‡ FIRST(Tโ€ฒ) = {*}์ž„ ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋‹จ, ฮต์€ ์ œ์™ธ๋œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ โ‘ฃ๋ฒˆ ์ƒ์„ฑ ๊ทœ์น™์—์„œ Tโ€ฒ โ†’ ฮต์ด๋ฏ€๋กœ โ‘ข๋ฒˆ ์ƒ์„ฑ ๊ทœ์น™์€ T โ†’ F๊ฐ€ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ FOLLOW(F) โŠ‡ FOLLOW(T) = {$, ), +}์ด๋‹ค.

โˆด FOLLOW(F) = {$, ), +, *}

๊ทธ๋Ÿฌ๋ฏ€๋กœ FOLLOW(E) = {$, )}

FOLLOW(Eโ€ฒ) = {$, )}

FOLLOW(T) = {$, ), ๏ผ‹}

FOLLOW(Tโ€ฒ) = {$, ), ๏ผ‹}

FOLLOW(F) = {$, ), ๏ผ‹, ๏ผŠ}

23

Page 24: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

FOLLOW(A) ๊ณ„์‚ฐ ๊ทœ์น™

โ‘  ๋งŒ์•ฝ A๊ฐ€ ์‹œ์ž‘ ๊ธฐํ˜ธ์ด๋ฉด $๋Š” FOLLOW(A)์— ์†ํ•œ๋‹ค.

โ‘ก ๋งŒ์•ฝ B โ†’ ฮฑAฮฒ, ฮฒ โ‰  ฮต์ธ ์ƒ์„ฑ ๊ทœ์น™์ด ์กด์žฌํ•˜๋ฉด A์˜ FOLLOW์— ฮต์„ ์ œ์™ธํ•œFIRST(ฮฒ)๋ฅผ ์ฒจ๊ฐ€ ํ•œ๋‹ค.

โ‘ข ๋งŒ์•ฝ B โ†’ ฮฑA์ด๊ฑฐ๋‚˜ B โ†’ ฮฑAฮฒ์—์„œ ฮฒ โ‡’ ฮต์ด๋ฉด B์˜ FOLLOW ์ „์ฒด๋ฅผ A์˜FOLLOW์— ์ฒจ๊ฐ€ ํ•œ๋‹ค.

[์˜ˆ์ œ 6-11] FOLLOW ๊ตฌํ•˜๊ธฐ 4

[์˜ˆ์ œ 6-3]์˜ ๋ฌธ๋ฒ•์—์„œ FOLLOW๋ฅผ ๊ตฌํ•ด๋ณด์ž.

[ํ’€์ด] ๋จผ์ € FOLLOW์˜ โ‘ ๋ฒˆ ๊ทœ์น™์— ์˜ํ•ด FOLLOW(E) = {$}์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ FOLLOW์˜ โ‘ก๋ฒˆ ๊ทœ์น™์— ์˜ํ•ด Eโ€ฒ โ†’ ๏ผ‹TEโ€ฒ, Tโ€ฒ โ†’ ๏ผŠFTโ€ฒ, F โ†’ (E)๋ฅผ ์ ์šฉํ•˜๋ฉด ๋‹ค์Œ์„ ์–ป๋Š”๋‹ค.

FOLLOW(T) โŠ‡ FIRST(Eโ€ฒ) = {๏ผ‹} (ฮต์€ ์ œ์™ธ)

FOLLOW(F) โŠ‡ FIRST(Tโ€ฒ) = {๏ผŠ} (ฮต์€ ์ œ์™ธ)

FOLLOW(E) โŠ‡ FIRST( )) = { )}

24

*

Page 25: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

๋‹ค์Œ์œผ๋กœ FOLLOW์˜ โ‘ข๋ฒˆ ๊ทœ์น™์— ์˜ํ•ด E โ†’ TEโ€ฒ, T โ†’ FTโ€ฒ๋ฅผ ์ ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

FOLLOW(Eโ€ฒ) โŠ‡ FOLLOW(E) = {$, )}

FOLLOW(Tโ€ฒ) โŠ‡ FOLLOW(T) = {๏ผ‹}

๋˜ํ•œ FOLLOW์˜ โ‘ข๋ฒˆ ๊ทœ์น™์— ์˜ํ•ด E โ†’ TEโ€ฒ, Eโ€ฒ โ†’ ฮต๊ณผ T โ†’ FTโ€ฒ, Tโ€ฒ โ†’ ฮต์ด๋‹ค.

โˆด FOLLOW(T) โŠ‡ FOLLOW(E) = {$, )}

FOLLOW(F) โŠ‡ FOLLOW(T) = {๏ผ‹}

๊ทธ๋Ÿฌ๋ฏ€๋กœ FOLLOW(E) = {$, )}

FOLLOW(Eโ€ฒ) = {$, )}

FOLLOW(T) = {$, ), ๏ผ‹}

FOLLOW(Tโ€ฒ) = {$, ), ๏ผ‹}

FOLLOW(F) = {$, ), ๏ผ‹, ๏ผŠ}

25

Page 26: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์ •์˜ 6-6] LL ์กฐ๊ฑด

LL ์กฐ๊ฑด์€ ์ž„์˜์˜ ์ƒ์„ฑ ๊ทœ์น™ A โ†’ ฮฑ | ฮฒ โˆˆ P์— ๋Œ€ํ•ด ๋‹ค์Œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค.

FIRST(ฮฑ) โˆฉ FIRST(ฮฒ) ๏ผรธ;

if ฮต โˆˆ FIRST(ฮฑ) then FOLLOW(A) โˆฉ FIRST(ฮฒ) ๏ผรธ

[์˜ˆ์ œ 6-13] LL ์กฐ๊ฑด ๊ฒ€์‚ฌํ•˜๊ธฐ

[์˜ˆ์ œ 6-3]์˜ ๋ฌธ๋ฒ•์ด LL ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž.

[ํ’€์ด] [์˜ˆ์ œ 6-7]๊ณผ [์˜ˆ์ œ 6-11]์—์„œ ๊ตฌํ•œ FIRST์™€ FOLLOW๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฒ€์‚ฌํ•œ๋‹ค.

FIRST(E) = {(, id}

FIRST(Eโ€ฒ) = {๏ผ‹, ฮต}

FIRST(T) = {(, id}

FIRST(Tโ€ฒ) = {๏ผŠ, ฮต}

FIRST(F) = {(, id}

26

Page 27: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

FOLLOW(E) = {$, )}

FOLLOW(Eโ€ฒ) = {$, )}

FOLLOW(T) = {$, ), ๏ผ‹}

FOLLOW(Tโ€ฒ) = {$, ), ๏ผ‹}

FOLLOW(F) = {$, ), ๏ผ‹, ๏ผŠ}

LL ์กฐ๊ฑด์„ ๊ฒ€์‚ฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ƒ์„ฑ ๊ทœ์น™ Eโ€ฒ โ†’ +TEโ€ฒ | ฮต์—์„œ FIRST(+TEโ€ฒ) โˆฉ FOLLOW(Eโ€ฒ) = {+} โˆฉ {$, )} =รธ

์ƒ์„ฑ ๊ทœ์น™ Tโ€ฒ โ†’ *FTโ€ฒ | ฮต์—์„œ FIRST(*FTโ€ฒ) โˆฉ FOLLOW(Tโ€ฒ) = {*} โˆฉ {$, ), +} =รธ

F โ†’ (E) | id์—์„œ FIRST((E)) โˆฉ FIRST(id) = {( } โˆฉ {id} =รธ

๊ทธ๋Ÿฌ๋ฏ€๋กœ LL ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉฐ ์ด ๋ฌธ๋ฒ•์€ LL ๋ฌธ๋ฒ•์ด๋‹ค

27

Page 28: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

์žฌ๊ท€์  ํ•˜๊ฐ• ๊ตฌ๋ฌธ๋ถ„์„

LL ๋ฐฉ๋ฒ•์„ ์‹ค์ œ๋กœ ํŒŒ์‹ฑ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ

โ€ข ์žฌ๊ท€์  ํ•˜๊ฐ• ๊ตฌ๋ฌธ๋ถ„์„(Recursive-descent parsing)

โ€ข ์˜ˆ์ธก ๊ตฌ๋ฌธ๋ถ„์„(Predictive parsing)

์žฌ๊ท€์  ํ•˜๊ฐ• ๊ตฌ๋ฌธ๋ถ„์„

โ€ข LL ๋ฐฉ๋ฒ•์˜ ์ผ์ข…

โ€ข ์ฃผ์–ด์ง„ ์ž…๋ ฅ ๋ฌธ์ž์—ด์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด ์žฌ๊ท€์  ํ”„๋กœ์‹œ์ €๋ฅผ ์‚ฌ์šฉ

โ€ข ์žฌ๊ท€์  ํ”„๋กœ์‹œ์ €๋Š” ๊ฐ ๋…ผํ„ฐ๋ฏธ๋„์— ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋…ผํ„ฐ๋ฏธ๋„์— ๋Œ€ํ•œ ์œ ๋„๋ฅผ ์žฌ๊ท€์  ํ”„๋กœ์‹œ์ € ํ˜ธ์ถœ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•

์žฌ๊ท€์  ํ•˜๊ฐ• ๊ตฌ๋ฌธ๋ถ„์„๊ธฐ๋ฅผ ๊ตฌํ˜„ ํ•˜๋Š” ๋ฐฉ๋ฒ•

โ€ข ๊ฐ ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ์— ๋Œ€ํ•œ ํ”„๋กœ์‹œ์ €๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ์— ๋Œ€ํ•œ ํ”„๋กœ์‹œ์ €๋ฅผ ์ž‘์„ฑํ•œ๋‹ค์Œ ์ด๋ฅผ ํ†ตํ•ฉํ•จ์œผ๋กœ์จ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ์— ๋Œ€ํ•œ ํ”„๋กœ์‹œ์ €๋Š” ์ƒ์„ฑ ๊ทœ์น™์—์žˆ๋Š” ํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ์™€ ์ž…๋ ฅ ๊ธฐํ˜ธ๊ฐ€ ๊ฐ™์€์ง€ ๋น„๊ตํ•˜์—ฌ ๋งŒ์ผ ๊ฐ™์€ ๊ฒฝ์šฐ ๋‹ค์Œ ์ž…๋ ฅ ๊ธฐํ˜ธ๋ฅผ์ฝ๊ฒŒ ํ•˜๋ฉด ๋œ๋‹ค. ๋˜ํ•œ ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ์˜ ๊ฒฝ์šฐ ํ˜„์žฌ์˜ ์ž…๋ ฅ ๊ธฐํ˜ธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์ ์ ˆํ•œ ์ƒ์„ฑ ๊ทœ์น™์ด ์„ ํƒ๋˜๋„๋ก ํ”„๋กœ์‹œ์ €๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

28

Page 29: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

์žฌ๊ท€์  ํ•˜๊ฐ• ๊ตฌ๋ฌธ๋ถ„์„

์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์— ๋Œ€ํ•œ ๊ตฌ๋ฌธ ๋ถ„์„์€ ๋จผ์ € ํ˜„์žฌ์˜ ์ž…๋ ฅ ๊ธฐํ˜ธ๋ฅผ ๋ณด๊ณ  ์‹œ์ž‘ ๊ธฐํ˜ธ์—๋Œ€ํ•œ ํ”„๋กœ์‹œ์ €๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์—๋Š” ํ˜„์žฌ์˜ ์ž…๋ ฅ ๊ธฐํ˜ธ๊ฐ€ ์ž…๋ ฅ์˜ ๋์„ ๋‚˜ํƒ€๋‚ด๋Š” $์ด๋ฉด accept์ด๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์—๋Ÿฌ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.

์žฌ๊ท€์  ํ•˜๊ฐ• ๊ตฌ๋ฌธ ๋ถ„์„์€ ๋ฌธ๋ฒ•์œผ๋กœ๋ถ€ํ„ฐ ์žฌ๊ท€์  ํ”„๋กœ์‹œ์ €๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ๋ฅผ ์‰ฝ๊ณ ๋„ ๋น ๋ฅด๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์ ๋‹ค๋Š” ๊ฒƒ์ด์žฅ์ ์ด๋‹ค. ๋ฐ˜๋ฉด์— ํ”„๋กœ์‹œ์ €๋ฅผ ๋ถ€๋ฅด๋Š” ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ ค์„œ ์†๋„๊ฐ€ ๋Š๋ฆฌ๊ณ  ๊ตฌ๋ฌธ๋ถ„์„๊ธฐ์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์ง„๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ๋˜ํ•œ ๊ฒฐ์ •์ ์ธ ๊ตฌ๋ฌธ ๋ถ„์„์ด ๋˜์ง€ ์•Š์•„์—ญ์ถ”์ ์ด ํ•„์š”ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์ƒ์„ฑ ๊ทœ์น™์— ๋Œ€ํ•œ ํ”„๋กœ์‹œ์ €๋ฅผ ์ž‘์„ฑํ•จ์œผ๋กœ์จ ์ƒ์„ฑ ๊ทœ์น™์ด ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ ์ „์ฒด๋ฅผ ๋‹ค์‹œ ๊ณ ์ณ์•ผ ํ•œ๋‹ค.

[์˜ˆ์ œ 6-14] ์žฌ๊ท€์  ํ•˜๊ฐ• ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ธฐ

๋‹ค์Œ ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด ์žฌ๊ท€์  ํ•˜๊ฐ• ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ๋ฅผ ๋งŒ๋“ค๊ณ  ๋ฌธ์žฅ aaabbb$์˜ ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ•ด๋ณด์ž.

S โ†’ aAb

A โ†’ aS

A โ†’ b

29

Page 30: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[ํ’€์ด] ๋จผ์ € ๊ฐ ํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ์™€ ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ์— ๋Œ€ํ•œ ํ”„๋กœ์‹œ์ €๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

1. ํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ์— ๋Œ€ํ•œ ํ”„๋กœ์‹œ์ €

procedure pa;

begin

if nextsymbol = qa then get_nextsymbol

else error

end;

procedure pb;

begin

if nextsymbol = qb then get_nextsymbol

else error

end;

30

Page 31: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

2. ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ์— ๋Œ€ํ•œ ํ”„๋กœ์‹œ์ €

procedure PS;

begin

if nextsymbol = qa then

begin pa; PA: pb end;

else error

end;

procedure PA;

begin

case nextsymbol of

qa : begin pa; PS end;

qb : pb;

otherwise : error

end

end; 31

Page 32: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

3. ์ฃผํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ํ”„๋กœ์‹œ์ €

begin

get_nextsymbol;

PS;

if nextsymbol = q$ then accept

else error

end;

์ด๋ ‡๊ฒŒ ์ž‘์„ฑ๋œ ์žฌ๊ท€์  ํ•˜๊ฐ• ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ์—์„œ ๋ฌธ์ž์—ด aaabbb$์˜ ๊ตฌ๋ฌธ ๋ถ„์„์„ํ•ด๋ณด์ž. ๋จผ์ € ์ฃผํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ํ”„๋กœ์‹œ์ €์—์„œ๋Š” get_nextsymbol์— ์˜ํ•ดnextsymbol์ด a๊ฐ€ ๋˜๊ณ  ํ”„๋กœ์‹œ์ € PS๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. PS์—์„œ nextsymbol์ด a์ด๋ฏ€๋กœ get_nextsymbol์— ์˜ํ•ด nextsymbol์ด b๊ฐ€ ๋˜๊ณ  ํ”„๋กœ์‹œ์ € PA๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. PA์—์„œ nextsymbol์ด b์ด๋ฏ€๋กœ get_nextsymbol์— ์˜ํ•ด nextsymbol์ด ๋‹ค์‹œ b๊ฐ€ ๋˜๊ณ  ํ”„๋กœ์‹œ์ € PS๋กœ ๋ฆฌํ„ด๋œ๋‹ค. ๋‹ค์‹œ PS์—์„œ nextsymbol์ด b์ด๋ฏ€๋กœget_nextsymbol์— ์˜ํ•ด nextsymbol์ด $๊ฐ€ ๋˜๊ณ  ์ฃผ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ฆฌํ„ด๋œ๋‹ค. nextsymbol์ด $์ด๋ฏ€๋กœ accept ๋œ๋‹ค.

32

Page 33: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

์˜ˆ์ธก ๊ตฌ๋ฌธ๋ถ„์„

์ƒ์„ฑ ๊ทœ์น™์ด ๋ฐ”๋€Œ๋”๋ผ๋„ ์ „์ฒด ๊ตฌ๋ฌธ๋ถ„์„๊ธฐ๋ฅผ ๊ณ ์น˜์ง€ ์•Š๊ณ  ๋‹จ์ง€ ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ์˜ํ–‰๋™์„ ์ œ์–ดํ•˜๋Š” ํŒŒ์‹ฑ ํ…Œ์ด๋ธ”(parsing table)๋งŒ ์ˆ˜์ •ํ•ด์„œ ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•

์‹ค์ œ๋กœ ์Šคํƒ์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•˜๋ฉฐ ์ž…๋ ฅ๊ณผ ์Šคํƒ, ํŒŒ์‹ฑ ํ…Œ์ด๋ธ”, ์ถœ๋ ฅ์œผ๋กœ ๊ตฌ์„ฑ

โ€ข ์ž…๋ ฅ์€ ๊ตฌ๋ฌธ ๋ถ„์„์ด ๋  ์ž…๋ ฅ ๋ฌธ์ž์—ด๊ณผ $์„ ์ €์žฅํ•˜๊ณ , ์Šคํƒ์€ ๋ฌธ์žฅ ํ˜•ํƒœ์—์„œ์ž…๋ ฅ ๋ฌธ์ž์—ด๊ณผ ์•„์ง ๋งค์นญ๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„์„ ์œ ์ง€ํ•˜๋ฉฐ bottom marker๋กœ ์—ญ์‹œ$๋ฅผ ๊ฐ–๋Š”๋‹ค.

โ€ข ์ถœ๋ ฅ์€ ํŒŒ์Šค ํŠธ๋ฆฌ๋‚˜ ๊ตฌ๋ฌธ ๋ถ„์„ ์‹œ ์ ์šฉ๋œ ์ผ๋ จ์˜ ์ƒ์„ฑ ๊ทœ์น™ ๋ฒˆํ˜ธ(์ขŒ ํŒŒ์Šค)๊ฐ€๋  ์ˆ˜ ์žˆ๋‹ค.

33

Page 34: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ๋Š” ์ฃผ์–ด์ง„ ์ž…๋ ฅ ๋ฌธ์ž์—ด์„ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ฝ๊ณ , ํ˜„์žฌ ์ž…๋ ฅ ๊ธฐํ˜ธ์™€ ์Šคํƒ์˜ ํ†ฑ ๊ธฐํ˜ธ์— ๋”ฐ๋ผ ํŒŒ์‹ฑํ‘œ์—์„œ ์ฃผ์–ด์ง„ ํ–‰๋™์„ ์ทจํ•˜๋ฉฐ ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ•œ๋‹ค. ์˜ˆ์ธก ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ์˜ ํ–‰๋™์€ ์ œ๊ฑฐ, ํ™•์žฅ, ์ธ์‹, ์—๋Ÿฌ ๋“ฑ์ด๋ฉฐ ๊ทธ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

โ€ข ์ œ๊ฑฐ(pop) : ์Šคํƒ์˜ ํ†ฑ๊ณผ ํ˜„์žฌ์˜ ์ž…๋ ฅ ๊ธฐํ˜ธ๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ๋กœ, ์Šคํƒ์˜ ํ†ฑ ๊ธฐํ˜ธ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ ํ˜„์žฌ์˜ ์ž…๋ ฅ ๊ธฐํ˜ธ๋ฅผ ์ž…๋ ฅ ๋ฌธ์ž์—ด์—์„œ ์ œ๊ฑฐํ•œ๋‹ค. ํ˜„์žฌ์˜ ์ž…๋ ฅ ๊ธฐํ˜ธ๋ฅผ ์ž…๋ ฅ ๋ฌธ์ž์—ด์—์„œ์ œ๊ฑฐํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ž…๋ ฅ ๋ฒ„ํผ์˜ ์ œ์–ด๊ฐ€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ ์ž๋ฆฌ ์ด๋™ํ•˜๊ณ  ๋‹ค์Œ ๊ธฐํ˜ธ๋ฅผ ๊ฒ€์กฐํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

โ€ข ํ™•์žฅ(expand) : ์Šคํƒ์˜ ํ†ฑ์ด ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ์ธ ๊ฒฝ์šฐ๋กœ, ์ƒ์„ฑ ๊ทœ์น™์„ ์ ์šฉํ•˜์—ฌ ํ™•์žฅํ•œ๋‹ค. ์ฆ‰ ์ƒ์„ฑ ๊ทœ์น™์˜ ์™ผ์ชฝ ๊ธฐํ˜ธ ๋Œ€์‹ ์— ์˜ค๋ฅธ์ชฝ ๋ฌธ์ž์—ด๋กœ ๋Œ€์น˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

โ€ข ์ธ์‹(accept) : ์Šคํƒ์˜ ํ†ฑ๊ณผ ํ˜„์žฌ์˜ ์ž…๋ ฅ ๊ธฐํ˜ธ๊ฐ€ ๋ชจ๋‘ $์ธ ๊ฒฝ์šฐ๋กœ, ์ž…๋ ฅ ๋ฌธ์ž์—ด์ด ์˜ฌ๋ฐ”๋ฅธ ๋ฌธ์ž์—ด์ž„์„ ์•Œ๋ ค์ค€๋‹ค. ์—ฌ๊ธฐ์„œ $๋Š” ๋ฌธ์ž์—ด์˜ ๋๊ณผ ์Šคํƒ์˜ ๋ฐ”๋‹ฅ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ฆ‰ ๊ตฌ๋ฌธ๋ถ„์„ ์‹œ ์Šคํƒ์˜ ์ดˆ๊ธฐ ์ƒํƒœ๋Š” $S๋กœ ์ถœ๋ฐœํ•˜๋ฉฐ ์ž…๋ ฅ ๋ฌธ์ž์—ด์€ w$๋กœ ํ‘œ์‹œํ•œ๋‹ค.

โ€ข ์—๋Ÿฌ(error) : ์Šคํƒ์˜ ํ†ฑ์ด ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ์ธ ๊ฒฝ์šฐ๋กœ, ๊ทธ ๊ธฐํ˜ธ๋กœ๋ถ€ํ„ฐ ํ˜„์žฌ ๋ณด๊ณ  ์žˆ๋Š” ๊ธฐํ˜ธ๋ฅผ ์œ ๋„ํ•  ์ˆ˜ ์—†์Œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

34

Page 35: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์•Œ๊ณ ๋ฆฌ์ฆ˜ 6-1] ์˜ˆ์ธก ํŒŒ์‹ฑํ‘œ ๊ตฌ์„ฑ ๋ฐฉ๋ฒ•

[์ž…๋ ฅ] LL ๋ฌธ๋ฒ•

[์ถœ๋ ฅ] ์˜ˆ์ธก ํŒŒ์‹ฑํ‘œ M

[๋ฐฉ๋ฒ•] begin

for each A โ†’ ฮฑ โˆˆ P do

begin

for a โˆˆ FIRST(ฮฑ) do M[A, a] = A โ†’ ฮฑ;

if ฮฑ โ‡’ ฮต then

for b โˆˆ FOLLOW(A) do M[A, b] = A โ†’ ฮฑ

end

end.

35

*

Page 36: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์˜ˆ์ œ 6-15] ์˜ˆ์ธก ํŒŒ์‹ฑํ‘œ ๊ตฌ์„ฑํ•˜๊ธฐ

36

Page 37: Chapter 06

6.2 ํ•˜ํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์˜ˆ์ œ 6-17] ์˜ˆ์ธก ๊ตฌ๋ฌธ ๋ถ„์„

37

Page 38: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„์€ ์ฃผ์–ด์ง„ ๋ฌธ์žฅ์ด ๋ฌธ๋ฒ•์— ๋งž๋Š”์ง€ ์•„๋‹Œ์ง€๋ฅผ ๊ฒ€์‚ฌํ•˜๊ธฐ ์œ„ํ•ด ์ž…๋ ฅ

๋œ ๋ฌธ์ž์—ด์„ ์ฝ์–ด๊ฐ€๋ฉด์„œ ๊ฐ์ถ•์— ์˜ํ•ด ์‹œ์ž‘ ๊ธฐํ˜ธ๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ฃผ์–ด์ง„ ๋ฌธ

์ž์—ด์ด ์‹œ์ž‘ ๊ธฐํ˜ธ๋กœ ๊ฐ์ถ•๋˜๋ฉด ์˜ฌ๋ฐ”๋ฅธ ๋ฌธ์žฅ์ด๋ผ๊ณ  ํŒ๋‹จํ•˜์—ฌ ํŒŒ์Šค ํŠธ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜

๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๋ฌธ์žฅ์œผ๋กœ์„œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

[์ •์˜ 6-7] ๊ฐ์ถ•๊ณผ ํ•ธ๋“ค

S โ‡’ ฮฑAw โ‡’ ฮฑฮฒw์˜ ์œ ๋„ ๊ณผ์ •์ด ์กด์žฌํ•  ๋•Œ ๋ฌธ์žฅ ํ˜•ํƒœ ฮฑฮฒw์—์„œ ฮฒ๋ฅผ A๋กœ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์„๊ฐ์ถ•(reduce)์ด๋ผ ํ•˜๊ณ , ฮฒ๋ฅผ ๋ฌธ์žฅ ํ˜•ํƒœ ฮฑฮฒw์˜ ํ•ธ๋“ค(handle)์ด๋ผ ํ•œ๋‹ค. ์ฆ‰ ํ•œ ๋ฌธ์žฅ ํ˜•ํƒœ์—์„œ ๊ฐ์ถ•๋˜๋Š” ๋ถ€๋ถ„์ด ํ•ธ๋“ค์ด๋‹ค.

[์ •์˜ 6-18] ์šฐ๋‹จ ์œ ๋„์™€ ํ•ธ๋“ค ์ฐพ๊ธฐ

์•ž์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•œ ๋‹ค์Œ ๋ฌธ๋ฒ•์—์„œ ๋ฌธ์žฅ id + id * id์— ๋Œ€ํ•ด ์šฐ๋‹จ ์œ ๋„ ๊ณผ์ •์„๋ณด์ด๊ณ  ํ•ธ๋“ค์„ ์ฐพ์•„๋ณด์ž.

โ‘  E โ†’ E + T โ‘ก E โ†’ T

โ‘ข T โ†’ T * F โ‘ฃ T โ†’ F

โ‘ค F โ†’ (E) โ‘ฅ F โ†’ id

38

*

Page 39: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[ํ’€์ด] ์šฐ์„  ์šฐ๋‹จ ์œ ๋„๋ฅผ ํ•˜์ž.

E โ‡’ E + T (1)

โ‡’ E + T * F (13)

โ‡’ E + T * id (136)

โ‡’ E + F * id (1364)

โ‡’ E + id * id(13646)

โ‡’ T + id * id(136462)

โ‡’ F + id * id(1364624)

โ‡’ id + id * id(13646246)

์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„์€ ์šฐ๋‹จ ์œ ๋„์˜ ์—ญ์ˆœ์ด๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ id + id * id์— ๋Œ€ํ•œ ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

39

Page 40: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

40

Page 41: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

๋‹ค์Œ์œผ๋กœ ํ•ธ๋“ค์„ ์ฐพ์•„๋ณด์ž. id๋ฅผ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด id1, id2, id3์ด๋ผ๊ณ  ํ•œ๋‹ค.

41

Page 42: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์ •์˜ 6-8] ํ•ธ๋“ค ๋Œ€์ฒด

S โ‡’ 1 โ‡’ 2 โ‡’ ยทยทยท โ‡’ n-1 โ‡’n(=)์˜ ์œ ๋„ ๊ณผ์ •์ด ์žˆ์„ ๋•Œ ๊ฐ i์˜ ๋ฌธ์žฅ ํ˜•ํƒœ์—์„œ ํ•ธ๋“ค์„ ์ฐพ์•„ i-1 ๋กœ ๊ฐ€๋ฉด์„œ ์‹œ์ž‘ ์‹ฌ๋ฒŒ๋กœ ๊ฐ์ถ•๋˜๋Š” ๊ณผ์ •์„ ํ•ธ๋“ค ๋Œ€์ฒด(handle pruning)๋ผ๊ณ  ํ•œ๋‹ค.

์ด๋™-๊ฐ์ถ•(shift-reduce) ๊ตฌ๋ฌธ ๋ถ„์„

์ด๋™-๊ฐ์ถ• ๊ตฌ๋ฌธ๋ถ„์„์€ ์ƒํ–ฅ์‹ ๋ฐฉ๋ฒ•์˜ ์ผ์ข…

์Šคํƒ(stack)๊ณผ ์ž…๋ ฅ ๋ฒ„ํผ(input buffer)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„

โ€ข ์Šคํƒ์€ ๋ณดํ†ต ํŒŒ์‹ฑ ์Šคํƒ(parsing stack)์ด๋ผ ๋ถ€๋ฅด๋ฉฐ ๋ฌธ์žฅ ํ˜•ํƒœ์—์„œ ํ•ธ๋“ค์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€ํ•„์š”ํ•œ ๋ฌธ๋ฒ• ์‹ฌ๋ฒŒ๋“ค์„ ์œ ์ง€ํ•˜๊ณ  ์ž…๋ ฅ ๋ฒ„ํผ๋Š” ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์„ ๋ณด์œ 

์ด๋™-๊ฐ์ถ• ๊ตฌ๋ฌธ๋ถ„์„๊ธฐ

42

rm rm rm rm rm

Page 43: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

์ด๋™-๊ฐ์ถ• ๊ตฌ๋ฌธ๋ถ„์„๊ธฐ์˜ ํ–‰๋™

โ€ข ์ด๋™(Shift) : ํ˜„์žฌ์˜ ์ž…๋ ฅ ๊ธฐํ˜ธ๋ฅผ ์Šคํƒ์˜ ํ†ฑ์— ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์„ ์˜๋ฏธ

โ€“ ์ด ๊ณผ์ •์€ ์Šคํƒ์˜ ํ†ฑ์— ํ•ธ๋“ค์ด ๋‚˜ํƒ€๋‚  ๋•Œ๊นŒ์ง€ ๊ณ„์†

โ€ข ๊ฐ์ถ•(Reduce) : ํ•ธ๋“ค์ด ์Šคํƒ์˜ ํ†ฑ์— ๋‚˜ํƒ€๋‚˜๋ฉด ์Šคํƒ์˜ ํ†ฑ์ด ํ•ธ๋“ค์˜ ์˜ค๋ฅธ์ชฝ ๋์ด ๋˜๊ณ ,

ํ•ธ๋“ค์˜ ์™ผ์ชฝ ๋์„ ์ฐพ์•„์„œ ์™„์ „ํ•œ ํ•ธ๋“ค์„ ์ฐพ์€ ๋‹ค์Œ ํ•ธ๋“ค์— ํ•ด๋‹น๋˜๋Š” ์ƒ์„ฑ ๊ทœ์น™์˜ ์™ผ์ชฝ

์— ์žˆ๋Š” ๊ธฐํ˜ธ๋กœ ๋Œ€์ฒด๋˜๋Š” ๊ฒƒ

โ€ข ์ˆ˜๋ฝ(Accept) : ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„ ๋ฌธ๋ฒ•์— ๋งž๋Š” ๋ฌธ์žฅ์ด๋ผ๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋ƒ„.

โ€ข ์—๋Ÿฌ(Error) : ์ฃผ์–ด์ง„ ๋ฌธ์žฅ์ด ์ฃผ์–ด์ง„ ๋ฌธ๋ฒ•์— ๋งž์ง€ ์•Š๋Š” ๋ฌธ์žฅ์ž„์„ ์˜๋ฏธํ•˜๊ณ  ์—๋Ÿฌ ์ฒ˜๋ฆฌ ํ˜ธ

์ถœํ•œ๋‹ค.

43

Page 44: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

๋‹ค์Œ์˜ ์ด๋™ -๊ฐ์ถ• ๊ตฌ๋ฌธ ๋ถ„์„ ๊ณผ์ •์„ ์‚ดํŽด๋ณด์ž.

โ‘  ์ž…๋ ฅ ๋ฌธ์ž์—ด์„ ์ฝ๊ณ  ํ•ธ๋“ค์„ ๋ฐœ๊ฒฌํ•œ๋‹ค.

โ‘ก ํ•ธ๋“ค์„ ์ฐพ์œผ๋ฉด ๊ฐ์ถ•ํ•˜๊ณ  ๋ถ€๋ถ„ ํŒŒ์Šค ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค.

โ‘ข ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ณ„์† ์ง„ํ–‰ํ•œ๋‹ค.

โ‘ฃ ์ž…๋ ฅ ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ์ฝ์€ ํ›„ ์‹œ์ž‘ ๊ธฐํ˜ธ๋ฅผ ๋งŒ๋‚˜๋ฉด ์ฃผ์–ด์ง„ ๋ฌธ์žฅ์€ ๋งž๋Š” ๋ฌธ์žฅ์ด ๋œ๋‹ค

[์˜ˆ์ œ 6-20] ์ด๋™-๊ฐ์ถ• ๊ตฌ๋ฌธ ๋ถ„์„ 2 ๋‹ค์Œ ๋ฌธ๋ฒ•์—์„œ ๋ฌธ์žฅ id + id * id์— ๋Œ€ํ•ด ์ด๋™ -๊ฐ์ถ• ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ•ด๋ณด์ž.

โ‘  E โ†’ E + E

โ‘ก E โ†’ E * E

โ‘ข E โ†’ id

โ‘ฃ E โ†’ (E)

44

Page 45: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[ํ’€์ด] ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ•˜๊ธฐ ์ „์— ๋ฌธ์žฅ id ๏ผ‹ id ๏ผŠ id๊ฐ€ ์ƒ์„ฑ๋˜๋Š”์ง€ ์šฐ๋‹จ ์œ ๋„๋ฅผ ํ•ด๋ณธ๋‹ค.

E โ‡’ E + E

โ‡’ E + E * E

โ‡’ E + E * id

โ‡’ E + id * id

โ‡’ id + id * id

์‹œ์ž‘ ๊ธฐํ˜ธ๋กœ๋ถ€ํ„ฐ ๋ฌธ์žฅ id ๏ผ‹ id ๏ผŠ id๊ฐ€ ์ƒ์„ฑ๋˜๋ฏ€๋กœ ์ฃผ์–ด์ง„ ๋ฌธ์žฅ์€ ์ด๋™ -๊ฐ์ถ• ๊ตฌ๋ฌธ๋ถ„์„์— ์˜ํ•ด ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ•˜๋ฉด ๋งž๋Š” ๋ฌธ์žฅ์ด๋ผ๊ณ  ํ•ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค. ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ•˜๋ ค๋ฉด ํŒŒ์‹ฑํ‘œ๊ฐ€ ์žˆ์–ด์•ผ ํ•˜์ง€๋งŒ ํŒŒ์‹ฑํ‘œ ์—†์ด ์•ž์—์„œ ์šฐ๋‹จ ์œ ๋„ํ•œ ์—ญ์ˆœ์œผ๋กœ ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ•œ๋‹ค.

45

Page 46: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

๊ทธ๋Ÿฐ๋ฐ [์˜ˆ์ œ 6-20]์˜ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ๋Œ€๋‘๋œ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ค„์„ ๋ณด๋ฉด ํ•ธ๋“ค์ด id๊ฐ€๋˜์–ด id๋ฅผ E๋กœ ๊ฐ์ถ•ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๊ฒฝ์šฐ์— ๊ฐ์ถ•ํ•˜์ง€ ์•Š๊ณ  +๋ฅผ ์ด๋™ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ฆ‰ ๋‘๋ฒˆ์งธ ์ค„์€ ๊ฐ์ถ•ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ์ด๋™ํ•  ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ๋ฌธ์ œ์ ์ด ์žˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‹ค์„ฏ ๋ฒˆ์งธ์ค„์—์„œ id ๊ฐ€ ํ•ธ๋“ค์ด ๋˜์–ด E๋กœ ๊ฐ์ถ•ํ•  ์ˆ˜๋„ ์žˆ๊ณ  *๋ฅผ ์ด๋™ํ•  ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ, ์—ฌ์„ฏ ๋ฒˆ์งธ ์ค„์—์„œ๋„ *๋ฅผ ์ด ๋™ํ–ˆ์ง€๋งŒ E + E๊ฐ€ ํ•ธ๋“ค์ด ๋  ์ˆ˜๋„ ์žˆ๋‹ค.

์ด์™€ ๊ฐ™์ด ์ด๋™ -๊ฐ์ถ• ๊ตฌ๋ฌธ ๋ถ„์„์—์„œ๋Š” ํ•ธ๋“ค์„ ์–ด๋–ป๊ฒŒ ์ฐพ์„ ๊ฒƒ์ธ์ง€, ๊ทธ๋ฆฌ๊ณ  ์ฐพ์€ ํ•ธ๋“ค์—๋Œ€ํ•ด ์ƒ์„ฑ ๊ทœ์น™์ด ์—ฌ๋Ÿฌ ๊ฐœ ์กด์žฌํ•œ๋‹ค๋ฉด ์–ด๋–ค ์ƒ์„ฑ ๊ทœ์น™์„ ์ ์šฉํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ๋ฌธ์ œ๊ฐ€๋ฐœ์ƒํ•œ๋‹ค. ๋จผ์ € ํ•ธ๋“ค์„ ์–ด๋–ป๊ฒŒ ์ฐพ์„ ๊ฒƒ์ธ๊ฐ€์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ์šฐ์„ ์ˆœ์œ„ ๊ตฌ๋ฌธ ๋ถ„์„๋ฐฉ๋ฒ•์ด ๋“ฑ์žฅํ–ˆ๋‹ค.

46

Page 47: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ๊ตฌ๋ฌธ ๋ถ„์„

์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ๊ตฌ๋ฌธ ๋ถ„์„(operator precedence parsing)์€ ์—ฐ์‚ฐ์ž ์ƒํ˜ธ ๊ฐ„์˜ ์šฐ์„ ์ˆœ์œ„๊ด€๊ณ„(operator precedence relation)์— ์˜ํ•ด ํ•ธ๋“ค์„ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ๋ฌธ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค.

[์ •์˜ 6-9] ์—ฐ์‚ฐ์ž ์šฐ์„  ์ˆœ์œ„ ๋ฌธ๋ฒ•

์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ๋ฌธ๋ฒ•(operator precedence grammar)์€ ์—ฐ์‚ฐ์ž ๋ฌธ๋ฒ•์ด๋ฉด์„œ 2๊ฐœ์˜ ํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ ์‚ฌ์ด์— ๋งŽ์•„์•ผ 1๊ฐœ์˜ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ๊ด€๊ณ„๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ด ๋ฌธ๋ฒ•์— ์˜ํ•ด ์ •์˜๋œ ์–ธ์–ด๋ฅผ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ์–ธ์–ด๋ผ๊ณ  ํ•œ๋‹ค.

์–ด๋–ค ๋ฌธ๋ฒ•์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ๊ทธ ๋ฌธ๋ฒ•์ด ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ๋ฌธ๋ฒ•์ธ์ง€ ๋ฐ”๋กœ ์•Œ ์ˆ˜๊ฐ€์—†๋‹ค. ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ๊ด€๊ณ„๋Š” ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ํŒŒ์‹ฑํ‘œ๋ฅผ ๋งŒ๋“ค์–ด๋ด์•ผ ์•Œ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

47

Page 48: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ๊ตฌ๋ฌธ ๋ถ„์„ ๋ฐฉ๋ฒ•์€ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ๋ฌธ๋ฒ•์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ์ƒ์„ฑ๊ทœ์น™์˜ ๋ฌธ๋ฒ• ๊ธฐํ˜ธ ์ƒํ˜ธ ๊ฐ„์˜ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ๊ด€๊ณ„์— ์˜ํ•ด ํ•ธ๋“ค์„ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„ ๋ฐฉ๋ฒ•์ด๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ํŒŒ์‹ฑํ‘œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ๊ฐ€ ์‰ฝ๊ณ  ์—ฐ์‚ฐ์ž๊ฐ„์— ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •ํ•˜์—ฌ ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ•  ์ˆ˜ ์žˆ์–ด ์‚ฐ์ˆ ์‹์„ ์œ„ํ•œ ๊ตฌ๋ฌธ ๋ถ„์„ ๋ฐฉ๋ฒ•์œผ๋กœ ์•„์ฃผ ์ ๋‹นํ•˜๋‹ค. ๋ฐ˜๋ฉด์— ๊ตฌ๋ฌธ ๋ถ„์„๋˜๋Š” ๋ฌธ๋ฒ•์˜ ๋ฒ”์œ„๊ฐ€ ์ž‘๊ณ  ํ„ฐ๋ฏธ๋„๊ณผ ํ„ฐ๋ฏธ๋„๋งŒ์˜ ์šฐ์„ ์ˆœ์œ„ ๊ด€๊ณ„์— ์˜ํ•ด ํ•ธ๋“ค์„ ์ฐพ์œผ๋ฏ€๋กœ ๊ตฌ๋ฌธ ๋ถ„์„์ด ์™„์ „ํ•˜๊ฒŒ ๋˜์ง€์•Š๋Š”๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋‹จ์ˆœ์„ฑ ๋•Œ๋ฌธ์— ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•œ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋งŽ์ด ๋งŒ๋“ค์–ด์กŒ๋‹ค.

์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ๋Š” ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค. ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ๊ตฌ๋ฌธ ๋ถ„์„์ด ์ •ํ™•ํžˆ ์ด๋ค„์ง€๋„๋ก ์—ฐ์‚ฐ์ž์šฐ์„ ์ˆœ์œ„ ๊ด€๊ณ„๋ฅผ ๋งŒ๋“œ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. [์˜ˆ์ œ 6-20]์˜ ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด ์ ํ•ฉํ•œ ์šฐ์„ ์ˆœ์œ„ ๊ด€๊ณ„๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝํ—˜์  ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด๋ณด์ž. [์˜ˆ์ œ 6-20]์— ์ฃผ์–ด์ง„ ๋ฌธ๋ฒ•์€ ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์ด๋‹ค. ๋‹ค์Œ ๊ทœ์น™์€ ์ดํ•ญ ์—ฐ์‚ฐ์ž์— ๋Œ€ํ•ด๊ฒฐํ•ฉ ๋ฒ•์น™๊ณผ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ฐ˜์˜ํ•˜์—ฌ ์ ์ ˆํ•œ ํ•ธ๋“ค์„ ์„ ํƒํ•˜๊ฒŒ ํ•œ ๊ฒƒ์ด๋‹ค.

48

Page 49: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

โ‘  ๋งŒ์•ฝ ์—ฐ์‚ฐ์ž ฮธ1์ด ์—ฐ์‚ฐ์ž ฮธ2๋ณด๋‹ค ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’๋‹ค๋ฉด ฮธ1 โ‹— ฮธ2 ๊ทธ๋ฆฌ๊ณ  ฮธ2 โ‹– ฮธ1์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด *๊ฐ€ +๋ณด๋‹ค ๋†’์€ ์šฐ์„ ์ˆœ์œ„์ผ ๋•Œ * โ‹—+ ๊ทธ๋ฆฌ๊ณ  + โ‹– *์ด๋‹ค. ์ด๋Ÿฌํ•œ ๊ด€๊ณ„๋ฅผ ํ†ตํ•ด ์‹E + E * E + E์—์„œ ๊ฐ€์šด๋ฐ์— ์žˆ๋Š” E * E๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ๊ฐ์ถ•๋  ํ•ธ๋“ค์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

โ‘ก ๋งŒ์•ฝ ์—ฐ์‚ฐ์ž ฮธ1๊ณผ ฮธ2๊ฐ€ ๋™์ผํ•œ ์šฐ์„ ์ˆœ์œ„์ด๊ณ  ์—ฐ์‚ฐ์ž๋“ค์ด ์™ผ์ชฝ ๊ฒฐํ•ฉ ๋ฒ•์น™์„ ๊ฐ€์ง€๋ฉดฮธ1 โ‹— ฮธ2 ๊ทธ๋ฆฌ๊ณ  ฮธ2 โ‹— ฮธ1์ด๋‹ค. ๋˜ํ•œ ์—ฐ์‚ฐ์ž๋“ค์ด ์˜ค๋ฅธ์ชฝ ๊ฒฐํ•ฉ ๋ฒ•์น™์„ ๊ฐ€์ง€๋ฉด ฮธ1 โ‹– ฮธ2 ๊ทธ๋ฆฌ๊ณ  ฮธ2 โ‹– ฮธ1์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด +๊ฐ€ ์™ผ์ชฝ ๊ฒฐํ•ฉ ๋ฒ•์น™์„ ๊ฐ€์ง€๋ฉด + โ‹— +์ด๋‹ค.

โ‘ข ๋ชจ๋“  ์—ฐ์‚ฐ์ž ฮธ์— ๋Œ€ํ•ด ฮธ โ‹– id, id โ‹— ฮธ, ฮธ โ‹– (, ( โ‹– ฮธ, ) โ‹— ฮธ, ฮธ โ‹— $, $ โ‹– ฮธ์ด๋‹ค. ๋˜ํ•œ ๋‹ค์Œ๊ณผ๊ฐ™์ด ๋˜๊ฒŒ ํ•œ๋‹ค.

( โ‰— ) $ โ‹– ( $ โ‹– id

( โ‹– ( id โ‹— $ ) โ‹— $

( โ‹– id id โ‹— ) ) โ‹— )

์ด ๊ทœ์น™์€ id์™€ (E)๋ฅผ ๋ชจ๋‘ E๋กœ ์ถ•์†Œ์‹œํ‚จ๋‹ค. ๋˜ํ•œ $์™€ $ ์‚ฌ์ด ์–ด๋””์—์„œ๋‚˜ ํ•ธ๋“ค์ด ๋ฐœ๊ฒฌ๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ $๋Š” ์Šคํƒ์˜ ํ†ฑ๊ณผ ์ž…๋ ฅ ๋ฒ„ํผ ์˜ค๋ฅธ์ชฝ ๋์˜ ํ‘œ์‹œ(right endmarker)๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

49

Page 50: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์˜ˆ์ œ 6-22] ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ๊ตฌ๋ฌธ๋ถ„์„ 2

[์˜ˆ์ œ 6-20]์˜ ๋ฌธ๋ฒ•์— [์˜ˆ์ œ 6-21]์˜ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ํŒŒ์‹ฑํ‘œ๋ฅผ ์ ์šฉํ•˜์—ฌ ๋ฌธ์žฅ id ๏ผ‹ id ๏ผŠ id์— ๋Œ€ํ•ด ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ•ด๋ณด์ž.

โ‘  E โ†’ E + E

โ‘ก E โ†’ E * E

โ‘ข E โ†’ id

โ‘ฃ E โ†’ (E)

[ํ’€์ด] ๋ฌธ์žฅ id ๏ผ‹ id ๏ผŠ id๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋Š” ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๊ตฌ๋ฌธ ๋ถ„์„์ด ์™„์ „ํžˆ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค.

์šฐ์„ ์ˆœ์œ„ ๋ฌธ๋ฒ•์„ ์ด์šฉํ•œ ๋ฐฉ๋ฒ•์€ ๋ฌธ๋ฒ•์˜ ์ œ์•ฝ์ด ๋งŽ๊ณ , ๊ตฌ๋ฌธ ๋ถ„์„ ์‹œ์—๋„ ์–ด๋–ป๊ฒŒ ํ•ธ๋“ค์„์ •ํ™• ํ•˜๊ฒŒ ์ฐพ์„ ๊ฒƒ์ธ์ง€, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•ธ๋“ค์ด ์กด์žฌํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ํ•ธ๋“ค์„ ๊ฒฐ์ •ํ•  ๊ฒƒ์ธ์ง€ ๋“ฑ์˜๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด ๋ฐ”๋กœ LR ๊ตฌ๋ฌธ ๋ถ„์„์ด๋‹ค

50

Page 51: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

LR ๊ตฌ๋ฌธ ๋ถ„์„

๊ฒฐ์ •์ ์ธ ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„ ๋ฐฉ๋ฒ•

LR (Left to right scanning and Right parse)์€ ์ž…๋ ฅ ๋ฌธ์ž์—ด์„ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ฝ์–ด๊ฐ€๋ฉฐ, ์ถœ๋ ฅ์œผ๋กœ ์šฐํŒŒ์Šค๋ฅผ ์ƒ์„ฑ

LR ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ–‰ํ•˜๋Š” ๊ตฌ๋ฌธ๋ถ„์„๊ธฐ : LR parser

์ฃผ์š” ๋‚ด์šฉ

์ฃผ์–ด์ง„ ๋ฌธ๋ฒ•์œผ๋กœ๋ถ€ํ„ฐ ํŒŒ์‹ฑ ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑํ•˜๋Š” ์ด๋ก ๊ณผ ๋ฐฉ๋ฒ•

ํŒŒ์‹ฑ ํ…Œ์ด๋ธ”์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, LR ํŒŒ์„œ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”๊ฐ€?

๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์œผ๋กœ๋ถ€ํ„ฐ ํŒŒ์‹ฑ ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•

LR ํŒŒ์„œ๋ฅผ ์‹ค์ œ์ ์ธ ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๊ตฌ๋ฌธ๋ถ„์„๊ธฐ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋‚ด์šฉ

51

Page 52: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

LR ๊ตฌ๋ฌธ ๋ถ„์„์˜ ์žฅ์ 

LR ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ๋Š” ๋ชจํ˜ธํ•˜์ง€ ์•Š์€ ๋ฌธ๋งฅ์ž์œ  ๋ฌธ๋ฒ•์œผ๋กœ ์“ฐ์ธ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋Œ€ํ•ด๊ตฌ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

LR ๊ตฌ๋ฌธ ๋ถ„์„ ๋ฐฉ๋ฒ•์€ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์—ญ์ถ”์ ์ด ์—†๋Š” ๊ฒฐ์ •์ ์ธ ์ด๋™-๊ฐ์ถ• ๊ตฌ๋ฌธ๋ถ„์„ ๋ฐฉ๋ฒ•์ด๋‹ค.

LR ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ๋Š” ์ž…๋ ฅ์„ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ฒ€์กฐํ•˜๋ฉด์„œ ๊ตฌ๋ฌธ ์˜ค๋ฅ˜๋ฅผ ์‰ฝ๊ฒŒ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋‹ค.

LR ๊ตฌ๋ฌธ ๋ถ„์„์˜ ๋‹จ์ 

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋Œ€ํ•ด LR ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•˜๋Š” ์ผ์ด ๋„ˆ๋ฌด ๋ฐฉ๋Œ€ํ•œ ์ž‘์—…

LR ๊ตฌ๋ฌธ ๋ถ„์„ ์ข…๋ฅ˜ - ํŒŒ์‹ฑํ‘œ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ

SLR(simple LR) ๊ตฌ๋ฌธ ๋ถ„์„ - LR(0) ํ•ญ๋ชฉ์˜ ์ง‘ํ•ฉ๊ณผ FOLLOW

CLR(canonical LR) ๊ตฌ๋ฌธ ๋ถ„์„ - LR(1) ํ•ญ๋ชฉ์˜ ์ง‘ํ•ฉ

LALR(lookahead LR) ๊ตฌ๋ฌธ ๋ถ„์„ - LR(0) ํ•ญ๋ชฉ์˜ ์ง‘ํ•ฉ๊ณผ lookahead๋กœ๋ถ€ํ„ฐ

๋˜๋Š” LR(1) ํ•ญ๋ชฉ์˜ ์ง‘ํ•ฉ

52

Page 53: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

LR ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ์˜ ๊ตฌ์„ฑ

์ด๋™-๊ฐ์ถ• ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ตฌ๋™ ํ”„๋กœ๊ทธ๋žจ ๋ฐ action๊ณผ GOTO ๋‘ ๋ถ€๋ถ„์„ ํฌํ•จํ•œ ํŒŒ์‹ฑํ‘œ๋กœ ๊ตฌ์„ฑ๋˜๊ณ  ํŒŒ์‹ฑํ‘œ์˜ ํ–‰๋™๋„ ์ด๋™ -๊ฐ์ถ• ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ์™€ ๋˜‘๊ฐ™๋‹ค. ๊ตฌ๋™ ํ”„๋กœ๊ทธ๋žจ์€ LR ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ๊ฐ€ ๋ชจ๋‘ ๊ฐ™์ง€๋งŒ ํŒŒ์‹ฑํ‘œ๋Š” ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค.

LR ๊ตฌ๋ฌธ ๋ถ„์„์— ๋Œ€ํ•œ ์žฅ๋‹จ์ 

SLR ๋ฐฉ๋ฒ•์€ ๊ตฌํ˜„ํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€๋งŒ ๊ฐ•๋ ฅํ•˜์ง€ ๋ชปํ•˜๋ฉฐ, CLR ๋ฐฉ๋ฒ•์€ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•˜์ง€๋งŒ ๊ตฌํ˜„ํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ์–ด๋ ต๋‹ค. LALR ๋ฐฉ๋ฒ•์€ SLR๊ณผ CLR์˜ ์ค‘๊ฐ„ ํ˜•ํƒœ๋กœ ๊ฐ•๋ ฅํ•จ์€ CLR๊ณผ ์œ ์‚ฌํ•˜๊ณ  ํŒŒ์‹ฑํ‘œ์˜ ํฌ๊ธฐ๋Š” SLR ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌ์„ฑ ๊ฐ€๋Šฅ.

์ด ์„ธ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ ๊ด€๊ณ„๋Š” [๊ทธ๋ฆผ 6-4]์™€ ๊ฐ™๋‹ค.

53

Page 54: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

LR ํŒŒ์‹ฑํ‘œ ํ–‰๋™ ๊ตฌ์„ฑ

LR ํŒŒ์‹ฑํ‘œ์˜ 4๊ฐ€์ง€ ํ–‰๋™

1. ์ด๋™ : ACTION[Sm, ai] = ์ด๋™ S

Sm ์ƒํƒœ์—์„œ ์ž…๋ ฅ ๊ธฐํ˜ธ ai๋ฅผ ๋ณธ ํ–‰๋™์ด ์ด๋™ S๋ผ๋Š” ๊ฒƒ์€ โ€œ์ž…๋ ฅ ๊ธฐํ˜ธ๋ฅผ ์Šคํƒ์œผ๋กœ ์ด๋™ํ•˜๊ณ  ๋‹ค์Œ ์ƒํƒœ๋ฅผ S๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด S๋„ stack์— ๋„ฃ๋Š”๋‹ค.โ€๋Š” ์˜๋ฏธ

2. ๊ฐ์ถ• : ACTION[Sm, ai] = ๊ฐ์ถ• A โ†’

Sm ์ƒํƒœ์—์„œ ์ž…๋ ฅ ๊ธฐํ˜ธ ai๋ฅผ ๋ณธ ํ–‰๋™์ด ๊ฐ์ถ• A โ†’ ๋ผ๋Š” ์˜๋ฏธ๋Š” ์Šคํƒ์—์„œ ํ•ธ๋“ค ๋ฅผ

์ œ๊ฑฐ ํ•˜๊ณ  ์Šคํƒ์— ์ƒ์„ฑ ๊ทœ์น™์˜ ์˜ค๋ฅธ์ชฝ ๋ถ€๋ถ„์„ ๋‹ค์Œ ์ƒํƒœ์™€ ํ•จ๊ป˜ ์Šคํƒ์— ๋„ฃ๋Š”๋‹ค.

54

์—๋Ÿฌ(error)

์ˆ˜๋ฝ(accept)2

๊ฐ์ถ•(reduce)1์ƒํƒœ๋ฒˆํ˜ธ

์ด๋™(shift)0

VNVTโˆช{$}

GOTO ํ‘œACTION ํ‘œ๊ธฐํ˜ธ

์ƒํƒœ๋ฒˆํ˜ธ

Page 55: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

3. ์ˆ˜๋ฝ : ACTION[Sm, ai] = ์ˆ˜๋ฝ

Sm ์ƒํƒœ์—์„œ ์ž…๋ ฅ ๊ธฐํ˜ธ ai๋ฅผ ๋ณธ ํ–‰๋™์ด ์ˆ˜๋ฝ์ด๋ผ๋ฉด ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์ด ์˜ฌ๋ฐ”๋ฅธ ๋ฌธ์ž์—ด์ด๋ผ๋Š” ์˜๋ฏธ์ด๋ฉฐ parsing์„ ๋๋‚ธ๋‹ค.

4. ์—๋Ÿฌ : ACTION[Sm, ai] = ์—๋Ÿฌ

Sm ์ƒํƒœ์—์„œ ์ž…๋ ฅ ๊ธฐํ˜ธ ai๋ฅผ ๋ณธ ํ–‰๋™์ด ์—๋Ÿฌ๋ผ๋ฉด ์ž…๋ ฅ ๋ฌธ์ž์—ด์ด ํ‹€๋ฆฐ ๋ฌธ์ž์—ด์ด๋ผ๋Š”์˜๋ฏธ์ด๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด์„ ๋ถˆ๋Ÿฌ ์ฒ˜๋ฆฌ

[์ •์˜ 6-10] LR(k) ๋ฌธ๋ฒ•

LR(k) ๋ฌธ๋ฒ•์€ ๋ชจ๋“  ํ•ญ๋ชฉ(entry)์— ๋Œ€ํ•ด ์œ ์ผํ•˜๊ฒŒ ์ •์˜๋˜๋Š” ํŒŒ์‹ฑํ‘œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์„๋งํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ k๋ฅผ lookahead์˜ ๊ธธ์ด์ด๋‹ค.

[์ •์˜ 6-11] ์ฆ๊ฐ€ ๋ฌธ๋ฒ•

G = (VN, VT, P, S)์—์„œ G์— ์ถ”๊ฐ€๋œ ๋ฌธ๋ฒ•์œผ๋กœ G' = (VNโˆช{S'}, VT, Pโˆช{S'โ†’S}, S') ์ด๋‹ค.

โ€ข S' : ์ƒˆ๋กœ์šด ์‹œ์ž‘ ๊ธฐํ˜ธ

โ€ข S'โ†’S : ์ถ”๊ฐ€๋œ ์ƒ์„ฑ ๊ทœ์น™

โ€ข ์ƒ์„ฑ ๊ทœ์น™S'โ†’S๋ฅผ ๋‘๋Š” ์ด์œ  - ์ฃผ์–ด์ง„ ๋ฌธ์žฅ์ด ์•ˆ์ „ํ•˜๊ฒŒ ์ˆ˜๋ฝ๋˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ55

Page 56: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์˜ˆ์ œ 6-23] ์ฆ๊ฐ€ ๋ฌธ๋ฒ• ๋งŒ๋“ค๊ธฐ

๋‹ค์Œ ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด ์ฆ๊ฐ€ ๋ฌธ๋ฒ•์„ ๋งŒ๋“ค์–ด๋ณด์ž.

โ‘  E โ†’ E + E

โ‘ก E โ†’ E * E

โ‘ข E โ†’ id

โ‘ฃ E โ†’ (E)

[ํ’€์ด]

Sโ€ฒ โ†’ E

โ‘  E โ†’ E + E

โ‘ก E โ†’ E * E

โ‘ข E โ†’ id

โ‘ฃ E โ†’ (E)

56

Page 57: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์ •์˜ 6-12] LR(0) ํ•ญ๋ชฉ

LR(0) ํ•ญ๋ชฉ์€ ์ƒ์„ฑ ๊ทœ์น™์˜ ์˜ค๋ฅธ์ชฝ์— ์  ๊ธฐํ˜ธ(dot symbol)๋ฅผ ๊ฐ€์ง„ ์ƒ์„ฑ ๊ทœ์น™์ด๋‹ค

[์˜ˆ์ œ 6-24] LR(0) ํ•ญ๋ชฉ ๊ตฌํ•˜๊ธฐ

์ƒ์„ฑ ๊ทœ์น™ A โ†’ BCD์— ๋Œ€ํ•ด LR(0) ํ•ญ๋ชฉ์„ ๊ตฌํ•ด๋ณด์ž.

[ํ’€์ด]

LR(0) ํ•ญ๋ชฉ์€ ์ƒ์„ฑ ๊ทœ์น™์˜ ์˜ค๋ฅธ์ชฝ์— ์  ๊ธฐํ˜ธ๋ฅผ ๊ฐ€์ง„ ๊ฒƒ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด4 ๊ฐœ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

[A โ†’ โ€ขBCD], [A โ†’ Bโ€ขCD], [A โ†’ BCโ€ขD], [A โ†’ BCDโ€ข]

LR(0) ํ•ญ๋ชฉ A โ†’ Bโ€ขCD์˜ ๊ฒฝ์šฐ B๋Š” ์ด๋ฏธ ์ฝ์—ˆ๊ณ  CD๋Š” ์•ž์œผ๋กœ ์ฝ์„ ๊ธฐํ˜ธ์ž„์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๊ทธ๋ฆฌ๊ณ  LR(0) ํ•ญ๋ชฉ A โ†’ BCDโ€ข๋Š” ๋ฌธ์ž์—ด BCD๋ฅผ ๋ชจ๋‘ ์ฝ์—ˆ๊ณ  ์ด์ œ BCD๋ฅผ A๋กœ ๊ฐ์ถ•ํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค. LR(0) ํ•ญ๋ชฉ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ƒ์„ฑ ๊ทœ์น™์˜ ์˜ค๋ฅธ์ชฝ์— ์  ๊ธฐํ˜ธ๋ฅผ ์ฐ๋Š” ๊ฒƒ์„ ๋งˆ(marking)ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ๋˜ํ•œ LR(0) ํ•ญ๋ชฉ์—์„œ ์  ๊ธฐํ˜ธ ๋‹ค์Œ์— ์žˆ๋Š” ๊ธฐํ˜ธ๋ฅผ ๋งˆํฌ ๊ธฐํ˜ธ(mark symbol)๋ผ ๋ถ€๋ฅธ๋‹ค.

57

Page 58: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์ •์˜ 6-13] LR(0) ํ•ญ๋ชฉ์˜ ์„ธ๊ฐ€์ง€ ์ข…๋ฅ˜

LR(0) ํ•ญ๋ชฉ [A โ†’ ฮฑโ€ขฮฒ]์—์„œ ฮฑโ‰ ฮต์ด๊ฑฐ๋‚˜ A = Sโ€ฒ(Sโ€ฒ๋Š” ์ฆ๊ฐ€ ๋ฌธ๋ฒ•์˜ ์‹œ์ž‘ ๊ธฐํ˜ธ)์ด๋ฉด ์ด ํ•ญ๋ชฉ์„์ปค๋„(kernel) ํ•ญ๋ชฉ

LR(0) ํ•ญ๋ชฉ [A โ†’โ€ขฮฑ]์™€ ๊ฐ™์ด ์  ๊ธฐํ˜ธ๊ฐ€ ์ƒ์„ฑ ๊ทœ์น™ ์ฒ˜์Œ์— ์žˆ๋Š” ํ•ญ๋ชฉ์„ ํด๋กœ์ €(closure) ํ•ญ๋ชฉ

LR(0) ํ•ญ๋ชฉ [A โ†’ ฮฑโ€ข]์™€ ๊ฐ™์ด ์ƒ์„ฑ ๊ทœ์น™ ๋์— ์  ๊ธฐํ˜ธ๊ฐ€ ์žˆ๋Š” ํ•ญ๋ชฉ์„ ๊ฐ์ถ• ํ•ญ๋ชฉ

์ •๊ทœ ํ•ญ๋ชฉ ์ง‘ํ•ฉ(canonical collection)์ด๋ผ ๋ถˆ๋ฆฌ๋Š”, ์–ด๋–ค ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ

LR(0) ํ•ญ๋ชฉ์œผ๋กœ ๊ตฌ์„ฑ๋œ ์ง‘ํ•ฉ์€ LR ํŒŒ์‹ฑํ‘œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜

๋‹ค. ์ฃผ์–ด์ง„ ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ ์ •๊ทœ ํ•ญ๋ชฉ ์ง‘ํ•ฉ์„ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ํ•˜๋‚˜์˜ ์ฆ๊ฐ€ ๋ฌธ๋ฒ•

๊ณผ 2๊ฐœ์˜ ํ•จ์ˆ˜ CLOSURE, GOTO๋ฅผ ์ •์˜ํ•ด์•ผ ํ•œ๋‹ค.

58

Page 59: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์ •์˜ 6-14] CLOSURE(I)๋ฅผ ๊ตฌํ•˜๋Š” ๊ทœ์น™

I๊ฐ€ ๋ฌธ๋ฒ• G์— ๋Œ€ํ•œ LR(0) ํ•ญ๋ชฉ์œผ๋กœ ๊ตฌ์„ฑ๋œ ์ง‘ํ•ฉ์ด๋ฉด CLOSURE(I)๋Š” ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ๊ทœ์น™์—๋”ฐ๋ผ ๊ตฌํ•œ๋‹ค.

โ€ข ์ดˆ๊ธฐ์— I์— ์†ํ•œ ๋ชจ๋“  LR(0) ํ•ญ๋ชฉ์„ CLOSURE(I)์— ์ถ”๊ฐ€ํ•œ๋‹ค.

โ€ข [A โ†’ ฮฑโ€ขBฮฒ]๊ฐ€ CLOSURE(I)์— ํฌํ•จ๋˜์–ด ์žˆ๊ณ  B โ†’ ฮณ์˜ ์ƒ์„ฑ ๊ทœ์น™์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ, B โ†’โ€ขฮณ๊ฐ€CLOSURE(I)์— ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ์ด ํ•ญ๋ชฉ์„ CLOSURE(I)์— ์ถ”๊ฐ€ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ทœ์น™์€ ์ƒˆ๋กœ์šดLR(0) ํ•ญ๋ชฉ์ด CLOSURE(I)์— ๋” ์ด์ƒ ์ถ”๊ฐ€๋  ์ˆ˜ ์—†์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต์ ์œผ๋กœ ๊ณ„์† ์ ์šฉ๋œ๋‹ค.

โ€ข ์ฆ‰, CLOSURE(I) = I โˆช {[B โ†’ .] | [A โ†’ .B] โˆˆ CLOSUR(I), Bโ†’ โˆˆP}

CLOSURE(I)๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ [์•Œ๊ณ ๋ฆฌ์ฆ˜ 6-4]์™€ ๊ฐ™๋‹ค.

[์˜ˆ์ œ 6-25] CLOSURE ๊ตฌํ•˜๊ธฐ ๋‹ค์Œ ๋ฌธ๋ฒ•์—์„œ LR(0) ํ•ญ๋ชฉ Eโ€ฒ โ†’โ€ขE์™€ E โ†’ E ๏ผ‹โ€ขT์˜ CLOSURE๋ฅผ ๊ตฌํ•ด๋ณด์ž.

Eโ€ฒ โ†’ E

E โ†’ E ๏ผ‹ T | T

T โ†’ T ๏ผŠ F | F

F โ†’ (E) | id

59

Page 60: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[ํ’€์ด]

CLOSURE([Eโ€ฒ โ†’โ€ขE]) = { [Eโ€ฒ โ†’โ€ขE], [E โ†’โ€ขE๏ผ‹T}, [E โ†’โ€ขT], [T โ†’โ€ขT๏ผŠF], [T โ†’โ€ขF], [F โ†’โ€ข(E)], [F โ†’โ€ขid]}

CLOSURE([E โ†’ E๏ผ‹โ€ขT]) = {[E โ†’ E ๏ผ‹โ€ขT], [T โ†’โ€ขT๏ผŠF], [T โ†’โ€ขF], [F โ†’โ€ข(E)], [F โ†’โ€ขid]

[์ •์˜ 6-15] GOTO ํ•จ์ˆ˜

LR(0) ํ•ญ๋ชฉ์˜ GOTO ํ•จ์ˆ˜๋Š” I๊ฐ€ ํ•ญ๋ชฉ์˜ ์ง‘ํ•ฉ์ด๊ณ  X โˆˆ V์ด๋ฉด GOTO(I, X) = CLOSURE({[A โ†’ ฮฑXโ€ขฮฒ] | [A โ†’ ฮฑโ€ขXฮฒ โˆˆ I})์ด๋‹ค.

[์˜ˆ์ œ 6-26] GOTO ํ•จ์ˆ˜ ๊ณ„์‚ฐํ•˜๊ธฐ

[์˜ˆ์ œ 6-25]์˜ ๋ฌธ๋ฒ•์—์„œ I = {[Eโ€ฒ โ†’ Eโ€ข], [E โ†’ Eโ€ข๏ผ‹ T]}์ผ ๋•Œ GOTO(I, ๏ผ‹)๋ฅผ ๊ณ„์‚ฐํ•ด๋ณด์ž.

[ํ’€์ด] GOTO(I, ๏ผ‹) = CLOSURE([E โ†’ E ๏ผ‹โ€ขT]}

= {[E โ†’ E ๏ผ‹โ€ขT], [T โ†’โ€ขT๏ผŠF], [T โ†’โ€ขF], [F โ†’โ€ข(E)], [F โ†’โ€ขid]}

60

Page 61: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์ •์˜ 6-16] LR(0) ํ•ญ๋ชฉ ์ง‘ํ•ฉ์˜ ์ •๊ทœ ํ•ญ๋ชฉ ์ง‘ํ•ฉ

LR(0) ํ•ญ๋ชฉ ์ง‘ํ•ฉ์˜ ์ •๊ทœ ํ•ญ๋ชฉ ์ง‘ํ•ฉ์€ C0์œผ๋กœ ํ‘œ๊ธฐํ•˜๋ฉฐ, C0 = {CLOSURE ({[Sโ€ฒ โ†’โ€ขS])} โˆช {GOTO (I, X) | I โˆˆ C0 , X โˆˆ V}์ด๋‹ค.

[์˜ˆ์ œ 6-27] LR(0) ํ•ญ๋ชฉ ์ง‘ํ•ฉ์˜ ์ •๊ทœ ํ•ญ๋ชฉ ์ง‘ํ•ฉ ๊ตฌํ•˜๊ธฐ

๋‹ค์Œ ๋ฌธ๋ฒ•์—์„œ LR(0) ํ•ญ๋ชฉ ์ง‘ํ•ฉ์˜ ์ •๊ทœ ํ•ญ๋ชฉ ์ง‘ํ•ฉ์„ ๊ตฌํ•ด๋ณด์ž.

โ‘  E โ†’ E ๏ผ‹ T โ‘ก E โ†’ T โ‘ข T โ†’ T ๏ผŠ F โ‘ฃ T โ†’ F โ‘ค F โ†’ (E) โ‘ฅ F โ†’ id

[ํ’€์ด] 1. ๋จผ์ € ์ฆ๊ฐ€ ๋ฌธ๋ฒ•์„ ๋งŒ๋“ ๋‹ค.

Sโ€ฒ โ†’ E โ‘  E โ†’ E ๏ผ‹ T โ‘ก E โ†’ T โ‘ข T โ†’ T ๏ผŠ F โ‘ฃ T โ†’ F โ‘ค F โ†’ (E) โ‘ฅ F โ†’ id

2. LR(0) ํ•ญ๋ชฉ ์ง‘ํ•ฉ์˜ ์ •๊ทœ ํ•ญ๋ชฉ ์ง‘ํ•ฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

I0 : CLOSURE([Sโ€ฒ โ†’โ€ขE]) = {[Sโ€ฒ โ†’โ€ขE], [E โ†’โ€ขE๏ผ‹T], [E โ†’โ€ขT], [T โ†’โ€ข T๏ผŠF], [T โ†’โ€ขF], [F โ†’โ€ข(E)], [F โ†’โ€ขid]}

GOTO(I0, E) = I1 = CLOSURE([Sโ€ฒ โ†’ Eโ€ข], [E โ†’ Eโ€ข๏ผ‹T])

= {[Sโ€ฒ โ†’ Eโ€ข], [E โ†’ Eโ€ข๏ผ‹T]}

GOTO(I0, T) = I2 = CLOSURE([E โ†’ Tโ€ข], [T โ†’ Tโ€ข๏ผŠT])

= {[E โ†’ Tโ€ข], [T โ†’ Tโ€ข๏ผŠT]}

61

Page 62: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

GOTO(I0, F) = I3 = CLOSURE([T โ†’ Fโ€ข])

= {[T โ†’ Fโ€ข]}

GOTO(I0, ( ) = I4 = CLOSURE([F โ†’ (โ€ขE)])

= {[F โ†’ (โ€ขE)], [E โ†’โ€ขE๏ผ‹T], [E โ†’โ€ขT], [T โ†’โ€ขT๏ผŠF], [T โ†’โ€ขF], [F โ†’โ€ข(E)], [F โ†’โ€ขid]}

GOTO(I0, id) = I5 = CLOSURE([F โ†’ idโ€ข])

= {[F โ†’ idโ€ข]}

GOTO(I1, ๏ผ‹) = I6 = CLOSURE([E โ†’ E๏ผ‹โ€ขT])

= {[E โ†’ E๏ผ‹โ€ขT], [T โ†’โ€ขT๏ผŠF], [T โ†’โ€ขF], [F โ†’โ€ข(E)], [F โ†’โ€ขid]}

GOTO(I2, ๏ผŠ) = I7 = CLOSURE([T โ†’ T๏ผŠโ€ขF])

= {[T โ†’ T๏ผŠโ€ขF], [F โ†’โ€ข(E)], [F โ†’โ€ขid]}

GOTO(I4, E) = I8 = CLOSURE([F โ†’ (Eโ€ข)], [E โ†’ Eโ€ข๏ผ‹T])

= {[F โ†’ (Eโ€ข)], [E โ†’ Eโ€ข๏ผ‹T]}

GOTO(I4, T) = I2

GOTO(I4, F) = I3

GOTO(I4, ( ) = I4

62

Page 63: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

GOTO(I4, id) = I5

GOTO(I6, T) = I9 = CLOSURE([E โ†’ E๏ผ‹Tโ€ข], [T โ†’ Tโ€ข๏ผŠT])

= {[E โ†’ E๏ผ‹Tโ€ข], [T โ†’ Tโ€ข๏ผŠT]}

GOTO(I6, F) = I3

GOTO(I6, ( ) = I4

GOTO(I6, id) = I5

GOTO(I7, F) = I10 = CLOSURE([T โ†’ T๏ผŠFโ€ข])

= {[T โ†’ T๏ผŠFโ€ข]}

GOTO(I7, ( ) = I4

GOTO(I7, id) = I5

GOTO(I8, )) = I11 = CLOSURE([F โ†’ (E)โ€ข])

= {[F โ†’ (E)โ€ข]}

GOTO(I8, ๏ผ‹) = I6

GOTO(I9, ๏ผŠ) = I7

63

Page 64: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

SLR ๊ตฌ๋ฌธ ๋ถ„์„

SLR ๊ตฌ๋ฌธ ๋ถ„์„์€ LR ๊ตฌ๋ฌธ ๋ถ„์„ ๋ฐฉ๋ฒ• ์ค‘ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, LR(0) ํ•ญ๋ชฉ ์ง‘ํ•ฉ๊ณผ FOLLOW๋ฅผ ์ด์šฉํ•˜์—ฌ SLR ํŒŒ์‹ฑํ‘œ๋ฅผ ๋งŒ๋“ ๋‹ค. SLR ํŒŒ์‹ฑํ‘œ๋Š” LR(0) ํ•ญ๋ชฉ์˜ ์ •๊ทœ ํ•ญ๋ชฉ ์ง‘ํ•ฉ์œผ๋กœ๋ถ€ํ„ฐ ์ด๋™๊ณผ GOTO ํ–‰๋™์„ ๊ตฌํ•˜๊ณ , ์ƒ์„ฑ ๊ทœ์น™์— ์žˆ๋Š” ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ์˜FOLLOW๋ฅผ ๊ฐ€์ง€๊ณ  ๊ฐ์ถ•์„ ๊ฒฐ์ •ํ•œ๋‹ค. SLR ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ์˜ ํŒŒ์‹ฑํ‘œ ๊ตฌ์„ฑ์€ [์•Œ๊ณ ๋ฆฌ์ฆ˜ 6-5]์™€๊ฐ™๋‹ค.

[์•Œ๊ณ ๋ฆฌ์ฆ˜ 6-5] SLR ํŒŒ์‹ฑํ‘œ ๊ตฌ์„ฑ

[์ž…๋ ฅ] ๋ฌธ๋ฒ• G = (VN, VT, P, S)

[์ถœ๋ ฅ] ์ฆ๊ฐ€ ๋ฌธ๋ฒ• Gโ€ฒ์— ๋Œ€ํ•œ SLR ํŒŒ์‹ฑํ‘œ

[๋ฐฉ๋ฒ•] โถ Gโ€ฒ๋ฅผ ์œ„ํ•œ LR(0) ํ•ญ๋ชฉ ์ง‘ํ•ฉ์˜ ์ •๊ทœ ํ•ญ๋ชฉ ์ง‘ํ•ฉ C0 = {I0, I1, โ€ฆ, In}์„ ๊ตฌ์„ฑํ•œ๋‹ค. โท์ƒํƒœ i๋Š” Ii์—์„œ ๊ตฌ์„ฑ๋˜์—ˆ๋‹ค. ์ƒํƒœ i๋ฅผ ์œ„ํ•œ ๊ตฌ๋ฌธ ๋ถ„์„ ๋™์ž‘์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฒฐ์ •๋œ๋‹ค. โ€ข๋งŒ์•ฝ LR(0) ํ•ญ๋ชฉ [A โ†’ ฮฑโ€ขaฮฒ] โˆˆ Ii, GOTO(Ii, a) = Ij์ด๋ฉด action ํ‘œ์˜ M[i, a] = ์ด๋™ j โ€ข ๋งŒ์•ฝLR(0) ํ•ญ๋ชฉ [A โ†’ ฮฑโ€ข] โˆˆ Ii์ด๋ฉด ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ A์˜ FOLLOW(A)์— ์†ํ•œ ๋ชจ๋“  ๊ธฐํ˜ธ a์— ๋Œ€ํ•ด action ํ‘œ์˜ M[i, a] = ๊ฐ์ถ• A โ†’ ฮฑ โ€ข๋งŒ์•ฝ LR(0) ํ•ญ๋ชฉ [Sโ€ฒ โ†’ Sโ€ข] โˆˆ Ii์ด๋ฉด action ํ‘œ์˜M[i, $] = ์ˆ˜๋ฝ โธ ๋งŒ์•ฝ LR(0) ํ•ญ๋ชฉ [A โ†’ ฮฑโ€ขBฮฒ] โˆˆ Ii์ด๊ณ  GOTO(Ii, B) = Ij์ด๋ฉด GOTO ํ‘œ์˜M[i, B] = j โน ์ด๋ ‡๊ฒŒ ํ•ด์„œ ์ •์˜๋˜์ง€ ์•Š์€ ํŒŒ์‹ฑํ‘œ์˜ ํ•ญ๋ชฉ๋“ค์€ ๋ชจ๋‘ ์—๋Ÿฌ๊ฐ€ ๋˜๋ฉฐ, ์ฒจ๊ฐ€๋œ์ƒ์„ฑ ๊ทœ์น™์˜ LR(0) ํ•ญ๋ชฉ [Sโ€ฒ โ†’โ€ขS]๋ฅผ ํฌํ•จํ•˜๋Š” ์ƒํƒœ๊ฐ€ ์‹œ์ž‘ ์ƒํƒœ์ด๋‹ค

64

Page 65: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

SLR ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •

โ€ข โ‘  ๋ฌธ๋ฒ•์ด ์ฃผ์–ด์ง„๋‹ค.

โ€ข โ‘ก ์ฆ๊ฐ€ ๋ฌธ๋ฒ•์„ ๋งŒ๋“ ๋‹ค.

โ€ข โ‘ข LR(0) ํ•ญ๋ชฉ ์ง‘ํ•ฉ์˜ ์ •๊ทœ ํ•ญ๋ชฉ ์ง‘ํ•ฉ์„ ๊ตฌํ•œ๋‹ค.

โ€ข โ‘ฃ ๊ฐ์ถ• ํ–‰๋™์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด FOLLOW๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

โ€ข โ‘ค SLR ํŒŒ์‹ฑํ‘œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

[์˜ˆ์ œ 6-28] SLR ํŒŒ์‹ฑํ‘œ ๊ตฌํ•˜๊ธฐ 1

[์˜ˆ์ œ 6-27]์˜ ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ SLR ํŒŒ์‹ฑํ‘œ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž.

[ํ’€์ด]

โ€ข (1) ์ฆ๊ฐ€ ๋ฌธ๋ฒ•

โ€ข 0. S' โ†’ E 1. E โ†’ E + T

โ€ข 2. E โ†’ T 3. T โ†’ T * F

โ€ข 4. T โ†’ F 5. F โ†’ (E)

โ€ข 6. F โ†’ id

โ€ข (2) LR(0) ํ•ญ๋ชฉ ์ง‘ํ•ฉ์˜ ์ •๊ทœ ํ•ญ๋ชฉ ์ง‘ํ•ฉ๊ณผ GOTO ๊ทธ๋ž˜ํ”„

65

Page 66: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

โ€ข

66

Page 67: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

(3) FOLLOW ์˜ ๊ณ„์‚ฐ :

FOLLOW(E) = {$, +, )}

FOLLOW(T) = {*, +, ), $}

FOLLOW(F) = {*, +, ), $}

โ€ข

67

Page 68: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

(4) ํŒŒ์‹ฑํ‘œ ์ž‘์„ฑ :

68

Page 69: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์•Œ๊ณ ๋ฆฌ์ฆ˜ 6-6] LR ๊ตฌ๋ฌธ ๋ถ„์„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ [์ž…๋ ฅ] ์ž…๋ ฅ ๋ฌธ์ž์—ด w์™€ LR ํŒŒ์‹ฑํ‘œ

[์ถœ๋ ฅ] ๋งŒ์•ฝ w๊ฐ€ L(G) ์•ˆ์— ์žˆ์œผ๋ฉด w์— ๋Œ€ํ•œ ํŒŒ์Šค ํŠธ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์—๋Ÿฌ

[๋ฐฉ๋ฒ•] ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ๋Š” ์Šคํƒ์˜ ์ดˆ๊ธฐ ์ƒํƒœ์ธ S0์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

begin

ip๋Š” w$์˜ ์ฒ˜์Œ ๊ธฐํ˜ธ๋ฅผ ๊ฐ€๋ฅด์นœ๋‹ค.

repeat

s ๋Š” stack์˜ ํ†ฑ ์ƒํƒœ

a ๋Š” ip์— ์˜ํ•ด ์ง€์ ๋œ ๊ธฐํ˜ธ;

if action [s, a] = ์ด๋™ sโ€ฒ

then begin a๋ฅผ ์Šคํƒ์— ์‚ฝ์ž…ํ•˜๊ณ  ๊ทธ ๋‹ค์Œ์— sโ€ฒ๋ฅผ ์Šคํƒ์— ์‚ฝ์ž…ํ•œ๋‹ค.

ip ๊ฐ€ ๋‹ค์Œ ์ž…๋ ฅ ๊ธฐํ˜ธ๋กœ ์ด๋™ํ•œ๋‹ค.

end

else if action [s, a] = ๊ฐ์ถ• sโ€ฒ(์ƒ์„ฑ A โ†’ ฮฒ)

then begin |ฮฒ|๊ฐœ์˜ ๊ธฐํ˜ธ๋ฅผ ์Šคํƒ์—์„œ ์‚ญ์ œํ•œ๋‹ค.

A ๋ฅผ ์Šคํƒ์— ์‚ฝ์ž…ํ•œ๋‹ค.

GOTO[sโ€ฒ, A] = n์ด๋ผ๋ฉด n์„ ์Šคํƒ์— ์‚ฝ์ž…ํ•œ๋‹ค.

end

else if action [s, a] = ์ˆ˜๋ฝ

then return

else ์—๋Ÿฌ

until (ip = $์ด๊ณ  ์Šคํƒ์˜ ํ†ฑ = $)

end. 69

Page 70: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์˜ˆ์ œ 6-29] SLR ํŒŒ์‹ฑํ‘œ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ธฐ

[์˜ˆ์ œ 6-28]์—์„œ ๋งŒ๋“ค์–ด์ง„ ํŒŒ์‹ฑํ‘œ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฌธ์žฅ id * (id * id)์˜ ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ•ด๋ณด์ž.

[ํ’€์ด] ํŒŒ์‹ฑํ‘œ์ธ [ํ‘œ 6 -3]์„ ์ด์šฉํ•˜๊ณ  [์•Œ๊ณ ๋ฆฌ์ฆ˜ 6-6]์„ ์ ์šฉํ•˜์—ฌ ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ•œ๋‹ค.

70

Page 71: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

71

Page 72: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์˜ˆ์ œ 6-28]๊ณผ [์˜ˆ์ œ 6-29]์—์„œ SLR ๊ตฌ๋ฌธ ๋ถ„์„ ๋ฐฉ๋ฒ•์€ ์ˆœ์œ„ ๊ตฌ๋ฌธ ๋ถ„์„์—์„œ ๋ฐœ์ƒ

ํ•œ, ํ•ธ๋“ค์„ ์–ด๋–ป๊ฒŒ ์ฐพ์„ ๊ฒƒ์ธ์ง€์™€ ํ•ธ๋“ค์ด 2๊ฐœ ์ด์ƒ์ธ ๊ฒฝ์šฐ ์ •ํ™•ํ•œ ํ•ธ๋“ค์„ ์–ด๋–ป๊ฒŒ

๊ฒฐ์ •ํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋ชจ๋“  SLR(1) ๋ฌธ๋ฒ•์€ ๋ชจํ˜ธํ•˜

์ง€ ์•Š์ง€๋งŒ SLR(1)์ด ์•„๋‹Œ ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค. ๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด์ž.

[์˜ˆ์ œ 6-30] SLR ํŒŒ์‹ฑํ‘œ ๊ตฌํ•˜๊ธฐ 2

๋‹ค์Œ ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ SLR ํŒŒ์‹ฑํ‘œ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž.

โ‘  S โ†’ L = R

โ‘ก S โ†’ R

โ‘ข L โ†’ ๏ผŠR

โ‘ฃ L โ†’ id

โ‘ค R โ†’ L

72

Page 73: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[ํ’€์ด] 1. ์ฆ๊ฐ€ ๋ฌธ๋ฒ•์„ ๋งŒ๋“ ๋‹ค.

Sโ€ฒ โ†’ S

โ‘  S โ†’ L = R

โ‘ก S โ†’ R

โ‘ข L โ†’ ๏ผŠR

โ‘ฃ L โ†’ id

โ‘ค R โ†’ L

73

Page 74: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

74

Page 75: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

FOLLOW๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

โ€ข FOLLOW(S) = {$}

โ€ข FOLLOW(R) = {$, =}

โ€ข FOLLOW(L) = {$, =}

75

Page 76: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

76

Page 77: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[ํ‘œ 6-4]์˜ ํŒŒ์‹ฑํ‘œ์—์„œ 2๋ฒˆ ์ƒํƒœ :

โ€ข ACTION[2,=] := โ€œshift 6 โ€

โ€ข ACTION[2,=] := โ€œreduce 5โ€

์ด๋™ -๊ฐ์ถ• ์ถฉ๋Œ(shift-reduce conflict)

[์˜ˆ์ œ 6-30]์— ์ฃผ์–ด์ง„ ๋ฌธ๋ฒ•์€ SLR ๋ฌธ๋ฒ•์ด ์•„๋‹ˆ๋‹ค.

์œ„์—์„œ ์™œ ์ด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€๋ฅผ ์‚ดํŽด๋ณด์ž.

โ€ข ์ง€๊ธˆ 2๋ฒˆ ์ƒํƒœ์—์„œ ๋‹ค์Œ ์ž…๋ ฅ์œผ๋กœ =๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋˜๋ฉด ์ถฉ๋Œ ๋ฐœ์ƒํ•œ๋‹ค. ๊ฐ์ถ•์ด ๋ฐœ์ƒํ•œ ์ด์œ ๋Š” 2๋ฒˆ ์ƒํƒœ์—์„œ ๊ฐ์ถ• ํ•ญ๋ชฉ์— ์žˆ๋Š” R์— ๋Œ€ํ•ด์„œ FOLLOW๋ฅผ ๊ณ„์‚ฐํ–ˆ๋‹ค. FOLLOW(R) = {$, =} ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์‹ค์ œ๋กœ๋Š” R ๋‹ค์Œ์— =์ด ๋‚˜ํƒ€๋‚˜๋Š” ์šฐ๋ฌธ์žฅ ํ˜•ํƒœ๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.

โ€ข ๋”ฐ๋ผ์„œ 2๋ฒˆ ์ƒํƒœ์—์„œ ๊ฐ์ถ• ํ–‰๋™์€ ์œ ํšจํ•˜์ง€ ์•Š๋‹ค.

โ€ข SLR ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์€ SLR ๋ฌธ๋ฒ•์ด ์ถฉ๋ถ„ํžˆ ๊ฐ•๋ ฅํ•˜์ง€ ์•Š๊ธฐ๋•Œ๋ฌธ์ด๋‹ค.

๊ทธ๋ž˜์„œ ๊ฒฐ์ •์ ์ธ LR ํŒŒ์‹ฑ์„ ํ•˜๊ธฐ ์œ„ํ•ด SLR ๋ฌธ๋ฒ•๋ณด๋‹ค ํ›จ์”ฌ ๊ฐ•๋ ฅํ•œ CLR ๋ฌธ๋ฒ•๊ณผLALR ๋ฌธ๋ฒ•์œผ๋กœ ๊ตฌ๋ฌธ ๋ถ„์„๊ธฐ๋ฅผ ์ž‘์„ฑ

์ถฉ๋Œ์˜ ์ข…๋ฅ˜๋Š” ์ด๋™ -๊ฐ์ถ• ์ถฉ๋Œ๊ณผ ๊ฐ์ถ•-๊ฐ์ถ• ์ถฉ๋Œ(reduce-reduce conflict)์ด ์žˆ๋Š”๋ฐ ์ด์—

๋Œ€ํ•ด์„œ๋Š” 4์ ˆ์—์„œ ์ข€ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ฒ ๋‹ค.

77

Page 78: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

CLR ๊ตฌ๋ฌธ ๋ถ„์„

SLR ๋ฐฉ๋ฒ•์—์„œ ํŒŒ์‹ฑํ‘œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ FOLLOW์— ์†ํ•˜๋Š” ๊ธฐํ˜ธ์— ๋Œ€ํ•ด ๊ฐ์ถ• ํ–‰๋™์„ ๋งŒ๋“ค์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์–ด๋–ค ์ƒํƒœ์—์„œ๋Š” ๊ฐ์ถ• ํ•ญ๋ชฉ [A โ†’ ฮฑโ€ข]์— ๋Œ€ํ•œ FOLLOW(A)์—๋Š” ์†ํ•˜์ง€๋งŒ ๊ทธ ์ƒํƒœ์—์„œ A ๋‹ค์Œ์— ๋‚˜์˜ฌ ์ˆ˜ ์—†๋Š” ๊ธฐํ˜ธ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๋ฐ˜๋ฉด์— ํ•œ ์ƒํƒœ์—์„œ ์–ด๋–ค ๋…ผํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ๋‹ค์Œ์— ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ์ •ํ™•ํ•œ ํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ๋ฅผ lookahead๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ์ด๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด CLR ๊ตฌ๋ฌธ ๋ถ„์„์ด๋‹ค.

LR(0) ํ•ญ๋ชฉ์—์„œ lookahead ์ •๋ณด๋ฅผ ์ฒจ๊ฐ€ํ•œ ๊ฒƒ์ด LR(1) ํ•ญ๋ชฉ์ด๋ฉฐ, ์ด๋Š” [์ •์˜ 6-17]๊ณผ ๊ฐ™๋‹ค.

[์ •์˜ 6-17] LR(1) ํ•ญ๋ชฉ

LR(1) ํ•ญ๋ชฉ์€ [A โ†’ ฮฑโ€ขฮฒ, a] ํ˜•ํƒœ์ด๋ฉฐ, ์—ฌ๊ธฐ์„œ A โ†’ ฮฑฮฒ โˆˆ P์ด๊ณ  a โˆˆ {VT โˆช $}์ด๋‹ค.

โ€ข ์ฒซ ๋ฒˆ์งธ ๋ถ€๋ถ„์ธ A โ†’ ฮฑโ€ขฮฒ๋ฅผ ์ฝ”์–ด(core)๋ผ ํ•˜๋ฉฐ, ์ด๋Š” LR(0) ํ•ญ๋ชฉ๊ณผ ๊ฐ™์€ ์˜๋ฏธ์ด๋‹ค.

โ€ข ๋‘ ๋ฒˆ์งธ ๋ถ€๋ถ„์ธ a๋ฅผ lookahead๋ผ ํ•˜๋ฉฐ, ์ด๋Š” ๊ฐ์ถ• ํ•ญ๋ชฉ์ผ ๋•Œ ๊ทธ ๊ธฐํ˜ธ์— ๋Œ€ํ•ด ๊ฐ์ถ• ํ–‰๋™์„ ํ•˜๋ผ๋Š” ๊ฒƒ์ด๋‹ค.

78

Page 79: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

CLR ํŒŒ์‹ฑํ‘œ ์ž‘์„ฑ

LR(1) ํ•ญ๋ชฉ ์ง‘ํ•ฉ์˜ ์ •๊ทœ ํ•ญ๋ชฉ ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ

โ€ข CLOSURE ํ•จ์ˆ˜์™€ GOTO ํ•จ์ˆ˜๊ฐ€ ํ•„์š”

โ€ข GOTO ํ•จ์ˆ˜๋Š” LR(0) ํ•ญ๋ชฉ ์ง‘ํ•ฉ์˜ ์ •๊ทœ ํ•ญ๋ชฉ ์ง‘ํ•ฉ์„ ๊ตฌํ•  ๋•Œ์™€ ๊ฐ™์ง€๋งŒ, CLOSURE ํ•จ์ˆ˜๋Š” lookahead ์ •๋ณด ๋•Œ๋ฌธ์— ์•ฝ๊ฐ„ ์ˆ˜์ •ํ•ด์•ผ ํ•จ

[์ •์˜ 6-18] LR(1) ํ•ญ๋ชฉ์—์„œ์˜ CLOSURE ํ•จ์ˆ˜ ๊ตฌํ•˜๊ธฐ

CLOSURE(I) = Iโˆช{[Bโ†’., b] | [Aโ†’.B, a] โˆˆ CLOSURE(I),

Bโ†’. โˆˆ P, b โˆˆ FIRST(a)}

LR(1) ํ•ญ๋ชฉ ์ง‘ํ•ฉ์˜ CLOSURE๋Š” LR(0) ํ•ญ๋ชฉ ์ง‘ํ•ฉ์˜ CLOSURE์™€ ์œ ์‚ฌํ•˜๋ฉฐlookahead๋ฅผ ๊ตฌํ•ด์„œ ์ฒจ๊ฐ€ ํ•˜๋Š” ๊ฒƒ๋งŒ์ด ์ฐจ์ด์ 

โ€ข [Aโ†’.B, a]์—์„œ ๋งˆํฌ ๊ธฐํ˜ธ B๋‹ค์Œ์— ์˜ค๋Š” ์˜ FIRST๊ฐ€ ํ•ญ๋ชฉ [Bโ†’. ]์˜ lookahead

โ€ข ๋งŒ์ผ ๊ฐ€ ์„ ์œ ๋„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด, ํ•ญ๋ชฉ [Aโ†’.B]์˜ lookahead์ธ a๋„ lookahead๊ฐ€ ๋œ๋‹ค.

โ€“ ํ•ญ๋ชฉ [Bโ†’. ]์˜ lookahead๋Š” a์˜ FIRST๊ฐ€ ๋œ๋‹ค.

79

Page 80: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์˜ˆ์ œ 6-31] LR(1) ํ•ญ๋ชฉ์— ๋Œ€ํ•œ CLOSURE ๊ตฌํ•˜๊ธฐ

๋‹ค์Œ ๋ฌธ๋ฒ•์—์„œ LR(1) ํ•ญ๋ชฉ [Sโ€ฒ โ†’โ€ขS, $]์— ๋Œ€ํ•œ CLOSURE๋ฅผ ๊ตฌํ•ด๋ณด์ž.

Sโ€ฒ โ†’ S

S โ†’ CC

C โ†’ Cc

C โ†’ d

[ํ’€์ด]

CLOSURE([Sโ€ฒ โ†’โ€ขS, $]) = {[Sโ€ฒ โ†’โ€ขS, $], [S โ†’โ€ขCC, $], [C โ†’โ€ขcC, c/d], [C โ†’โ€ขd, c/d]}

์—ฌ๊ธฐ์„œ [C โ†’โ€ขcC, c/d]๋Š” 2๊ฐœ์˜ ํ•ญ๋ชฉ [C โ†’โ€ขcC, c]์™€ [C โ†’โ€ขcC, d]๊ฐ€ ์ถ•์•ฝ๋œ ํ‘œํ˜„์ด๋‹ค.

80

Page 81: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

LR(1) ํ•ญ๋ชฉ์˜ ์ •๊ทœ ํ•ญ๋ชฉ ์ง‘ํ•ฉ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ SLR์—์„œ LR(0) ํ•ญ๋ชฉ์˜ ์ •๊ทœ ํ•ญ๋ชฉ

์ง‘ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋™์ผํ•˜๋ฉฐ, ์ด๋Š” [์•Œ๊ณ ๋ฆฌ์ฆ˜ 6-7]๊ณผ ๊ฐ™๋‹ค.

[์˜ˆ์ œ 6-31] LR(1) ํ•ญ๋ชฉ์— ๋Œ€ํ•œ CLOSURE ๊ตฌํ•˜๊ธฐ

๋‹ค์Œ ๋ฌธ๋ฒ•์—์„œ LR(1) ํ•ญ๋ชฉ [Sโ€ฒ โ†’โ€ขS, $]์— ๋Œ€ํ•œ CLOSURE๋ฅผ ๊ตฌํ•ด๋ณด์ž.

Sโ€ฒ โ†’ S

S โ†’ CC

C โ†’ Cc

C โ†’ d

[ํ’€์ด]

CLOSURE([Sโ€ฒ โ†’โ€ขS, $]) = {[Sโ€ฒ โ†’โ€ขS, $], [S โ†’โ€ขCC, $], [C โ†’โ€ขcC, c/d], [C โ†’โ€ขd, c/d]}

์—ฌ๊ธฐ์„œ [C โ†’โ€ขcC, c/d]๋Š” 2๊ฐœ์˜ ํ•ญ๋ชฉ [C โ†’โ€ขcC, c]์™€ [C โ†’โ€ขcC, d]๊ฐ€ ์ถ•์•ฝ๋œ ํ‘œํ˜„์ด๋‹ค.

81

Page 82: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์˜ˆ์ œ 6-32, 33] LR(1) ํ•ญ๋ชฉ์˜ ์ •๊ทœ ํ•ญ๋ชฉ ์ง‘ํ•ฉ ๊ตฌํ•˜๊ณ  ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ธฐ

๋‹ค์Œ ๋ฌธ๋ฒ•์—์„œ LR(1) ํ•ญ๋ชฉ์˜ ์ •๊ทœ ํ•ญ๋ชฉ ์ง‘ํ•ฉ์„ ๊ตฌํ•ด๋ณด์ž.

S โ†’ CC

C โ†’ cC

C โ†’ d

[ํ’€์ด]

(1) ์ฆ๊ฐ€ ๋ฌธ๋ฒ• :

0. S' โ†’ S

1. S โ†’ CC

2. C โ†’ cC

3. C โ†’ d

82

Page 83: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

(2) CLR ์ •๊ทœ ํ•ญ๋ชฉ ์ง‘ํ•ฉ๊ณผ GOTO ๊ทธ๋ž˜ํ”„

83

Page 84: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

(3) CLR ํŒŒ์‹ฑํ‘œ

84

Page 85: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

(4) ๋ฌธ์žฅ ccdd์˜ ๊ตฌ๋ฌธ ๋ถ„์„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

85

Page 86: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

์ด์ œ [์˜ˆ์ œ 6-30]์—์„œ SLR ํŒŒ์‹ฑํ‘œ๋ฅผ ๊ตฌํ–ˆ์œผ๋‚˜ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์—ฌ SLR ๋ฌธ๋ฒ•์ด ์•„๋‹Œ ๊ฒƒ์„ ํ™•์ธํ•œ ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด ์ด๋ฒˆ์—๋Š”C LR ํŒŒ์‹ฑํ‘œ๋ฅผ ๊ตฌํ•ด๋ณด์ž.

[์˜ˆ์ œ 6-34] CLR ํŒŒ์‹ฑํ‘œ ๊ตฌํ•˜๊ณ  ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ธฐ 2

[์˜ˆ์ œ 6-30]์—์„œ ๋งŒ๋“  LR(1) ํ•ญ๋ชฉ์˜ ์ •๊ทœ ํ•ญ๋ชฉ ์ง‘ํ•ฉ์„ ์ด์šฉํ•˜์—ฌ CLR ํŒŒ์‹ฑํ‘œ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ , ์ด ํŒŒ์‹ฑํ‘œ๋ฅผ ์ด์šฉํ•˜์—ฌ * id = id์˜ ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ•ด๋ณด์ž.

[ํ’€์ด]

(1) ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฆ๊ฐ€ ๋ฌธ๋ฒ•์„ ๋งŒ๋“ ๋‹ค.

Sโ€ฒ โ†’ S

โ‘  S โ†’ L = R

โ‘ก S โ†’ R

โ‘ข L โ†’ * R

โ‘ฃ L โ†’ id

โ‘ค R โ†’ L

86

Page 87: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

87

Page 88: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

SLR ํŒŒ์‹ฑํ‘œ์—์„œ ๋‚˜ํƒ€๋‚ฌ๋˜ ์ถฉ๋Œ ๋ฌธ์ œ๊ฐ€ CLR ํŒŒ์‹ฑํ‘œ์—์„œ๋Š” ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์˜ˆ์ œ์— ์ฃผ์–ด์ง„ ๋ฌธ๋ฒ•์€ SLR ๋ฌธ๋ฒ•์€ ์•„๋‹ˆ์ง€๋งŒ CLR ๋ฌธ๋ฒ•์—๋Š” ๋งž๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. 88

Page 89: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

๋ฌธ์žฅ * id = id์˜ ๊ตฌ๋ฌธ ๋ถ„์„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

89

Page 90: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

CLR ๋ฐฉ๋ฒ•์€ SLR ๋ฐฉ๋ฒ•๋ณด๋‹ค ๋งค์šฐ ๊ฐ•๋ ฅํ•˜์ง€๋งŒ lookahead๋ฅผ ๊ตฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๊ณผ์ •์ด ๋ณต์žกํ•˜๊ณ  ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋ฉฐ ํŒŒ์‹ฑํ‘œ๊ฐ€ ์ปค์ง„๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ์œ„ํ•ด LR(1)์˜ ๊ฒฝ์šฐ์ฒ˜๋Ÿผ ๊ฐ์ถ• ํ–‰๋™์€ lookahead๋ฅผ ์ด์šฉํ•˜๊ณ  ํŒŒ์‹ฑํ‘œ์˜ ํฌ๊ธฐ๋Š” ๋˜๋„๋ก ์ž‘๊ฒŒ ๊ตฌ์„ฑ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ ์ด๋ฅผ LALR ๋ฐฉ๋ฒ•์ด๋ผ ํ•œ๋‹ค.

LALR ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด์ž

[์˜ˆ์ œ 6-35] CLR ํŒŒ์‹ฑํ‘œ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  SLR ํŒŒ์‹ฑํ‘œ์™€ CLR ํŒŒ์‹ฑํ‘œ์˜ ํฌ๊ธฐ ๋น„๊ต

[์˜ˆ์ œ 6-27]์˜ ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด [์˜ˆ์ œ 6-28]์—์„œ SLR ํŒŒ์‹ฑํ‘œ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ์ด ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ CLR ํŒŒ์‹ฑํ‘œ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  SLR ํŒŒ์‹ฑํ‘œ์™€ CLR ํŒŒ์‹ฑํ‘œ์˜ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•ด๋ณด์ž.

[ํ’€์ด]

1. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฆ๊ฐ€ ๋ฌธ๋ฒ•์„ ๋งŒ๋“ ๋‹ค.

Eโ€ฒ โ†’ E

โ‘  E โ†’ E + T

โ‘ก E โ†’ T

โ‘ข T โ†’ T * F

โ‘ฃ T โ†’ F

โ‘ค F โ†’ (E)

โ‘ฅ F โ†’ id 90

Page 91: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

2. CLR ํŒŒ์‹ฑํ‘œ

91

Page 92: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[ํ‘œ 6-3]์˜ SLR ํŒŒ์‹ฑํ‘œ์™€ [ํ‘œ 6-7]์˜ CLR ํŒŒ์‹ฑํ‘œ๋ฅผ ๋น„๊ตํ•ด๋ณด์ž. ๋˜‘๊ฐ™์€ ์˜ˆ์ œ๋ฅผ ๊ฐ€์ง€๊ณ SLR ํŒŒ์‹ฑ ํ‘œ์™€ CLR ํŒŒ์‹ฑํ‘œ๋ฅผ ์ž‘์„ฑํ–ˆ๋Š”๋ฐ SLR ํŒŒ์‹ฑํ‘œ๋Š” 12ร—9 ํ–‰๋ ฌ์ด๊ณ  CLR ํŒŒ์‹ฑํ‘œ๋Š”22ร—9 ํ–‰๋ ฌ์ด๋‹ค. ๋‹จ ์ˆœ ๋น„๊ต์ด์ง€๋งŒ SLR ๋ฐฉ๋ฒ•์ด CLR ๋ฐฉ๋ฒ•๋ณด๋‹ค ํŒŒ์‹ฑํ‘œ์˜ ํฌ๊ธฐ๋ฅผ ์ž‘๊ฒŒ ํ• ์ˆ˜ ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

92

Page 93: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

LALR ๊ตฌ๋ฌธ ๋ถ„์„

LALR ๊ตฌ๋ฌธ ๋ถ„์„ ๋ฐฉ๋ฒ•์€ lookahead ์ •๋ณด๋ฅผ ์ด์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— lookahead LR ๋ฐฉ๋ฒ•์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค.

โ€ข SLR ๋ฐฉ๋ฒ•๋ณด๋‹ค ํ›จ์”ฌ ๊ฐ•๋ ฅํ•˜๊ณ , ํŒŒ์‹ฑํ‘œ์˜ ํฌ๊ธฐ๊ฐ€ CLR ๋ฐฉ๋ฒ•๋ณด๋‹ค ์ƒ๋‹นํžˆ ์ž‘์œผ๋ฉด์„œ๋„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๊ตฌ๋ฌธ ๊ตฌ์กฐ๋ฅผ ๋Œ€๋ถ€๋ถ„ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ์žฅ์ ์ด๋‹ค. ํŒŒ์‹ฑํ‘œ์˜ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•ด๋ณด๋ฉด SLR ํŒŒ์‹ฑํ‘œ์™€ LALR ํŒŒ์‹ฑํ‘œ๋Š” ์ฃผ์–ด์ง„ ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด ํ•ญ์ƒ ๋™์ผํ•œ๊ฐœ์ˆ˜์˜ ์ƒํƒœ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉฐ, C ์–ธ์–ด์˜ ๊ฒฝ์šฐ ์ „ํ˜•์ ์œผ๋กœ ์ˆ˜๋ฐฑ ๊ฐœ ์ •๋„์ด๋‹ค. ๋ฐ˜๋ฉด์—CLR ํŒŒ์‹ฑํ‘œ๋Š” ๋™์ผํ•œ ๊ทœ๋ชจ์˜ ์–ธ์–ด์— ๋Œ€ํ•ด ์ „ํ˜•์ ์œผ๋กœ ์ˆ˜์ฒœ ๊ฐœ์˜ ์ƒํƒœ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœCLR ํŒŒ์‹ฑํ‘œ๋ณด๋‹ค SLR ํŒŒ์‹ฑํ‘œ๋‚˜ LALR ํŒŒ์‹ฑํ‘œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ์‰ฝ๊ณ  ๊ฒฝ์ œ์ ์ด๋‹ค.

โ€ข ๋˜ํ•œ ๋ชจํ˜ธํ•˜์ง€ ์•Š์€ ๋ฌธ๋งฅ์ž์œ  ๋ฌธ๋ฒ•์œผ๋กœ ํ‘œํ˜„๋œ ๊ฑฐ์˜ ๋ชจ๋“  ์–ธ์–ด๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์—๋Ÿฌ๋ฅผ ์ดˆ๊ธฐ์— ํƒ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ LALR ๋ฐฉ๋ฒ•์€ LR(0) ํ•ญ๋ชฉ์˜ ์ง‘ํ•ฉ์„ ๊ตฌํ•œ ํ›„ ํŒŒ์‹ฑํ‘œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊ฐ์ถ• ํ•ญ๋ชฉ์ด ์žˆ๋Š” ๊ฐ ์ƒํƒœ์—์„œ lookahead ๊ธฐํ˜ธ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐ ์ƒ๋‹นํ•œ ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์ด ์†Œ์š”๋œ๋‹ค.

โ€ข LALR ํŒŒ์‹ฑํ‘œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ํŒŒ์‹ฑํ‘œ๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€๋งŒ ํŒŒ์‹ฑํ‘œ์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์ง€๋Š” LR(1)์„ ๊ฐ€์ง€๊ณ  ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ํšจ์œจ์ ์œผ๋กœ ํŒŒ์‹ฑํ‘œ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” LR(0)๊ณผ lookahead๋ฅผ ๊ฐ€์ง€๊ณ  ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๊ทธ๊ฒƒ์ด๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ๋จผ์ € LR(1) ํ•ญ๋ชฉ์„ ๊ฐ€์ง€๊ณ  ํŒŒ์‹ฑํ‘œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐ™์€ ์ฝ”์–ด๋ฅผ ๊ฐ€์ง„ LR(1) ํ•ญ๋ชฉ์„ ๋ฌถ์–ด์„œ ํ•˜๋‚˜์˜ ์ƒํƒœ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ, lookahead๋Š” LR(1) ํ•ญ๋ชฉ์˜ lookahead๋ฅผ ํ•ฉํ•œ ๊ฒƒ์ด๋‹ค.

93

Page 94: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์˜ˆ์ œ 6-36] CLR ํŒŒ์‹ฑํ‘œ๋กœ ๋ถ€ํ„ฐ LALR ํŒŒ์‹ฑํ‘œ ๊ตฌํ•˜๊ธฐ

[์˜ˆ์ œ 6-32]์˜ ๋ฌธ๋ฒ•๊ณผ [์˜ˆ์ œ 6-33]์˜ CLR ํŒŒ์‹ฑํ‘œ๋ฅผ ๊ฐ€์ง€๊ณ  LALR ํŒŒ์‹ฑํ‘œ๋ฅผ ๊ตฌํ•ด๋ณด์ž.

[ํ’€์ด] [์˜ˆ์ œ 6-32]์˜ [๊ทธ๋ฆผ 6-7]์—์„œ LR(1) ํ•ญ๋ชฉ์˜ ์ •๊ทœ ํ•ญ๋ชฉ ์ง‘ํ•ฉ์„ ๊ตฌํ–ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ฝ”์–ด๊ฐ€ ๊ฐ™์€ ์ƒํƒœ๋ฅผ ์ฐพ์•„๋ณด์ž. ์šฐ์„  ์ƒํƒœ I3๊ณผ I6์ด ๊ฐ™์€ ์ฝ”์–ด๋ฅผ ๊ฐ€์ง€๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

I3 โˆช I6 โ‡’ I36 = {[C โ†’ cโ€ขC, c/d/$], [C โ†’โ€ขcC, c/d/$], [C โ†’โ€ขd, c/d/$]}

๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋œ๋‹ค.

I4 โˆช I7 โ‡’ I47 = [[C โ†’ dโ€ข, c/d/$]}

I8 โˆช I9 โ‡’ I89 = {[C โ†’ cCโ€ข, c/d/$]}

๋”ฐ๋ผ์„œ LALR ํŒŒ์‹ฑํ‘œ๋Š” [ํ‘œ 6-8]๊ณผ ๊ฐ™๋‹ค.

94

Page 95: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

95

Page 96: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

LALR parsing table ์ž‘์„ฑ ๋ฐฉ๋ฒ•

โ€ข LR(1) ํ•ญ๋ชฉ์˜ ์ง‘ํ•ฉ์œผ๋กœ ๋ถ€ํ„ฐ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•

โ€“ ์ด๋ก ์ ์œผ๋กœ ์‰ฝ๊ฒŒ ์„ค๋ช…

โ€“ C1 ์˜ ํฌ๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ์ปค์ ธ์„œ ์‹ค์งˆ์ ์ธ ๋ฐฉ๋ฒ•์ด ๋˜์ง€ ๋ชปํ•จ

ยป Lookahead์— ๋”ฐ๋ผ ์ƒํƒœ์ˆ˜๊ฐ€ ๋งค์šฐ ์ปค์ง€๊ณ  ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ

โ€ข LR(0) ํ•ญ๋ชฉ์˜ ์ง‘ํ•ฉ์œผ๋กœ ๋ถ€ํ„ฐ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•

โ€“ ์ด๋ก ์ ์œผ๋กœ ๋ณต์žกํ•˜๊ณ  ์–ด๋ ค์›€

โ€“ ์‹œ๊ฐ„๊ณผ ๊ธฐ์–ต ๊ณต๊ฐ„์ด ์ž‘์•„์ง€๋Š” ์‹ค์งˆ ์ ์ธ ๋ฐฉ๋ฒ•

96

Page 97: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[์ •์˜ 6-19] lookahead์˜ ์ •์˜

์ƒํƒœ p์—์„œ LR(0) ํ•ญ๋ชฉ [Aโ†’.] ์˜ lookahead๋Š” LA(p, [Aโ†’.])๋กœ ํ‘œ๊ธฐํ•˜๋ฉฐ p ์ƒํƒœ์—์„œ A ๋‹ค์Œ์— ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ์˜ ์ง‘ํ•ฉ์ด๋‹ค.

LA(p, [Aโ†’.]) = {a | a โˆˆ FIRST(), S' โ‡’ A โ‡’ , accesses p}.

๊ฐ€ ์ƒํƒœ p๋ฅผ accessํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์‹œ์ž‘ ์ƒํƒœ๋กœ๋ถ€ํ„ฐ ๋งŒํผ ๋ณด๊ณ  ์ƒํƒœ p๋กœ ์ด๋™

์„ ํ•˜์˜€๋‹ค๋Š” ์˜๋ฏธ

[์˜ˆ์ œ 6-38] LALR ํŒŒ์‹ฑํ‘œ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ธฐ

[์˜ˆ์ œ 6-30]๊ณผ [์˜ˆ์ œ 6-34]์—์„œ ๊ฐ™์€ ๋ฌธ๋ฒ•์„ ๊ฐ€์ง€๊ณ  SLR ํŒŒ์‹ฑํ‘œ์™€ CLR ํŒŒ์‹ฑํ‘œ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” LALR ํŒŒ์‹ฑํ‘œ๋ฅผ ๋งŒ๋“ค๊ณ  ๋ฌธ์žฅ * id = id์˜ ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ•ด๋ณด์ž.

97

*

Page 98: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

98

Page 99: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

99

Page 100: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

100

Page 101: Chapter 06

6.3 ์ƒํ–ฅ์‹ ๊ตฌ๋ฌธ ๋ถ„์„

[ํ‘œ 6-9]์˜ ํŒŒ์‹ฑํ‘œ์— 2๊ฐœ ์ด์ƒ์˜ ํ–‰๋™์ด ํ•จ๊ป˜ ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ ์ฃผ

์–ด์ง„ ๋ฌธ๋ฒ•์€ LALR ๋ฌธ๋ฒ•์ด๋‹ค. [์˜ˆ์ œ 6-30], [์˜ˆ์ œ 6-34], [์˜ˆ์ œ 6-38]์—์„œ

ํ•œ ๊ฐ€์ง€ ๋ฌธ๋ฒ•์„ ๊ฐ€์ง€๊ณ  SLR, CLR, LALR ํŒŒ์‹ฑํ‘œ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์•˜๋‹ค. ํŒŒ์‹ฑํ‘œ

์— ์ถฉ๋Œ์ด ์žˆ๋Š”์ง€ ์—†๋Š”์ง€์— ๋”ฐ๋ผ ๋ฌธ๋ฒ•์„ ๋งํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด ๋ฌธ๋ฒ•์€ CLR,

LALR ๋ฌธ๋ฒ•์ด์ง€๋งŒ SLR ๋ฌธ๋ฒ•์€ ์•„๋‹ˆ๋‹ค. CLR, LALR ๋ฌธ๋ฒ•์— ๋งž์œผ๋ฏ€๋กœ ํŒŒ์‹ฑ

ํ‘œ์˜ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, LALR ํŒŒ์‹ฑํ‘œ๊ฐ€ CLR ํŒŒ์‹ฑํ‘œ๋ณด๋‹ค ๋งค์šฐ ์ž‘

๋‹ค.

101

Page 102: Chapter 06

6.4 ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์˜ ์‚ฌ์šฉ๊ณผ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด

๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์˜ ์‚ฌ์šฉ๊ณผ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด

๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์€ ์–ธ์–ด์˜ ๋ช…์„ธ์—์„œ ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค. ํ‘œํ˜„์‹๊ณผ ๊ฐ™์€ ์–ธ์–ด ๊ตฌ์กฐ์— ๋Œ€ํ•ด ๋ชจํ˜ธํ•œ๋ฌธ๋ฒ•์€ ๋™๋“ฑํ•œ ๋ชจํ˜ธํ•˜์ง€ ์•Š์€ ๋ฌธ๋ฒ•๋ณด๋‹ค ๋” ์งง๊ณ  ๋” ์ž์—ฐ์Šค๋Ÿฌ์šด ๋ช…์„ธ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ฆ‰ ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์€ ๋™๋“ฑํ•œ ๋ชจํ˜ธํ•˜์ง€ ์•Š์€ ๋ฌธ๋ฒ•๋ณด๋‹ค ๋ฌธ๋ฒ•์˜ ํ‘œํ˜„์ด ๊ฐ„๋‹จํ•˜๋ฉฐ, ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•˜๊ธฐ์— ํ›จ์”ฌ ์ž์—ฐ์Šค๋Ÿฌ์šด ๋ฌธ๋ฒ•์ด๋‹ค.

๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์„ ๊ฐ€์ง€๊ณ  ํŒŒ์‹ฑํ‘œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ํ•ญ์ƒ ์ด๋™ -๊ฐ์ถ• ์ถฉ๋Œ์ด๋‚˜ ๊ฐ์ถ• -๊ฐ์ถ• ์ถฉ๋Œ์„์•ผ๊ธฐํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ์ถฉ๋Œ์„ ์—†์• ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ์•ž์—์„œ ๋‹ค๋ฃจ์—ˆ๋˜ ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์„ ๋™๋“ฑํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„ ๋ชจํ˜ธํ•˜์ง€ ์•Š์€ ๋ฌธ๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์„ ๊ฐ€์ง€๊ณ  ํŒŒ์‹ฑํ‘œ๋ฅผ ์ž‘์„ฑํ•œ ๋‹ค์Œ ํŒŒ์‹ฑํ‘œ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ถฉ๋Œ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ.

๋‘ ๊ฐ€์ง€์˜ ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์„ ํ†ตํ•ด ํŒŒ์‹ฑํ‘œ์— ๋‚˜ํƒ€๋‚œ ์ถฉ๋Œ์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋„์ž…. ์ฒซ ๋ฒˆ์งธ๋Š” ์‚ฐ์ˆ ์‹์—์„œ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„์™€ ๊ฒฐํ•ฉ ๋ฒ•์น™์„ ์ด์šฉํ•˜์—ฌ ์ถฉ๋Œ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด๊ณ , ๋‘ ๋ฒˆ์งธ๋Š” ํ˜„์ˆ˜ else๋ผ๊ณ  ํ•˜๋Š” ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์ด๋‹ค.

๋จผ์ € ์‚ฐ์ˆ ์‹์—์„œ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„์™€ ๊ฒฐํ•ฉ ๋ฒ•์น™์„ ์ด์šฉํ•˜์—ฌ ์ถฉ๋Œ์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด์ž. ์ถฉ๋Œ์€ ์ด๋™ -๊ฐ์ถ• ์ถฉ๋Œ๊ณผ ๊ฐ์ถ• -๊ฐ์ถ• ์ถฉ๋Œ์ด ์žˆ๋Š”๋ฐ, ์ด๋™ -๊ฐ์ถ• ์ถฉ๋Œ์˜ ๊ฒฝ์šฐ ๊ฐ์ถ•๋˜๋Š” ์ƒ์„ฑ ๊ทœ์น™๊ณผ ์ž…๋ ฅ ๊ธฐํ˜ธ์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ƒ์„ฑ ๊ทœ์น™์˜ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์œผ๋ฉด๊ฐ์ถ•์„ ์„ ํƒ ํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ด๋™์„ ์„ ํƒํ•œ๋‹ค. ์ƒ์„ฑ ๊ทœ์น™์˜ ์šฐ์„ ์ˆœ์œ„๋Š” ๊ทธ ์ƒ์„ฑ ๊ทœ์น™ ๋‚ด์— ์žˆ๋Š” ํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ๋กœ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ˜๋ฉด์— ๊ฐ์ถ• -๊ฐ์ถ• ์ถฉ๋Œ์€ ๊ฐ์ถ•๋˜๋Š” ์ƒ์„ฑ๊ทœ์น™์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋น„๊ต ํ•˜์—ฌ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ์ชฝ์œผ๋กœ ๊ฐ์ถ•ํ•˜๋ฉด ๋œ๋‹ค

102

Page 103: Chapter 06

6.4 ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์˜ ์‚ฌ์šฉ๊ณผ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด

์ถฉ๋Œ์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•

์ด๋™-๊ฐ์ถ• ์ถฉ๋Œ์ธ ๊ฒฝ์šฐ ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•

โ€ข ๊ฐ์ถ•๋˜๋Š” ์ƒ์„ฑ๊ทœ์น™๊ณผ ์ž…๋ ฅ ๊ธฐํ˜ธ์˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋น„๊ตํ•˜์—ฌ ๊ฒฐ์ •

โ€“ ์ƒ์„ฑ๊ทœ์น™์˜ ์ˆœ์œ„๊ฐ€ ๋†’์œผ๋ฉด ๊ฐ์ถ•์„ ์„ ํƒ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ด๋™์„ ์„ ํƒ

โ€ข ๊ฐ™์€ ์ˆœ์„œ์ธ ๊ฒฝ์šฐ์—๋Š” ๊ฒฐํ•ฉ ๋ฒ•์น™์„ ์ด์šฉ

โ€“ ์ขŒ์ธก ๊ฒฐํ•ฉ์„ ๋งŒ์กฑํ•˜๋ฉด ๊ฐ์ถ•, ์šฐ์ธก ๊ฒฐํ•ฉ์„ ๋งŒ์กฑํ•˜๋ฉด ์ด๋™์„ ์„ ํƒ

๊ฐ์ถ•-๊ฐ์ถ• ์ถฉ๋Œ์ธ ๊ฒฝ์šฐ ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•

โ€ข ๊ฐ์ถ•๋˜๋Š” ์ƒ์„ฑ๊ทœ์น™๋“ค์˜ ์ˆœ์œ„๋ฅผ ๋น„๊ตํ•˜์—ฌ ์–ด๋Š ์ƒ์„ฑ๊ทœ์น™์œผ๋กœ ๊ฐ์ถ•ํ•  ๊ฒƒ์ธ๊ฐ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š”๋ฐ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋†’์€ ๊ฒƒ์„ ์„ ํƒ

โ€“ ์ƒ์„ฑ๊ทœ์น™์˜ ์ˆœ์œ„๋Š” ๊ทธ ์ƒ์„ฑ๊ทœ์น™ ๋‚ด์— ์žˆ๋Š” ํ„ฐ๋ฏธ๋„ ๊ธฐํ˜ธ๋กœ ๊ฒฐ์ • ๊ฐ€๋Šฅ

103

Page 104: Chapter 06

6.4 ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์˜ ์‚ฌ์šฉ๊ณผ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด

[์˜ˆ์ œ 6-40] ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ SLR ํŒŒ์‹ฑํ‘œ๋ฅผ ๋งŒ๋“ค๊ณ  ์ถฉ๋Œ ์ œ๊ฑฐํ•˜๊ธฐ

[์˜ˆ์ œ 6-39]์— ์ฃผ์–ด์ง„ ๋ชจํ˜ธํ•˜์ง€ ์•Š์€ ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ SLR ํŒŒ์‹ฑํ‘œ๋ฅผ ๋งŒ๋“ค๊ณ , ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด์„œ๋„ SLR ํŒŒ์‹ฑํ‘œ๋ฅผ ๋งŒ๋“ค์–ด ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ์ถฉ๋Œ์ด๋ฐœ์ƒํ•˜๋ฉด ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„์™€ ๊ฒฐํ•ฉ ๋ฒ•์น™์„ ์ ์šฉํ•˜์—ฌ ์ถฉ๋Œ์„ ์ œ๊ฑฐํ•˜๊ณ , ์ถฉ๋Œ์„์ œ๊ฑฐํ•œ ํ›„ ๋ชจํ˜ธํ•˜์ง€ ์•Š์€ ๋ฌธ๋ฒ•์˜ ํŒŒ์‹ฑํ‘œ์™€ ๋น„๊ตํ•ด๋ณด์ž.

[ํ’€์ด]

โ€ข [์˜ˆ์ œ 6-27]๊ณผ [์˜ˆ์ œ 6-28]์—์„œ ๋ชจํ˜ธํ•˜์ง€ ์•Š์€ ๋ฌธ๋ฒ•์œผ๋กœ ๋ณ€ํ™˜๋œ ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด [ํ‘œ 6-3]๊ณผ๊ฐ™์€ ํŒŒ์‹ฑํ‘œ๋ฅผ ๋งŒ๋“ค์—ˆ์œผ๋ฉฐ, [ํ‘œ 6-3]์—์„œ๋Š” ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ๋ชจํ˜ธํ•œ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด SLR ํŒŒ์‹ฑํ‘œ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž.

โ€ข 1. ์ฆ๊ฐ€ ๋ฌธ๋ฒ•์„ ๋งŒ๋“ ๋‹ค.

โ€ข 2. FOLLOW๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

โ€“ FOLLOW(E) = {+, *, ), $}

104

Page 105: Chapter 06

6.4 ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์˜ ์‚ฌ์šฉ๊ณผ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด

3. SLR ํŒŒ์‹ฑํ‘œ

105

Page 106: Chapter 06

6.4 ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์˜ ์‚ฌ์šฉ๊ณผ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด

์ด ๋ฌธ๋ฒ•์—์„œ๋Š” ์ƒํƒœ I7, I8์—์„œ ์ด๋™ -๊ฐ์ถ• ์ถฉ๋Œ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. ํŒŒ์‹ฑํ‘œ์˜ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•ด๋ณด๋ฉด๋ชจํ˜ธํ•˜์ง€ ์•Š์€ ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ ํŒŒ์‹ฑํ‘œ๋Š” 12ร—9 ํ–‰๋ ฌ์ธ ๋ฐ ๋น„ํ•ด ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ ํŒŒ์‹ฑํ‘œ๋Š” 10ร—9 ํ–‰๋ ฌ์ด๋‹ค. ์ฆ‰ ์ถฉ๋Œ๋งŒ ํ•ด๊ฒฐํ•œ๋‹ค๋ฉด ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ ํŒŒ์‹ฑํ‘œ๋ฅผ ๋ชจํ˜ธํ•˜์ง€ ์•Š์€๋ฌธ๋ฒ•์— ๋Œ€ํ•œ ํŒŒ์‹ฑํ‘œ๋ณด๋‹ค ์ž‘๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ  ๊ตฌ๋ฌธ ๋ถ„์„ ์‹œ๊ฐ„๋„ ๋น ๋ฅด๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ƒํƒœ I7๊ณผ I8์— ๋Œ€ํ•œ ํŒŒ์‹ฑํ‘œ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

LA(I7, [E โ†’ E + E.]) = {+, *, ), $}

LA(I8, [E โ†’ E * E.]) = {+, *, ), $}

์ถฉ๋Œ์˜ ํ•ด๊ฒฐ

โ€ข ์ƒ์„ฑ ๊ทœ์น™์— ์žˆ๋Š” ๊ธฐํ˜ธ์™€ ์ด๋™ ๊ธฐํ˜ธ์˜ ์ˆœ์œ„๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ƒ์„ฑ๊ทœ์น™์— ์žˆ๋Š” ๊ธฐํ˜ธ์˜ ์ˆœ์œ„๊ฐ€ ๋†’์œผ๋ฉด ๊ฐ์ถ•ํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ด๋™ํ•œ๋‹ค.

โ€ข ๊ฐ™์€ ์ˆœ์œ„์ผ ๊ฒฝ์šฐ, ์ขŒ์ธก ๊ฒฐํ•ฉ์„ ๋งŒ์กฑํ•˜๋ฉด ๊ฐ์ถ•ํ•˜๊ณ  ์šฐ์ธก ๊ฒฐํ•ฉ์„ ๋งŒ์กฑํ•˜๋ฉด ์ด๋™ํ•œ๋‹ค.

106

์ƒํƒœ id + * ( ) $ E

I7 r1,s4 r1,s5 r1 r1

I8 r2,s4 r2,s5 r2 r2

Page 107: Chapter 06

6.4 ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์˜ ์‚ฌ์šฉ๊ณผ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด

107

Page 108: Chapter 06

6.4 ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์˜ ์‚ฌ์šฉ๊ณผ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด

์ž…๋ ฅ ๋ฌธ์žฅ id + id * id์— ๋Œ€ํ•ด ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์˜ ํŒŒ์‹ฑํ‘œ๋ฅผ ๊ฐ€์ง€๊ณ  ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ•ด๋ณด์ž.

๋” ์ด์ƒ ์ง„ํ–‰ํ•˜์ง€ ๋ชปํ•œ๋‹ค.

108

Page 109: Chapter 06

6.4 ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์˜ ์‚ฌ์šฉ๊ณผ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด

๋งˆ์ง€๋ง‰์œผ๋กœ ์ž…๋ ฅ ๋ฌธ์žฅ id + id * id์— ๋Œ€ํ•ด ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•œ ํŒŒ์‹ฑํ‘œ๋ฅผ ๊ฐ€์ง€๊ณ  ๊ตฌ๋ฌธ ๋ถ„์„์„ํ•ด๋ณด์ž.

109

Page 110: Chapter 06

6.4 ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์˜ ์‚ฌ์šฉ๊ณผ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด

๊ตฌ๋ฌธ ๋ถ„์„์„ ํ•ด๋ณด๋‹ˆ ๋ชจํ˜ธํ•˜์ง€ ์•Š์€ ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด์„œ๋Š” 22๋‹จ๊ณ„์˜ ๊ณผ์ •์„ ๊ฑฐ์น˜์ง€๋งŒ, ๋ชจํ˜ธํ•œ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด ํŒŒ์‹ฑํ‘œ๋ฅผ ๋งŒ๋“  ํ›„ ์ถฉ๋Œ์„ ์ œ๊ฑฐํ•œ ํŒŒ์‹ฑํ‘œ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ•˜๋ฉด 16๋‹จ๊ณ„ ๋งŒ์— ๋˜‘๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจํ˜ธํ•˜์ง€ ์•Š์€ ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ ํŒŒ์‹ฑํ‘œ๋ณด๋‹ค ๋ชจํ˜ธํ•œ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ ํŒŒ์‹ฑํ‘œ๊ฐ€ ํฌ๊ธฐ๋„ ์ž‘๊ณ  ๊ตฌ๋ฌธ ๋ถ„์„ ์‹œ๊ฐ„๋„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.

110

Page 111: Chapter 06

6.4 ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์˜ ์‚ฌ์šฉ๊ณผ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด

[์˜ˆ์ œ 6-42] ์—๋Ÿฌ ๊ฒ€์ถœ๊ณผ ์—๋Ÿฌ ์ฒ˜๋ฆฌ

๋‹ค์Œ์˜ ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ LR ํŒŒ์‹ฑํ‘œ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์—๋Ÿฌ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด๋ณด์ž.

E โ†’ E + E | E * E | (E) | id

[ํ’€์ด]

โ€ข ์—๋Ÿฌ ๊ฒ€์ถœ๊ณผ ์—๋Ÿฌ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์ˆ˜์ •๋œ LR ํŒŒ์‹ฑํ‘œ๋Š” [ํ‘œ 6-12]์™€ ๊ฐ™๋‹ค.

111

Page 112: Chapter 06

6.4 ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์˜ ์‚ฌ์šฉ๊ณผ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด

112

Page 113: Chapter 06

6.4 ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์˜ ์‚ฌ์šฉ๊ณผ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด

์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

e1 : ์ด ๋ฃจํ‹ด์€ ์ƒํƒœ 0, 2, 4, 5๋กœ๋ถ€ํ„ฐ ํ˜ธ์ถœ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํƒœ๋Š” ๋ชจ๋‘ id๋ฅผ ๊ธฐ๋Œ€ํ•˜๋Š”๋ฐ +, *, $๊ฐ€ ๋ฐœ๊ฒฌ๋˜์—ˆ

๋‹ค.

โ€˜missing operandโ€™๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

๊ณ„์† ์ฒ˜๋ฆฌํ•œ๋‹ค๋ฉด ์ƒํƒœ 0, 2, 4, 5์—์„œ id๋ฅผ ์ฝ์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ 3์ด๋ฏ€๋กœ id๋ฅผ push ํ•˜๊ณ  ์ƒํƒœ 3์„ push

ํ•œ๋‹ค.

e2 : ์˜ค๋ฅธ์ชฝ ๊ด„ํ˜ธ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์„ ๋•Œ ์ƒํƒœ 0, 1, 2, 4, 5๋กœ๋ถ€ํ„ฐ ํ˜ธ์ถœ๋œ๋‹ค. ์™ผ์ชฝ ๊ด„ํ˜ธ ์—†์ด ์˜ค๋ฅธ์ชฝ ๊ด„ํ˜ธ๋ฅผ ๋ฐœ๊ฒฌ

ํ•œ ๊ฒฝ์šฐ์ด๋ฏ€๋กœ ์ž…๋ ฅ์—์„œ ์˜ค๋ฅธ์ชฝ ๊ด„ํ˜ธ๋ฅผ ์ œ๊ฑฐํ•˜๋ผ๊ณ  ํ•˜๊ฑฐ๋‚˜ ์™ผ์ชฝ ๊ด„ํ˜ธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ผ๊ณ  ํ•œ๋‹ค.

โ€˜unbalanced right parenthesisโ€™๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

๊ณ„์† ์ฒ˜๋ฆฌํ•œ๋‹ค๋ฉด ์ž…๋ ฅ์—์„œ ์˜ค๋ฅธ์ชฝ ๊ด„ํ˜ธ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.

e3 : ์ด ๋ฃจํ‹ด์€ ์ƒํƒœ 1, 6์œผ๋กœ๋ถ€ํ„ฐ ํ˜ธ์ถœ๋œ๋‹ค. ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์ฝ๊ณ  ์—ฐ์‚ฐ์ž๋ฅผ ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ๋Š”๋ฐ id๋‚˜ ์˜ค๋ฅธ์ชฝ ๊ด„

ํ˜ธ๊ฐ€ ๋ฐœ๊ฒฌ๋œ ๊ฒฝ์šฐ์ด๋‹ค.

โ€˜missing operatorโ€™๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

๊ณ„์†ํ•œ๋‹ค๋ฉด +์— ์ƒ์‘ํ•˜๋Š” ์ƒํƒœ 4๋ฅผ ์Šคํƒ์— ์ €์žฅํ•œ๋‹ค.

e4 : ์ด ๋ฃจํ‹ด์€ ์ƒํƒœ 6์œผ๋กœ๋ถ€ํ„ฐ ํ˜ธ์ถœ๋˜๊ณ  ์ž…๋ ฅ์˜ ๋์ธ $๊ฐ€ ๋ฐœ๊ฒฌ๋˜์—ˆ๋‹ค. ์™ผ์ชฝ ๊ด„ํ˜ธ๋Š” ๋‚˜์™”๋Š”๋ฐ ์˜ค๋ฅธ์ชฝ ๊ด„

ํ˜ธ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์ด๋‹ค.

โ€˜missing right parenthesesโ€™๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

๊ณ„์†ํ•œ๋‹ค๋ฉด ์˜ค๋ฅธ์ชฝ ๊ด„ํ˜ธ์— ์ƒ์‘ํ•˜๋Š” ์ƒํƒœ 9๋ฅผ ์Šคํƒ์— ์ €์žฅํ•œ๋‹ค 113

Page 114: Chapter 06

6.4 ๋ชจํ˜ธํ•œ ๋ฌธ๋ฒ•์˜ ์‚ฌ์šฉ๊ณผ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด

[์˜ˆ์ œ 6-43] ์—๋Ÿฌ ๋ณต๊ตฌ๋ฅผ ์œ„ํ•œ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ธฐ

[์˜ˆ์ œ 6-42]์˜ ํŒŒ์‹ฑํ‘œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ž…๋ ฅ ๋ฌธ์žฅ id+)$์˜ ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ•ด๋ณด์ž.

[ํ’€์ด]

114