ํ๋ก๊ทธ๋๋ฐ ๋ฌธ์ ๋ ํจ์๊ฐ ์ด๋ค ๊ธฐ๋ฅ์ ์ํํด์ผ ํ๋๊ฐ์ ๊ทธ ํจ์์ ์ ๋ ฅ์ด ๋ฌด์์ ๋ง์กฑํด์ผ ํ๋๊ฐ๋ฅผ ๋์์ ๋งํฉ๋๋ค. "๋ฆฌ์คํธ๋ ๋น์ด ์์ผ๋ฉด ์ ๋๋ค" ๊ฐ์ ์กฐ๊ฑด๋ค์ด ๋ชจ์ฌ Contract(ํจ์๊ฐ ๋ฐ์๋ค์ผ ์ ๋ ฅ์ ๋ฒ์๋ฅผ ๊ท์ ํ๋ ์ ์ ์กฐ๊ฑด)๋ฅผ ์ด๋ฃน๋๋ค. ๊ทธ๋ฌ๋ HumanEval, MBPP, EvalPlus๋ ์ด๋ฏธ ๋ชจ๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ valid input๋ง ์ด์ฉํด ์ธก์ ํ๋ฏ๋ก, ๊ธฐ๋ฅ์ด ๋ง๋์ง๋ ์ฌ๋ ์ฝ๋๊ฐ Contract๋ฅผ enforcementํ๋์ง๋ ๋ชจ๋ฆ ๋๋ค.
Contract๋ฅผ ๋ง์กฑํ๋ ํ๋ก๊ทธ๋จ์ ๊ฐ์ ํจ์ ํ๋๋ก ๋ ์กฐ๊ฑด์ ์ถฉ์กฑํด์ผ ํฉ๋๋ค. valid input์๋ ์ฌ๋ฐ๋ฅธ ์ถ๋ ฅ์ ๋ด๊ณ , contract-violating input์ ์๋์ ์ผ๋ก ๊ฑฐ๋ถํด์ผ ํฉ๋๋ค. ๋ ์๊ตฌ๋ ์๋ก๋ฅผ ๋ฐ์ด๋ ๋๋ค. enforcement๊ฐ ๋ถ์์ ํ๋ฉด ๊ฑฐ๋ถํด์ผ ํ contract-violating input์ด ์กฐ์ฉํ ํต๊ณผํ๊ณ , enforcement๊ฐ ๊ณผ๋ํ๋ฉด valid input๊น์ง ๊ฑฐ๋ถํด ๊ธฐ๋ฅ ์ ํ๋๊ฐ ๋จ์ด์ง๋๋ค. ๊ฒ๋ค๊ฐ Contract ์กฐ๊ฑด์ ๊ธฐ๋ฅ ์๊ตฌ์ฌํญ๊ณผ ๊ฐ์ ์ฐ๋ฌธ ์์ ์์ฌ ์์ด ๋ชจ๋ธ์ด ์ค์ค๋ก ์๋ณํด์ผ ํฉ๋๋ค. ๋ช ์ธ๋ฅผ ๋๋์ง ์์ ์ฑ ํ ๋ฒ์ ์์ฑํ๋๋ก ์๊ตฌํ๋ฉด ๋ ๋ชฉํ๊ฐ ๊ฒฝ์ํ๊ณ , ์ค์ ๋ก ๊ธฐ์กด ๊ธฐ๋ฒ๋ค์ Base ๋๋น SSR์ โ9.04% ~ โ0.45% ๋งํผ ์คํ๋ ค ๋จ์ด๋จ๋ฆฝ๋๋ค.
๊ธฐ์กด ์ฐ๊ตฌ๋ ์ด ๋ฌธ์ ์ ์ ๋ฐ์ฉ๋ง ๋ค๋ฃน๋๋ค. ํ ๊ฐ๋๋ contract condition์ ๋ฝ์๋ด๋ ๋ฐ ์ง์คํฉ๋๋ค. ์ฝ๋๋ ์์ฐ์ด๋ก๋ถํฐ preconditionยทpostcondition์ ์์ฑํด๋ด์ง๋ง, ๋ฝ์๋ธ contract condition์ด ์ผ๋ง๋ ์ ํํ์ง๋ฅผ ๋ณผ ๋ฟ ๊ทธ๊ฒ์ด ์ค์ ์ฝ๋ ์์์ ์ง์ผ์ง๋์ง๋ ํ์ธํ์ง ์์ต๋๋ค. ๋ค๋ฅธ ๊ฐ๋๋ contract condition์ ๋ฏธ๋ฆฌ ๋ฐ์์ ์ฝ๋๋ฅผ ๋ง๋ญ๋๋ค. ์ด๋๋ contract condition์ด ๊ธฐ๋ฅ ์๊ตฌ์ฌํญ๊ณผ ์ด๋ฏธ ๋ถ๋ฆฌ๋ ์ํ๋ก ์ฃผ์ด์ง๋ฏ๋ก, ์ฐ๋ฌธ ์์ ์์ธ ๊ฒ์ ์ฐพ์๋ด๋ ์ผ ์์ฒด๊ฐ ๊ณผ์ ๊ฐ ๋์ง ์์ต๋๋ค. ํ์ชฝ์ contract condition์ ์ฐพ๋ ์งํค๊ฒ ๋ง๋ค์ง ์๊ณ , ๋ค๋ฅธ ์ชฝ์ ์งํค๊ฒ ํ๋ ์ฐพ์ ํ์๊ฐ ์๋ ์ ์ ๋๋ค. CodeTree๋ SpecFix๋ ๊ธฐ๋ฅ ํ ์คํธ ์ ํธ๋ง์ผ๋ก ํ์ํ๊ธฐ ๋๋ฌธ์ Contract๊ฐ ์์ผ ๋ฐ์ ์๊ณ , ContractEval์ ํ๊ฐ ์ธํ ์ ์ธ์ ์ ๋ฟ ์์ฑ ๋ฐฉ๋ฒ์ ์ ์ํ์ง ์์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ด ๊ณต๋ฐฑ์ ๋ฉ์ฐ๊ธฐ ์ํด SLICE๋ฅผ ์ ์ํฉ๋๋ค. SLICE๋ reference solution๋ held-out test๋ ์ฐ์ง ์๊ณ ์์ฐ์ด ๋ช ์ธ๋ง์ผ๋ก ๋์ํ๋ฉฐ, Contract enforcement์ ๊ธฐ๋ฅ ๊ตฌํ์ ๋ช ์ธ ์์ค์์ ๋ถ๋ฆฌํด ๊ฐ๊ฐ ๋ค๋ฅธ ์์ฑ ๋จ๊ณ์ ๋งก๊น๋๋ค.

SLICE (Specification-Level Isolation of Contract Enforcement)๋ ์์ฐ์ด ๋ฌธ์ ๋ช ์ธ๋ง์ ์ ๋ ฅ์ผ๋ก ๋ฐ์, ๊ธฐ๋ฅ ๊ตฌํ๊ณผ Contract enforcement๋ฅผ ์๋ก ๋ค๋ฅธ ์์ฑ ๋จ๊ณ์ ๋งก๊ธฐ๋ ํ์ดํ๋ผ์ธ์ ๋๋ค. ์ถ๋ ฅ์ ๋ ๊ฐ์ ์ฐ์ถ๋ฌผ์ด ์๋๋ผ, input-validation assertion์ด ์ง์ ๋ถ์ ๋ถ์ ์์ฑ๋ ํจ์ ํ๋์ ๋๋ค. reference solution๋, held-out test๋ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ ๋ช ์ธ์ ์ด๋ฏธ ์ ํ ์๋ ์์๋ง ์คํ ์ ํธ๋ก ์๋๋ค.
<aside> ๐
<aside> ๐
assert ์ค, f(a) = b ํํ ์ฐ๋ฌธ)๋ฅผ ์คํ ๊ฐ๋ฅํ check๋ก ์ด์ฉํด execution score๋ก ์์ ๋งค๊น<aside> ๐
<aside> ๐