๋‚˜๋Š”ย ์ „๊ณต์„œ์ ์„ ์ฝ์„๋•Œ ๊ฒฐ๊ตญ ์ด ์ฑ…์ด ๋งํ•˜๊ณ ์ž ํ•˜๋Š”๊ฒƒ์ด ๋ฌด์—‡์ธ๊ฐ€? ๋ฅผ ํŒŒ์•…ํ•˜๋Š”๊ฒƒ์„ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•œ๋‹ค.ย 

๊ทธ๋ž˜์„œ SICP์˜ ์ „์ฒด ํ๋ฆ„์„ ๋‹ค์‹œํ•œ๋ฒˆ ๋˜์งš์–ด ๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.ย 


SICP๋Š” 5๊ฐœ์˜ ์ฑ•ํ„ฐ๋กœ ๋˜์–ด์žˆ๊ณ  ๊ฐ๊ฐ์˜ ์ฑ•ํ„ฐ์˜ ์ฃผ์ œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.ย 


์ฑ•ํ„ฐ1. Building Abstractions with Procedures (ํ”„๋กœ์‹œ์ €๋กœ ์ถ”์ƒํ™”๋ฅผ ๋นŒ๋”ฉํ•˜๋Š” ๋ฐฉ๋ฒ•)

-> ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ ๋ฐ์ดํ„ฐ์™€ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ ํ”„๋กœ์‹œ์ €๋ฅผ ์–ด๋–ป๊ฒŒ ์กฐํ•ฉํ•˜๊ณ  ์ถ”์ƒํ™”ํ•ด์„œ, ๋”์šฑ ๋ณต์žกํ•œ ํ”„๋กœ์‹œ์ €๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚ด๋Š”๊ฐ€๋ฅผ ์„ค๋ช…ํ•จ.ย 

-> ํ”„๋กœ์‹œ์ €์˜ ์ถ”์ƒํ™”, ์—ฌ๋Ÿฌ ํ”„๋กœ์‹œ์ €์˜ ๊ฐœ๋…๋“ฑ์„ ์„ค๋ช…ํ•˜๊ณ  ์žˆ์Œ.ย 

์ฑ•ํ„ฐ2. Building Abstractions with Data (๋ฐ์ดํ„ฐ๋กœ ์ถ”์ƒํ™”๋ฅผ ๋นŒ๋”ฉ ํ•˜๋Š” ๋ฒ•)

-> ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ถ”์ƒํ™”ํ•ด์„œ ๊ฐ„๋‹จํ™” ํ•˜๋Š”๊ฐ€, ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€.๋“ฑ์„ ์„ค๋ช…

์ฑ•ํ„ฐ3. Modularity, Objects, and State (๋ชจ๋“ˆํ™”, ์˜ค๋ธŒ์ ํŠธ, ์Šคํ…Œ์ดํŠธ)

->ย ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ์น˜๊ฐ€ ์ปค์งˆ์ˆ˜๋ก organizational principle (์กฐ์ง ์›์น™?)์ด ๋งค์šฐ ์ค‘์š”ํ•ด์ง„๋‹ค.ย ย 

-> ์ฑ•ํ„ฐ 1, 2์—์„œ ๋ฐฐ์šด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌ์กฐ๋ฅผ ์งœ๊ณ  ์กฐ์งํ• ๊ฒƒ์ธ๊ฐ€ (organize). ์–ด๋–ป๊ฒŒ ํ”„๋กœ๊ทธ๋žจ์„ ๋””์ž์ธํ•  ๊ฒƒ์ธ๊ฐ€.ย 

-> ํ”„๋กœ๊ทธ๋žจ์˜ ๋””์ž์ธ ์›์น™์— ๋Œ€ํ•ด ๋ฐฐ์›€.ย 

์ฑ•ํ„ฐ4. Metalinguistic Abstraction (??? ๋ฉ”ํƒˆ๋ง๊ท€...๋ญ์‹œ๊ธฐ)

-> ์ฑ•ํ„ฐ 1,2,3์—์„œ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์–ด๋–ป๊ฒŒ ์กฐ์งํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์งœ๋Š”์ง€ ๊ณต๋ถ€ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ Lisp์€ ์‹ค์ œ๋กœ ์จ๋จน๊ธฐ์—๋Š” ์–ธ์–ด์ ์œผ๋กœ ์ข€ ๊ทธ๋ž˜.ย 

-> ๊ทธ๋ž˜์„œ ์ง์ ‘ ์–ธ์–ด๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ธฐ๋กœ ํ•œ๋‹ค (???) ๊ฒฐ๊ตญ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ผ๋Š”๊ฑด ๋˜๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ผ ๋ฟ์ด๋‹ˆ๊นŒ

์ฑ•ํ„ฐ5. Computing with ๋ ˆ์ง€์Šคํ„ฐ Machines (๋ ˆ์ง€์Šคํ„ฐ ๋จธ์‹ ์œผ๋กœ ๊ณ„์‚ฐํ•˜๊ธฐ)

-> ์—ฌํƒœ๊นŒ์ง€๋Š” Lisp์–ธ์–ด๋ฅผ ํ†ตํ•ด์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ํ†ตํ•ด ๊ณต๋ถ€ํ–ˆ๋‹ค. ๊ทผ๋ฐ Lisp ๊ทธ ์ž์ฒด๊ฐ€ ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š”์ง€๋Š” ์•„์ง ๋ชจ๋ฅด์ง€?ย 

-> ๋” ๋กœ์šฐ๋ ˆ๋ฒจ๋กœ ๋“ค์–ด๊ฐ€์„œ ๋ ˆ์ง€์Šคํ„ฐ๋จธ์‹ ย ๋ณด๋ฉด ์ดํ•ด๊ฐ€ ๊ฐˆ๊ฑฐ์•ผ.ย ์ผ๋‹จ ๋ ˆ์ง€์Šคํ„ฐ ๋จธ์‹  ์ง์ ‘ ๋งŒ๋“ค์–ด๋ณด์ž ใ…Žใ…Žย 



์Œ... ๋Œ€์ถฉ ์ด๋Ÿฐ๋‚ด์šฉ์ธ๊ฑฐ ๊ฐ™๋‹ค.ย 

๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ์ฒ˜์Œ์—๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ํŒŒ์•…ํ•˜๊ณ ,ย 

๋‹ค์Œ์€ ๊ทธ๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ์กฐ์งํ• ๊ฒƒ์ธ๊ฐ€ ์–ด๋–ป๊ฒŒ ํ”„๋กœ๊ทธ๋žจ์„ ๋””์ž์ธํ•  ๊ฒƒ์ธ๊ฐ€๋ฅผ ๋ฐฐ์›€.ย 

๊ทธ ๋‹ค์Œ์—๋Š” ์ƒˆ๋กœ์šด ์–ธ์–ด๋ฅผ ํ•œ๋ฒˆ ๋งŒ๋“ค์–ด๋ณด๊ณ ,ย 

๋‹ค์Œ์€ ๊ทธ๊ฒƒ๋ณด๋‹ค ๋” ๋กœ์šฐ๋ ˆ๋ฒจ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ ์ชฝ์œผ๋กœ ๋‚ด๋ ค๊ฐ€๋Š”๋“ฏ?ย 

๋ชฉ์ฐจ๋ฅผ ์ฝ๋Š”๊ฒƒ ๋งŒ์œผ๋กœ๋„ ๊ฐ€์Šด์ด ์›…์žฅํ•ด์ง€๋„คย 


์—ฌํŠผ SICP์˜ ์ „์ฒด ํ๋ฆ„์„ ์ดํ•ดํ–ˆ์œผ๋‹ˆ, ์—ฌ๊ธฐ๋ถ€ํ„ฐ๋Š” ์˜ค๋Š˜์˜ ๊ณต๋ถ€


----------------------------------------------


์ €๋ฒˆํŽธ์—์„œ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ถ”์ƒํ™” ๊ฐœ๋…์ค‘ ํ•˜๋‚˜์ธ Compound procedure๋ž‘ย 

ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๋Š” procedure definition ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ–ˆ๋‹ค.ย 

์˜ค๋Š˜์€ ๊ทธ ๋ณต์žกํ•œ Compound procedure ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” Substitution model ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•œ๋‹ค.ย 


Substitution model ์ด๋ผ๋Š”๊ฑฐ ๋ณ„๊ฑฐ ์—†์Œ.ย 

๋ช‡๋ฒˆ์ด๊ณ  ์ถ”์ƒํ™” ๋œ ๋ณต์žกํ•œ ๊ฐœ๋…์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ, ์žฌ๊ท€์ ์œผ๋กœ ๊ทธ ์ถ”์ƒํ™”๋ฅผ ์—ญ์œผ๋กœ ์˜ฌ๋ผ๊ฐ„๋‹ค๋Š”๊ฑฐ.ย 

์‹ค์ œ ์˜ˆ์‹œ๋Š” ๊ท€์ฐฎ์•„์„œ ์ƒ๋žต. SICP 19 ํŽ˜์ด์ง€์— ๋‚˜์˜ด.ย 


๊ทผ๋ฐ ์ด Substitution model์€ ๋‹จ์ˆœํžˆ ํ”„๋กœ์‹œ์ €๊ฐ€ ์–ด๋–ค ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜๋‹จ์ด๋ผ๋Š”๊ฑฐ.ย 

์‹ค์ œ๋กœ๋Š” ์ด๋Ÿฐ์‹์œผ๋กœ interpreter๋Š” ์›€์ง์ด์ง€ ์•Š๋Š”๋‹ค๋Š”๊ฑฐ. ์•ž์œผ๋กœ ์ด ์ฑ…์—์„œ ๋” ๋ณต์žกํ•œ ๋ชจ๋ธ์ด ๋‚˜์˜ฌ๊ฑฐ๋ผ๋Š”๊ฑฐ.ย 



์˜ค๋Š˜์€ ์—ฌ๊ธฐ๊นŒ์ง€ย