@@ -49,15 +49,19 @@ Lean์ ๋ด๋ก์ฌ๋ณผ๋ฆญ AI ๊ฐ๋ฐ์ ํต์ฌ ๋๊ตฌ๋ก๋ ํ์ฉ๋๊ณ ์๋ค.
4949# ์ฐ๋ฆฌ ์ฐ๊ตฌ์ ์ต์ ์ : ์ ์ ๋ถ์(Static Analysis) ๋ถ์ผ ํ๊ตฌ
5050์ ์ ๋ถ์์ ์ด๋ก ๊ณผ ์์ฉ์ ๋๊ฐ๋ค์ด ํ์๋ฆฌ์ ๋ชจ์ธ SOAP (State Of the Art in Program Analysis) ์ํฌ์ต์ ๊ฐ ๊ฑด ํฐ ํ์ด์ด์๋ค. ๊ฐ์ค ์ธ๊ณต์ ๊ฒฝ๋ง์ ์์ ์ฑ์ ๋ฐ์ง๊ธฐ ์ํ ์ ์ ๋ถ์ (?)๊ณผ, ์ค์ฉ์ ์ ์ ๋ถ์์ ์ํ ๊ธฐ์ ๊ฐ๋ฐ์ด ํนํ ์ธ์์ ์ด์๋ค.
5151## Static Analysis from Code Graphs to Neural Networks - Experiences and Opportunities<sup >[ 3] ( #static ) </sup >
52- ์ ๊ฒฝ๋ง์ด ์์ ์
๋ ฅ ๋ณํ (perturbation)์๋ ์๊ธฐ์น ์๊ฒ ๋ฐ์ํ๋ ์ทจ์ฝ์ฑ์ ํด๊ฒฐํ๊ธฐ ์ํ ์ํ์ ๊ฒ์ฆ ๊ธฐ๋ฒ์ ์๊ฐํ๋ค. ํต์ฌ์ ์ฃผ์ด์ง ์
๋ ฅ $$ x $$ ์ ๋ํด, ๊ทธ ๊ทผ๋ฐฉ $$ ||x'-x||\le \epsilon $$ ์ ๋ชจ๋ ์
๋ ฅ $$ x' $$ ์์๋ ์ถ๋ ฅ ๋ ์ด๋ธ์ด ํญ์ ๊ฐ์์ ๋ณด์ฅํ๊ณ ์ ํ๋ ๊ฒ์ด๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, ์ ์ฒด ์
๋ ฅ ๊ณต๊ฐ์ ์๊ฒ ๋๋๋ branch-and-bound ๋ฐฉ์์ด ์ฌ์ฉ๋์๋ค. ์
๋ ฅ ๊ณต๊ฐ์ ๋๋ (branch) ๋ค, ๊ฐ ๋ถ๋ถ๊ณต๊ฐ์ ์ถ๋ ฅ ๋ฒ์๋ฅผ ๊ทผ์ฌ์น๋ก ๊ณ์ฐ (bound)ํด, ์ด ๋ฒ์๊ฐ ๋ชจ๋ ๊ฐ์ ๋ผ๋ฒจ์ ๊ฐ๋ฆฌํค๋ฉด ํด๋น ์์ญ์ ์์ ํ๋ค๊ณ ํ์ ํ๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ฐ๋ก๋ฅผ ์ฐพ๊ฑฐ๋ ๋ ์ธ๋ถํํด ๋ ์ ๋ฐํ ๊ฒ์ฌ๋ฅผ ๋ฐ๋ณตํ๋ค. ์ต๊ทผ ๋ฐํ์์๋ ์ด๋ ๋ฐ๋ก๊ฐ ์กด์ฌํ ๊ฐ๋ฅ์ฑ์ด ๋์ ์์๋๋ก ๊ณต๊ฐ์ ํ์ํด ํจ์จ์ฑ์ ๋์ด๋ ์ ๋ต๋ ์ ์๋์๋ค.
52+ ์ ๊ฒฝ๋ง์ด ์์ ์
๋ ฅ ๋ณํ (perturbation)์๋ ์๊ธฐ์น ์๊ฒ ๋ฐ์ํ๋ ์ทจ์ฝ์ฑ์ ํด๊ฒฐํ๊ธฐ ์ํ ์ํ์ ๊ฒ์ฆ ๊ธฐ๋ฒ์ ์๊ฐํ๋ค. ํต์ฌ์ ์ฃผ์ด์ง ์
๋ ฅ $$ x $$ ์ ๋ํด, ๊ทธ ๊ทผ๋ฐฉ $$ ||x'-x||\le \epsilon $$ ์ ๋ชจ๋ ์
๋ ฅ $$ x' $$ ์์๋ ์ถ๋ ฅ ๋ ์ด๋ธ์ด ํญ์ ๊ฐ์์ ๋ณด์ฅํ๊ณ ์ ํ๋ ๊ฒ์ด๋ค.
53+
54+ ์ฌ๊ธฐ์๋ ์ ์ฒด ์
๋ ฅ ๊ณต๊ฐ์ ์๊ฒ ๋๋๋ branch-and-bound ๋ฐฉ์์ด ์ฌ์ฉ๋์๋ค. ์
๋ ฅ ๊ณต๊ฐ์ ๋๋ (branch) ๋ค, ๊ฐ ๋ถ๋ถ๊ณต๊ฐ์ ์ถ๋ ฅ ๋ฒ์๋ฅผ ๊ทผ์ฌ์น๋ก ๊ณ์ฐ (bound)ํด, ์ด ๋ฒ์๊ฐ ๋ชจ๋ ๊ฐ์ ๋ผ๋ฒจ์ ๊ฐ๋ฆฌํค๋ฉด ํด๋น ์์ญ์ ์์ ํ๋ค๊ณ ํ์ ํ๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ฐ๋ก๋ฅผ ์ฐพ๊ฑฐ๋ ๋ ์ธ๋ถํํด ๋ ์ ๋ฐํ ๊ฒ์ฌ๋ฅผ ๋ฐ๋ณตํ๋ค. ์ต๊ทผ ๋ฐํ์์๋ ์ด๋ ๋ฐ๋ก๊ฐ ์กด์ฌํ ๊ฐ๋ฅ์ฑ์ด ๋์ ์์๋๋ก ๊ณต๊ฐ์ ํ์ํด ํจ์จ์ฑ์ ๋์ด๋ ์ ๋ต๋ ์ ์๋์๋ค.
5355
5456์ด๋ฏธ ์๋ ์ ์ ๋ถ์, ์ฆ ์์ฝ ํด์ (abstract interpretation)์ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ๊ฐ๋ฃจ์ ์ฐ๊ฒฐ (Galois connection)์ ์ด๋ก ์ ๋ฐํ์ผ๋ก ๊ฐ์ง๋ ์ ์ ๋ถ์์ด ์๋๋ผ์ ํฅ๋ฏธ๋ฅผ ๋์๋ค. ๋ฐ๋ก์ ์์น๋ฅผ ์ฐพ์๋ด๋ ๊ธฐ์ ์ ์ค์ ์งํฉ ๋ด์์ ์ ๊ณ ์์ด์ ์๋ ดํ๋ ๋ถ๋ถ ์์ด์ ๊ฐ์ง๋ค๋ Bolzano-Weierstrass ์ ๋ฆฌ์ ์ฆ๋ช
๊ณผ์ ๊ณผ ์ ์ฌํ๋ค.
5557## Building X-Ray for enterprise-scale software<sup >[ 4] ( #xray ) </sup >
5658Beacon์ ๊ฐ๋ฐํ ํ์ฝฉ๊ณผ๊ธฐ๋ Charles Zhang ๊ต์๋์ ๋ฐํ๋, ๋๊ท๋ชจ ๊ธฐ์
์ฉ (์ํฐํ๋ผ์ด์ฆ) ์ํํธ์จ์ด์ ์ ์ ๋ถ์์ ์ ์ฉํ๋ ค๋ ๋ค๋
๊ฐ์ ์ฐ๊ตฌ ์ฑ๊ณผ๋ฅผ ์ง์ฝํ ์ธ์
์ด์๋ค. ๊ต์๋์ ์์ ์ฑ (soundness)์ ํ์ค ํ๊ฒฝ์์ ์ง๋์น๊ฒ ๋ณด์์ ์ด๊ณ , ์ ํ๋ (precision)๋ ๋์ด๊ธฐ ์ด๋ ค์ด ์ํฉ์์, ๊ฒฝ๋ํ๋ ๊ฒฝ๋ก ๋ฏผ๊ฐ (path-sensitive) ๋ถ์์ ํจ์จ์ ์ผ๋ก ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ชจ์ํด ์๋ค.
5759
5860ํนํ ์ธ์ ๊น์๋ ๊ฐ๋
์ '๊ฒฝ๊ณ ๋ฌธ์ (boundary problem)'์๋ค. ์ด๋ ์ ์ ๋ถ์์ด๋ ๋ํ ์ธ์ด ๋ชจ๋ธ(LLM) ๋จ๋
์ผ๋ก๋ ๋ค๋ฃจ๊ธฐ ์ด๋ ค์ด, ๋ถ์์ ํ ์ฝ๋, ๊น์ ๋ฐ๋ณต๋ฌธ, ๋ถ๋ช
ํํ API ์ฌ์ฉ ๋ฑ์ ๋งํ๋ค. ๊ต์๋ ์ฐ๊ตฌํ์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ ์ ๋ถ์๊ณผ LLM์ ์ญํ ๋ถ๋ด์ ํตํด ํด๊ฒฐํ๋ ค๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด, ์ ์ด/๋ฐ์ดํฐ ํ๋ฆ ์ถ์ ๊ณผ ๋๋ฌ์ฑ ๋ถ์์ ์ ์ ๋ถ์์ด ๋งก๊ณ , API ๋ณ๋ช
(alias) ๊ด๊ณ ์ถ๋ก ์ด๋ ์๋ฏธ ๊ธฐ๋ฐ ํจ์ ํด์์ LLM์ด ๋ด๋นํ๋ ์์ด๋ค.
5961
60- ์ฌ๋ก๋ก๋, ๊ณต์ ๋ฌธ์๋ฅผ ๋ฐํ์ผ๋ก ํด๋์ค ๊ณ์ธต, ๋ชจ๋ํ์
(signature), ์ค๋ช
, ๊ฐ ์ด๋ฆ ๋ฑ์ ๋น๊ตํด API ๊ฐ์ ๋ณ๋ช
๊ด๊ณ๋ฅผ ์ถ๋ก ํ๋ ์ฐ๊ตฌ, ์ ์ ๋ถ์์ผ๋ก ์ธํฐ๋ฝํธ ํธ๋ค๋ฌ (ISR) ํจ์๋ฅผ ์๋ณํ ๋ค LLM์ด ๋ฐ๋๋ฝ ๊ฐ๋ฅ์ฑ์ ๊ฒํ ํ๋ ์ฐ๊ตฌ, ๊ทธ๋ฆฌ๊ณ ๋ฉ๋ชจ๋ฆฌ ํ ๋น/ํด์ ํจ์๋ฅผ ๊ฐ์ธ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ (wrapper) ํจ์๋ฅผ ์ฐพ๋ ๊ตฌ์กฐ๊ฐ ์๊ฐ๋์๋ค. ์ด ์ค ๋ง์ง๋ง์ ํจ์ ์ด๋ฆ์ ํตํ ์ถ๋ก ์ LLM์ด, ๋๋ฌ์ฑ ๋ถ์ ๋ฑ์ ์ ์ ๋ถ์์ด ๋งก๋ ๋ฐฉ์์ด๋ค. ์ฐ๋ฆฌ ์ฐ๊ตฌ์ค์์๋ ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ ํจ์๋ฅผ ์ฐพ๊ฑฐ๋, ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ๋ ์ ์ฌํ ์ฃผ์ ๋ฅผ ์๊ฐํ๊ณ ์์๊ธฐ์,
62+ ์ฌ๋ก๋ก๋, ๊ณต์ ๋ฌธ์๋ฅผ ๋ฐํ์ผ๋ก ํด๋์ค ๊ณ์ธต, ๋ชจ๋ํ์
(signature), ์ค๋ช
, ๊ฐ ์ด๋ฆ ๋ฑ์ ๋น๊ตํด API ๊ฐ์ ๋ณ๋ช
๊ด๊ณ๋ฅผ ์ถ๋ก ํ๋ ์ฐ๊ตฌ, ์ ์ ๋ถ์์ผ๋ก ์ธํฐ๋ฝํธ ํธ๋ค๋ฌ (ISR) ํจ์๋ฅผ ์๋ณํ ๋ค LLM์ด ๋ฐ๋๋ฝ ๊ฐ๋ฅ์ฑ์ ๊ฒํ ํ๋ ์ฐ๊ตฌ, ๊ทธ๋ฆฌ๊ณ ๋ฉ๋ชจ๋ฆฌ ํ ๋น/ํด์ ํจ์๋ฅผ ๊ฐ์ธ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ (wrapper) ํจ์๋ฅผ ์ฐพ๋ ๊ตฌ์กฐ๊ฐ ์๊ฐ๋์๋ค. ์ด ์ค ๋ง์ง๋ง์ ํจ์ ์ด๋ฆ์ ํตํ ์ถ๋ก ์ LLM์ด, ๋๋ฌ์ฑ ๋ถ์ ๋ฑ์ ์ ์ ๋ถ์์ด ๋งก๋ ๋ฐฉ์์ด๋ค.
63+
64+ ์ฐ๋ฆฌ ์ฐ๊ตฌ์ค์์๋ ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ ํจ์๋ฅผ ์ฐพ๊ฑฐ๋, ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ๋ ์ ์ฌํ ์ฃผ์ ๋ฅผ ์๊ฐํ๊ณ ์์๊ธฐ์,
6165์ฐ์ฌ๋๊ป ํด๋น ์ฐ๊ตฌ์ ์ฐ๊ตฌ ๋ชฉ์ ์ ์ฌ์ญค๋ณด์๋ค. ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ ํจ์๋ฅผ ์ฐพ๋ ์ด์ ๋, sanitizing ๊ณผ์ ์์ ์ผ์ด๋๋ ์ค์๋ double free ๊ฐ์ ๊ฒฐํจ์ด ์์ฃผ ๋ฐ์ํ๋ ์ง์ ์ด๊ธฐ ๋๋ฌธ์ ๋ถ์ ์ฐ์ ์์๋ฅผ ๋์ด๊ธฐ ์ํจ์ด๋ผ๊ณ ํ๋ค.
6266์ฐ๋ฆฌ ์ฐ๊ตฌ์ค์ ์ ๊ทผ ๋ชฉ์ ๊ณผ๋ ๋ค๋ฅด์ง๋ง, ์ฐ๊ตฌ ์์ฒด๋ ์ ์ฌํ๋ฉฐ, ์ฐ๋ฆฌ๊ฐ ์งํํ๋ ๋
ผ์๊ฐ ์ธ๊ณ์ ์ธ ์์ค๊ณผ ๋ง๋ฟ์ ์๋ค๋ ์ฌ์ค์ ์ค๊ฐํ ์ ์์๋ค.
6367
@@ -72,7 +76,9 @@ KAT ์ธ์
์ด ๋ฐ๋ก ์์ ๋งํผ ์ด๋ฒ PLDI์์ ์ฃผ๋ชฉ๋ฐ์์ง๋ง, ์ธ์
7276
7377์ด ์คํ ๋งํ์ ํต์ฌ์ ์ํ๋ฅผ ๋จ์ํ ์งํฉ์ด ์๋๋ผ ์ค๋ณต์งํฉ์ผ๋ก ํํํ๋ค๋ ์ ์ด๋ค. ์คํ ๋งํ ์๋ฅผ ํํํ๋ ํ์์ (agent)๋ค์ ํ๋ฅ ์ํ์์๋ ๋ฌด์์๋ก ๋ค์ ์ํ๋ฅผ ์ ํํ๊ณ , ๋น๊ฒฐ์ ์ํ์์๋ ์ฌ๋ฌ ํ์์๋ก ๋ถ๊ธฐํด ๊ฐ๊ฐ ๋
๋ฆฝ์ ์ผ๋ก ์คํ๋๋๋ก ํ๋ค. ๋์ผํ ํ๋ฅ ์ํ์ ์๋ก ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ๋๋ฌํ ์ฌ๋ฌ ํ์์๊ฐ ์กด์ฌํ ์ ์๋๋ฐ, ์ด๋ค์ ์งํฉ์ ํ ์์๋ก ํํํ๋ฉด ๊ฐ๊ฐ์ ํ๋ฅ ์ ํ์ด ๋
๋ฆฝ์ ์ด์ง ์๊ฒ ๋์ด ๋ฌธ์ ๊ฐ ๋๋ค. ์ค๋ณต์งํฉ์ ์ฌ์ฉํ๋ฉด ํ์์๋ค์ ๊ตฌ๋ถํ ์ ์์ด, ๊ฐ๊ธฐ ๋ค๋ฅธ ๋์ (random bit)๋ฅผ ๋ถ์ฌํด ํ๋ฅ ์ ํ์ ๋
๋ฆฝ์ฑ์ ๋ณด์ฅํ ์ ์๋ค.
7478
75- ์ด๋ ๊ฒ ๊ฐ๋ฅํ ๋ชจ๋ ์คํ ๊ฒฝ๋ก๋ฅผ ๋ค ๋ฐ์ ธ๋ณผ ์ ์๋ ๋ฐฉ์์ด โ์ฒ์ฌ์ ๋น๊ฒฐ์ ๋ก (angelic nondeterminism)โ์ด๋ค. ๋ชจ๋ ์คํ ๊ฒฝ๋ก๋ฅผ ๋ค ๋ฐ์ ธ๋ณด๊ธฐ ๋๋ฌธ์ ` if ` , ` while ` ๊ฐ์ ์กฐ๊ฑด ๋ถ๊ธฐ๋ฅผ ๋ชจ๋ธ๋งํ๋ ๋ฐ ์ ํฉํ๋ค. ๋ค๋ง ๋ฐํ์์ ์์ฌ์ ๋ ์ ์, ์ฒ์ฌ์ ๋น๊ฒฐ์ ๋ก ์ ์ด์ฉํด KAT์ ์ฃผ์ ํ์ฉ ๋ถ์ผ์ธ ์ต์ ํ ๊ฒ์ฆ์ด๋ ํ๋ก๊ทธ๋จ ๋ถ์์ด ์ด๋ป๊ฒ ๊ฐ๋ฅํ์ง๋ฅผ ์ ์์ํ๊ธฐ ์ด๋ ค์ ๋ค๋ ๊ฒ์ด๋ค. ๋ํ ์ฒ์ฌ์ ๋น๊ฒฐ์ ๋ก ์ ๊ฒ์ํด ๋ณด๋ฉด, ๋น๊ฒฐ์ ๋ก ์ด ํญ์ ์ํ๋ ๊ฒฐ๊ณผ์ ๋๋ฌํ๋๋ก ๋์น๊ป ์๋ํ๋ ์คํ์ด๋ผ๊ณ ๋์ค๋๋ฐ, ๊ทธ๊ฒ๊ณผ ๋ฐํ์ ์ ์๊ฐ ์ผ์นํ๋์ง๋ ๊ถ๊ธํ๋ค. ๋ฐํ์ฅ์์๋ '์ฒ์ฌ์ ์ ํ'์ด ์ํํ์ง ์์์ง, ์ด๋์ ์ฐ์ผ ์ ์๋์ง ์ง๋ฌธ์ด ๋์์ง๋ง, ์์ง ํ์ฉ ๋ถ์ผ๋ฅผ ๊ฐ์ฒํ์ง ์์๊ณ ์ค์ ํ๋ก๊ทธ๋จ์ ์ ์ฉํ๊ธฐ ์ํด ๊ฐ๋ฐ ์ค์ด๋ผ๋ ๋ต์ด ๋์์๋ค.
79+ ์ด๋ ๊ฒ ๊ฐ๋ฅํ ๋ชจ๋ ์คํ ๊ฒฝ๋ก๋ฅผ ๋ค ๋ฐ์ ธ๋ณผ ์ ์๋ ๋ฐฉ์์ด โ์ฒ์ฌ์ ๋น๊ฒฐ์ ๋ก (angelic nondeterminism)โ์ด๋ค. ๋ชจ๋ ์คํ ๊ฒฝ๋ก๋ฅผ ๋ค ๋ฐ์ ธ๋ณด๊ธฐ ๋๋ฌธ์ ` if ` , ` while ` ๊ฐ์ ์กฐ๊ฑด ๋ถ๊ธฐ๋ฅผ ๋ชจ๋ธ๋งํ๋ ๋ฐ ์ ํฉํ๋ค.
80+
81+ ๋ค๋ง ๋ฐํ์์ ์์ฌ์ ๋ ์ ์, ์ฒ์ฌ์ ๋น๊ฒฐ์ ๋ก ์ ์ด์ฉํด KAT์ ์ฃผ์ ํ์ฉ ๋ถ์ผ์ธ ์ต์ ํ ๊ฒ์ฆ์ด๋ ํ๋ก๊ทธ๋จ ๋ถ์์ด ์ด๋ป๊ฒ ๊ฐ๋ฅํ์ง๋ฅผ ์ ์์ํ๊ธฐ ์ด๋ ค์ ๋ค๋ ๊ฒ์ด๋ค. ๋ํ ์ฒ์ฌ์ ๋น๊ฒฐ์ ๋ก ์ ๊ฒ์ํด ๋ณด๋ฉด, ๋น๊ฒฐ์ ๋ก ์ด ํญ์ ์ํ๋ ๊ฒฐ๊ณผ์ ๋๋ฌํ๋๋ก ๋์น๊ป ์๋ํ๋ ์คํ์ด๋ผ๊ณ ๋์ค๋๋ฐ, ๊ทธ๊ฒ๊ณผ ๋ฐํ์ ์ ์๊ฐ ์ผ์นํ๋์ง๋ ๊ถ๊ธํ๋ค. ๋ฐํ์ฅ์์๋ '์ฒ์ฌ์ ์ ํ'์ด ์ํํ์ง ์์์ง, ์ด๋์ ์ฐ์ผ ์ ์๋์ง ์ง๋ฌธ์ด ๋์์ง๋ง, ์์ง ํ์ฉ ๋ถ์ผ๋ฅผ ๊ฐ์ฒํ์ง ์์๊ณ ์ค์ ํ๋ก๊ทธ๋จ์ ์ ์ฉํ๊ธฐ ์ํด ๊ฐ๋ฐ ์ค์ด๋ผ๋ ๋ต์ด ๋์์๋ค.
7682
7783ํํธ, ์ด ์ธ์
์ ๊ตฌ๋ฌธ ์ค์ฌ ์ฝ๋์ ๋ํด ์ด๋ค ๋์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ์ง๋ฅผ ์ ์ ์๊ฒ ํด์ฃผ์๊ณ , ๊ทธ ๋ฐฐ๊ฒฝ์ ์์๋ณด๋ค ๋์ ์ํ์ ๋๋๊ฐ ์๋ค๋ ์ ์ ์ฒด๊ฐํ ์ข์ ๊ธฐํ์๋ค. KAT๋ ํจ์ ํธ์ถ์ด ์๋ ์ ์ฐจ์ ํ๋ก๊ทธ๋จ์ ์ ํฉํ๋ฏ๋ก ์ผ๋ฐ์ ์ธ ์ธ์ด์๋ ์ ์ฉ์ด ์ด๋ ต์ง๋ง, ์ ์ด ํ๋ฆ์ ๋ค๋ฃจ๋ ์๋ก์ด ๋ฐฉ์์ด ํฅ๋ฏธ๋ก์ ๋ค.
7884## PL + HCI
@@ -105,11 +111,13 @@ KAT ์ธ์
์ด ๋ฐ๋ก ์์ ๋งํผ ์ด๋ฒ PLDI์์ ์ฃผ๋ชฉ๋ฐ์์ง๋ง, ์ธ์
105111### Verifying Lock-Free Traversals in Relaxed Memory Separation Logic<sup >[ 8] ( #lockfree ) </sup >
106112๋์จํ ๋ฉ๋ชจ๋ฆฌ (relaxed memory), ๋ค๋ฅธ ๋ง๋ก ์ฝํ ๋ฉ๋ชจ๋ฆฌ (weak memory)๋ ์ปดํ์ผ๋ฌ ๋ฐ ํ๋์จ์ด์ ์ต์ ํ๋ก ์ธํด ๋ช
๋ น์ด๊ฐ ์ฌ๋ฐฐ์ด๋๋ ๊ฒ์ ํ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ธ๋ก, ๋์์ฑ ํ๋ก๊ทธ๋จ์์ ๊ฐ๋ฅํ ๋ค์ํ ์คํ ์์๋ฅผ ๋ชจ๋ ์์ ํ๊ฒ ํฌํจํด์ผ ํ๋ค. ์ด ๋ชจ๋ธ์ ํต์ฌ ํน์ง์, ๋ฉ๋ชจ๋ฆฌ์์ ๊ฐ์ ์ฝ์ ๋ ๋ฐ๋์ ๊ฐ์ฅ ์ต๊ทผ ๊ฐ์ด ์๋๋ผ ์์ ์ ๊ธฐ๋ก๋ ๊ฐ์ ์ฝ์ ์ ์๋ค๋ ๊ฐ๋ฅ์ฑ์ ํ์ฉํ๋ ์ ์ด๋ค.
107113
108- ์คํต๋ฆฌ์คํธ (skiplist)๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ธ์ ๋
ธ๋๋ง ๊ฐ๋ฆฌํค๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ (linked list)์ ์ฌ๋ฌ ์ธต์ ๋์ฝ ํฌ์ธํฐ๋ฅผ ์ถ๊ฐํด ํ์ ์๋๋ฅผ ๋์ธ ์๋ฃ๊ตฌ์กฐ๋ค. ํน์ ๋
ธ๋๋ฅผ ์ญ์ ํ๋ ค๋ฉด ๊ทธ ๋
ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ชจ๋ ํฌ์ธํฐ๋ฅผ ๋นํ์ฑํํด์ผ ํ๋๋ฐ, ์ฌ๊ธฐ์ ์ฌ๋ฌ ์ค๋ ๋๊ฐ ๋์์ ์ ๊ทผํ๊ณ , ๋ช
๋ น์ด ์ฌ๋ฐฐ์ด๊น์ง ๊ฐ๋ฅํ ํ๊ฒฝ์ด๋ผ๋ฉด ์ด๋ค ์คํ์ด ์์ ํ๋ฉฐ ์ด๋ค ์คํ์ด ์ค๋ฅ๋ฅผ ์ ๋ฐํ ์ ์๋์ง ์ ํ์ ์ผ๋ก ๊ฒ์ฆํ๊ธฐ๊ฐ ๋งค์ฐ ๊น๋ค๋กญ๋ค. ์ด ์ฐ๊ตฌ๋ ์คํต๋ฆฌ์คํธ ์์์์ ๋ฝ ์์ฐ๋ (lock-free) ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฝํ ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ธ ์์์ ์ต์ด๋ก ๊ฐ์กํ ๊ฒ์ฆ (formal verification)ํ ์ฌ๋ก์ด๋ค. 2024๋
์ฌ๋ฆ SIGPL์์ "์ฝํ ๋ฉ๋ชจ๋ฆฌ์์ ๋์์ฑ ํ์ ์๊ณ ๋ฆฌ์ฆ ๊ฒ์ฆํ๊ธฐ"๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ฏธ๋ฆฌ ์๊ฐ๋ ๋ฐ ์์๋๋ฐ, ์ด๋ ๊ฒ ๋ฉ์ง ๋ฐํ๋ก ๋ค์ ๋ณผ ์ ์์ด์ ๋งค์ฐ ์ข์๋ค.
114+ ์คํต๋ฆฌ์คํธ (skiplist)๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ธ์ ๋
ธ๋๋ง ๊ฐ๋ฆฌํค๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ (linked list)์ ์ฌ๋ฌ ์ธต์ ๋์ฝ ํฌ์ธํฐ๋ฅผ ์ถ๊ฐํด ํ์ ์๋๋ฅผ ๋์ธ ์๋ฃ๊ตฌ์กฐ๋ค. ํน์ ๋
ธ๋๋ฅผ ์ญ์ ํ๋ ค๋ฉด ๊ทธ ๋
ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ชจ๋ ํฌ์ธํฐ๋ฅผ ๋นํ์ฑํํด์ผ ํ๋๋ฐ, ์ฌ๊ธฐ์ ์ฌ๋ฌ ์ค๋ ๋๊ฐ ๋์์ ์ ๊ทผํ๊ณ , ๋ช
๋ น์ด ์ฌ๋ฐฐ์ด๊น์ง ๊ฐ๋ฅํ ํ๊ฒฝ์ด๋ผ๋ฉด ์ด๋ค ์คํ์ด ์์ ํ๋ฉฐ ์ด๋ค ์คํ์ด ์ค๋ฅ๋ฅผ ์ ๋ฐํ ์ ์๋์ง ์ ํ์ ์ผ๋ก ๊ฒ์ฆํ๊ธฐ๊ฐ ๋งค์ฐ ๊น๋ค๋กญ๋ค.
115+
116+ ์ด ์ฐ๊ตฌ๋ ์คํต๋ฆฌ์คํธ ์์์์ ๋ฝ ์์ฐ๋ (lock-free) ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฝํ ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ธ ์์์ ์ต์ด๋ก ๊ฐ์กํ ๊ฒ์ฆ (formal verification)ํ ์ฌ๋ก์ด๋ค. 2024๋
์ฌ๋ฆ SIGPL์์ "์ฝํ ๋ฉ๋ชจ๋ฆฌ์์ ๋์์ฑ ํ์ ์๊ณ ๋ฆฌ์ฆ ๊ฒ์ฆํ๊ธฐ"๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ฏธ๋ฆฌ ์๊ฐ๋ ๋ฐ ์์๋๋ฐ, ์ด๋ ๊ฒ ๋ฉ์ง ๋ฐํ๋ก ๋ค์ ๋ณผ ์ ์์ด์ ๋งค์ฐ ์ข์๋ค.
109117### Verifying General-Purpose RCU for Reclamation in Relaxed Memory Separation Logic<sup >[ 9] ( #rcu ) </sup >
110118RCU (read-copy-update)๋ ๋์์ฑ ํ๊ฒฝ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ๋ ๋ฝ์ ์ฐ์ง ์์, ์ฝ๊ธฐ ์ฑ๋ฅ์ด ์ต์ ํ๋ ๋๊ธฐํ ๋ฐฉ์์ด๋ค. ์ฝ๊ณ ์ถ์ผ๋ฉด ๊ทธ๋ฅ ์ฝ์ผ๋ฉด ๋๊ณ , ์ฐ๊ณ ์ถ์ ๋๋ ๊ธฐ์กด ๋ฐ์ดํฐ์ ๋ณต์ฌ๋ณธ์ ๋ง๋ค์ด ์์ ํ ๋ค, ํฌ์ธํฐ๋ง ํ ๋ฒ์ ๋ฐ๊ฟ์น๋ฉด ๋๋ค. ๋ค๋ง ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ํด์ ํ๊ธฐ ์ ์, ์ด์ ๋ฐ์ดํฐ๋ฅผ ์์ง ์ฝ๊ณ ์๋ ์ค๋ ๋๊ฐ ์๋ค๋ฉด ๊ทธ๊ฒ ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ค. ํก์ฌ ์ฐธ์กฐ ํ์ (reference counter)์ฒ๋ผ ์์ ์ ์ฐธ์กฐํ๋ ์ค๋ ๋๋ฅผ ์ถ์ ํ๋ ๋ฐฉ์์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ์์ ์ฑ์ ๋ณด์ฅํ๋ ์ฐ๊ตฌ๋ค์ด ์์์ง๋ง, ์ด๋ ์์ฐจ์ ๋ฉ๋ชจ๋ฆฌ (sequential memory) ๋ชจ๋ธ์์๋ง ๊ฐ๋ฅํ๋ค.
111119
112- ๋์จํ ๋ฉ๋ชจ๋ฆฌ์์ RCU๋ฅผ ๊ฐ์กํ ๊ฒ์ฆํ๊ธฐ ์ํด, ๋ค์ ๋ ๊ฐ์ง ๊ฐ์ ์ ๋์
ํ๋ค. ์ฒซ์งธ, ํ ์ค๋ ๋๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ด์ ๊ฐ๊ณผ ํ์ฌ ๊ฐ์ ๋์์ ์ฐธ์กฐํ๊ณ ์์ ๊ฒฝ์ฐ, ์ด์ ๊ฐ์ ์ฐธ์กฐ๋ ๋ฌด์ํ ์ ์๋ค. ๋์งธ, ๋ฎคํ
์ค์ ๊ฐ์ ๊ณต์ ์์์ ํ ์ค๋ ๋์์ ์ฐ๊ณ ๋ค๋ฅธ ์ค๋ ๋์์ ์ฝ๋๋ค๋ฉด, ๊ทธ ์ค๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฅ๋ฒฝ (fence)์ ์ฝ์
ํด ์ ๊ทผ ์์๋ฅผ ๋ณด์ฅํ๋ค. ์ด ๋ ๊ฐ์ ๋ง์ผ๋ก๋ ๋์จํ ๋ฉ๋ชจ๋ฆฌ์์์ RCU๋ฅผ ๊ฐ์กํ ๊ฒ์ฆํ ์ ์๋ค๋ ๊ฒ์ด ์ด ์ฐ๊ตฌ์ ํต์ฌ์ด๋ค.
120+ ์ด ์ฐ๊ตฌ๋ ๋์จํ ๋ฉ๋ชจ๋ฆฌ์์ RCU๋ฅผ ๊ฐ์กํ ๊ฒ์ฆํ๊ธฐ ์ํด, ๋ค์ ๋ ๊ฐ์ง ๊ฐ์ ์ ๋์
ํ๋ค. ์ฒซ์งธ, ํ ์ค๋ ๋๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ด์ ๊ฐ๊ณผ ํ์ฌ ๊ฐ์ ๋์์ ์ฐธ์กฐํ๊ณ ์์ ๊ฒฝ์ฐ, ์ด์ ๊ฐ์ ์ฐธ์กฐ๋ ๋ฌด์ํ ์ ์๋ค. ๋์งธ, ๋ฎคํ
์ค์ ๊ฐ์ ๊ณต์ ์์์ ํ ์ค๋ ๋์์ ์ฐ๊ณ ๋ค๋ฅธ ์ค๋ ๋์์ ์ฝ๋๋ค๋ฉด, ๊ทธ ์ค๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฅ๋ฒฝ (fence)์ ์ฝ์
ํด ์ ๊ทผ ์์๋ฅผ ๋ณด์ฅํ๋ค. ์ด ๋ ๊ฐ์ ๋ง์ผ๋ก๋ ๋์จํ ๋ฉ๋ชจ๋ฆฌ์์์ RCU๋ฅผ ๊ฐ์กํ ๊ฒ์ฆํ ์ ์๋ค๋ ๊ฒ์ด ์ด ์ฐ๊ตฌ์ ํต์ฌ์ด๋ค.
113121
114122๊ฐ๋จํ๊ณ ๋ช
์พํ ์์ด๋์ด์ฒ๋ผ ๋ณด์ด์ง๋ง, ์ค์ ๋ก๋ ๋ณต์กํ ์ฌ๋ก ์ฐ๊ตฌ (case study)์ ๊ธฐ๋ฐํด ๊ฐ๋ฅํจ์ ์
์ฆํ ์ ์์ ๋งค์ฐ ์ ๋ ์ฐ๊ตฌ๋ผ๊ณ ๋๊ผ๋ค. ๋ฐํ ์ค ๋๊ตฐ๊ฐ "์ ์ด๋ฐ ๊ฐ๋จํ๊ณ ์ค์ํ ์์ด๋์ด๋ฅผ ๊ทธ์ ๊น์ง ์๋ฌด๋ ํ์ง ์์๋ ๊ฑฐ๋"๊ณ ๋ฌป์, ๋ฐํ์๋ "๋จ์ํ ์์ด๋์ด์ฒ๋ผ ๋ณด์ด์ง๋ง ๊ทธ ์๋์ ์์ฃผ ๋ณต์กํ ์ฌ๋ก ๋ถ์์ด ์์๋ค"๊ณ ๋ตํ๋ ๊ฒ ์ ๋ง ์ธ์์ ์ด์๋ค.
115123
@@ -132,9 +140,12 @@ PL ํํ์๊ธฐ ๋๋ฌธ์ผ๊น. ํ์์ ๊ถ๊ธํ์ง๋ง ๋ฉ๊ฒ ๋๊ปด์ก๋ ํ
132140๊ทธ๋ฐ ์ฌ์ฉ๋ฒ์ด ๋๋ฌด ์๋ก์ ๊ธฐ์ ์ดํด๋ฅผ ๋ชป ํด์ ๋ค์ด์จ ์ง๋ฌธ์ด ์์๋ค. '์
๋ง์ ์ ํ์ ๋ญ์ง ์๋๋ฐ, ์ฐ๊ตฌ์์ ๊ตณ์ด ์ฒ์ฌ์
133141์ ํ์ ์ธ ์ด์ ๋?' ๋ด์ง๋ '์์ฉ ๋ถ์ผ๊ฐ ์๋์ง' ๋ฑ, ์ฃผ์ ๊ฐ ๋ง์ด ์๋ก์ด ๋ฐํ๋ค์์๋ ์ ๋ชจ๋ฅด๊ฒ ๋ ๊ฑธ ๊ฑฐ๋ฆฌ๋์์ด ์ง๋ฌธํ ์ ์๋ ๋ถ์๊ธฐ์๋ค.
134142
135- ๋ชจ๋๋ค ์์ ์ ๋ถ์ผ๋ฅผ ์ ํ ๋ชจ๋ฅด๋ ๋จ๋ค์๊ฒ ์ดํด์ํค๊ธฐ ์ํด ๋ง์ ๋
ธ๋ ฅ์ ๊ธฐ์ธ์๋ค. ๊ฐ์ฅ ๋๋๋ ์ ์ ๋ฐํ์์ ๋์ค๋ ํต์ฌ ์์
136- (motivating example)๊ฐ ๋
ผ๋ฌธ๊ณผ ๊ฒน์น์ง ์๋ ์๋ก์ด ๊ฒฝ์ฐ๊ฐ ๋ง์๋จ ๊ฒ์ด๋ค. ๋
ผ๋ฌธ์์๋ ์๋์ ์ผ๋ก ๊ธธ๊ณ ์๋ฐํ ์์ ๋ฅผ
137- ์ผ๋ค๋ฉด ๋ฐํ์์๋ ๊ทธ๋ค์ง ์๋ฐํ์ง ์์ง๋ง ์ด๋ค ๋ถ์ผ์ ์ด๋ ๋ด์ฉ์ ๋ฐ๊พธ์๋์ง ์ดํดํ๊ธฐ ์ข์ ๋น์ ๋ฅผ ๋ค๊ณ ์๋ค.
143+ ๋ชจ๋๋ค ์์ ์ ๋ถ์ผ๋ฅผ ์ ํ ๋ชจ๋ฅด๋ ๋จ๋ค์๊ฒ ์ดํด์ํค๊ธฐ ์ํด ๋ง์ ๋
ธ๋ ฅ์ ๊ธฐ์ธ์๋ค.
144+
145+ ๊ฐ์ฅ ๋๋๋ ์ ์ ๋ฐํ์์ ๋์ค๋ ํต์ฌ ์์ (motivating example)๊ฐ ๋
ผ๋ฌธ๊ณผ ๊ฒน์น์ง ์๋ ์๋ก์ด ๊ฒฝ์ฐ๊ฐ ๋ง์๋จ ๊ฒ์ด๋ค.
146+ ๋
ผ๋ฌธ์์๋ ์๋์ ์ผ๋ก ๊ธธ๊ณ ์๋ฐํ ์์ ๋ฅผ ์ผ๋ค๋ฉด
147+ ๋ฐํ์์๋ ๊ทธ๋ค์ง ์๋ฐํ์ง ์์ง๋ง ์ด๋ค ๋ถ์ผ์ ์ด๋ ๋ด์ฉ์ ๋ฐ๊พธ์๋์ง ์ดํดํ๊ธฐ ์ข์ ๋น์ ๋ฅผ ๋ค๊ณ ์๋ค.
148+
138149๋ํ ์ํํธ์จ์ด ์์ง๋์ด๋ง์ฒ๋ผ ์ฑ๋ฅ์ ๋์ด์ฌ๋ฆฐ ์ฐ๊ตฌ๋ฅผ ํ๋๋ผ๋ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์์ ๋์ง ์๊ณ , ์ต๋ํ ์์ ์ ์ฐ๊ตฌ ๋ถ์ผ์
139150ํํฉ์ ์์ ๋ฑ์ผ๋ก ์ฃผ์ง์ํจ ๋ค์์ ๊ฒฐ๊ณผ๋ฅผ ์ค์๋ค. ์ด๊ฑด ์๋ฌด๋๋ ์๋ก ์ด๋ค ์ฐ๊ตฌ๋ฅผ ํ๋์ง ์ฝ๊ฒ ์๊ธฐ ์ด๋ ค์ด ํํ์ ํน์ฑ์,
140151์ป์ด๊ฐ ํต์ฌ ๋ฉ์์ง๋ฅผ ์ด๋ป๊ฒ๋ ๊ฐ๋ฅด์น๋ ค ๋
ธ๋ ฅํ ์ฐ๋ฌผ์ด์๋ค.
@@ -163,4 +174,4 @@ PL ํํ์๊ธฐ ๋๋ฌธ์ผ๊น. ํ์์ ๊ถ๊ธํ์ง๋ง ๋ฉ๊ฒ ๋๊ปด์ก๋ ํ
163174
164175<script src =" https://polyfill.io/v3/polyfill.min.js?features=es6 " ></script >
165176<script id="MathJax-script" async
166- src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script >
177+ src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script >
0 commit comments