Sign In

Raw Pointer Rewriting with LLMs for Translating C to Safer Rust

Created by
  • Haebom
Category
Empty

μ €μž

Yifei Gao, Chengpeng Wang, Pengxiang Huang, Xuwei Liu, Mingwei Zheng, Xiangyu Zhang

πŸ’‘ κ°œμš”

λ³Έ 논문은 C μ½”λ“œλ₯Ό Rust둜 λ³€ν™˜ μ‹œ λ°œμƒν•˜λŠ” μ•ˆμ „ν•˜μ§€ μ•Šμ€ μ›μ‹œ 포인터 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λŒ€κ·œλͺ¨ μ–Έμ–΄ λͺ¨λΈ(LLM)을 ν™œμš©ν•œ μƒˆλ‘œμš΄ 기법을 μ œμ•ˆν•©λ‹ˆλ‹€. μ œμ•ˆλœ PR2 기법은 μ˜μ‚¬κ²°μ • 트리 기반 ν”„λ‘¬ν”„νŒ…κ³Ό μ½”λ“œ λ³€κ²½ 뢄석을 톡해 μ›μ‹œ 포인터λ₯Ό Rust의 μ•ˆμ „ν•œ 데이터 ꡬ쑰둜 효과적으둜 λ³€ν™˜ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 C2RUST둜 μƒμ„±λœ Rust μ½”λ“œμ˜ λ©”λͺ¨λ¦¬ μ•ˆμ „μ„±μ„ 크게 ν–₯μƒμ‹œμΌ°μŠ΅λ‹ˆλ‹€.

πŸ”‘ μ‹œμ‚¬μ  및 ν•œκ³„

β€’
C μ½”λ“œλ₯Ό Rust둜 λ³€ν™˜ν•  λ•Œ λ°œμƒν•˜λŠ” μ›μ‹œ 포인터 κ΄€λ ¨ μ•ˆμ „μ„± 문제λ₯Ό LLM을 톡해 효과적으둜 ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
β€’
PR2 기법은 μ˜μ‚¬κ²°μ • νŠΈλ¦¬μ™€ μ½”λ“œ λ³€κ²½ 뢄석을 ν™œμš©ν•˜μ—¬ μ›μ‹œ 포인터 λ³€ν™˜μ˜ μ •ν™•μ„±κ³Ό 였λ₯˜ μˆ˜μ • λŠ₯λ ₯을 λ†’μ˜€μŠ΅λ‹ˆλ‹€.
β€’
μ œμ•ˆλœ 방법둠은 μ‹€μ œ 28개의 C ν”„λ‘œμ νŠΈμ— μ μš©λ˜μ–΄ 18.57%의 둜컬 μ›μ‹œ 포인터λ₯Ό μ œκ±°ν•˜λ©° μƒλ‹Ήν•œ μ•ˆμ „μ„± ν–₯상을 μž…μ¦ν–ˆμŠ΅λ‹ˆλ‹€.
β€’
λ³€ν™˜ κ³Όμ •μ—μ„œ 컴파일 였λ₯˜ 및 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ μ‹€ν–‰ 였λ₯˜λ₯Ό μ„±κ³΅μ μœΌλ‘œ μ²˜λ¦¬ν–ˆμ§€λ§Œ, λ³΅μž‘ν•˜κ±°λ‚˜ κ΄‘λ²”μœ„ν•œ 포인터 μ‚¬μš© μ‹œμ˜ μ™„λ²½ν•œ μ•ˆμ „ 보μž₯μ—λŠ” μ—¬μ „νžˆ ν•œκ³„κ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
πŸ‘