Upgrade to Pro — share decks privately, control downloads, hide ads and more …

新規のC言語処理系を実装することによる
組込みシステム研究にもたらす価値
についての考察

 新規のC言語処理系を実装することによる
組込みシステム研究にもたらす価値
についての考察

現在,主流となっているGCCやClangとは異なるC言語処理系を,現代においてわざわざ新たに実装することが,今後の組込みシステム研究にもたらす価値は,少なくとも次のような研究の基礎を提供することであると考察した:
(1) 組込みシステム向けのメモリ一貫性モデルと過剰なコード最適化の抑制
(2) 形式手法をCコードに適用する研究
(3) コード最適化の等価性保証の研究
(4) サイドチャネル攻撃耐性を備えたコード生成器の研究.
今後,このような研究のインフラストラクチャとなることを意図したC言語処理系を独自に開発することを検討する.

Susumu Yamazaki (ZACKY)

November 21, 2024
Tweet

More Decks by Susumu Yamazaki (ZACKY)

Other Decks in Research

Transcript

  1. ܗࣜख๏ݚڀ΁ͷԠ༻ • ܗࣜख๏ͷ༗ޮੑ • ΑΓߴ͍৴པੑ΍҆શੑΛٻΊΔಈػ • ιϑτ΢ΣΞςετʹجͮ͘৴པੑɾ҆શੑͷ୲อʹݶ౓͋Γ • ϓϩάϥϜ΍σʔλͷෳࡶੑ •

    ฒߦϓϩάϥϛϯάͷඇܾఆੑ • Cιʔείʔυͷߏจ΍ҙຯ͔Βਪ࿦Ͱ͖Δ৘ใΛ౿·͑ͨܗࣜख๏ • GCC΍ClangͰ͸ن໛͕ڊେ͗ͯ͢ɼ͜ͷ໨తʹద͞ͳ͍ 4 ©︎ 2024 Susumu Yamazaki
  2. αΠυνϟωϧ߈ܸͷڴҖͱͦͷରࡦϚεΩϯά • ૊ࠐΈγεςϜ΁ͷαΠυνϟωϧ߈ܸͷڴҖ • ࣍ͷ৘ใΛ౷ܭ෼ੳ͢Δ͜ͱͰɼޛΒΕΔ͜ͱͳ͘ൿີ ৘ใΛ๣डՄೳ • ϓϩηεͷ࣮ߦ࣌ؒɼϓϩηοαͷফඅిྗɼϓϩ ηοα͔Β์ࣹ͞ΕΔి࣓೾౳ •

    ϚεΩϯά • ৚݅෼ذͷͲͷܦ࿏ʹ͓͍ͯ΋࣮ߦ࣌ؒ΍࢖༻͢Δԋࢉ ϢχοτΛม͑ͳ͍Α͏ʹ͢Δ(ӈਤ) • ࣮ߦ࣌ؒɾফඅిྗɾి࣓೾౳Λܭଌͯ͠౷ܭ෼ੳͯ͠ ΋༗ҙͳࠩΛݟग़ͤͳ͍Α͏ʹ͢Δ͜ͱͰαΠυνϟω ϧ߈ܸΛࠜઈ 6 ©︎ 2024 Susumu Yamazaki
  3. αΠυνϟωϧ߈ܸ଱ੑΛඋ͑ͨίʔυੜ੒ث΁ͷల๬ • ίϯύΠϥͷίʔυੜ੒ثʹϚεΩϯάΛߦ͏ίʔυੜ ੒Λ૊ࠐΊΔͱେ͍ʹαΠυνϟωϧ߈ܸ଱ੑΛߴΊΔ ͜ͱ͕ظ଴Ͱ͖Δ[4] • ݪ[5]ʹΑΔͱɼϚεΩϯάͷݚڀ͸ੈքతʹ΋ɼݱࡏΞ ηϯϒϦίʔυϨϕϧͰͷݕ౼ʹཹ·͓ͬͯΓɼίϯύ Πϥͷίʔυੜ੒·Ͱߦ͍ͬͯΔࣄྫ͕օແͰ͋Δ •

    ΋ͪΖΜGCC΍Clangʹ૊ࠐΉ͜ͱ͕Ͱ͖Ε͹େ͍ʹߩ ݙͰ͖Δ • ݚڀஈ֊Ͱ͍͖ͳΓGCC΍Clangʹ૊ࠐΉ͜ͱ͸ࠔ೉Ͱ ͋Δ • ΑΓ༰қʹ૊ࠐΜͰݕ౼Ͱ͖ΔΑ͏ͳॲཧܥ͕๬·ΕΔ [4] ࢁ࡚ ਐ: ฒྻϓϩάϥϛϯάݴޠElixir(ΤϦΫαʔ)͔Β TOPPERSΧʔωϧར༻CɾΞηϯϒϦίʔυΛੜ੒͢Δα Πυνϟωϧ߈ܸ๷ޚࢦ޲ίϯύΠϥ, available at https:// www.toppers.jp/docs/contest/2024/I01_yamazaki.pdf (2024). ୈ14ճTOPPERS׆༻ΞΠσΞɾΞϓϦέʔγϣϯ ։ൃίϯςετ׆༻ΞΠσΞ෦໳ۜ৆ [5] ݪ ༞ࢠ: ૊ࠐΈγεςϜ΁ͷαΠυνϟωϧ߈ܸͱͦͷ ରࡦ, TOPPERSΧϯϑΝϨϯε2024 (2024). https:// www.toppers.jp/conference2024.html. 7 ©︎ 2024 Susumu Yamazaki
  4. ·ͱΊ • ݱࡏओྲྀͱͳ͍ͬͯΔGCC, Clangͱ͸ҟͳΔCݴޠॲཧܥΛɼݱ୅ʹ͓͍ͯΘ͟Θ͟৽ͨʹ࣮૷͢Δ͜ͱ͕ɼ ࠓޙͷ૊ࠐΈγεςϜݚڀʹ΋ͨΒ͢Ձ஋͸ɼগͳ͘ͱ΋࣍ͷΑ͏ͳݚڀͷجૅΛఏڙ͢Δ͜ͱͰ͋Δͱߟ࡯͠ ͨ 1. ૊ࠐΈγεςϜ޲͚ͷϝϞϦҰ؏ੑϞσϧͱա৒ͳίʔυ࠷దԽͷ཈੍ 2. ܗࣜख๏ΛCίʔυʹద༻͢Δݚڀ

    3. ίʔυ࠷దԽͷ౳Ձੑอূͷݚڀ 4. αΠυνϟωϧ߈ܸ଱ੑΛඋ͑ͨίʔυੜ੒ثͷݚڀ • ࠓޙɼ͜ͷΑ͏ͳݚڀͷΠϯϑϥετϥΫνϟͱͳΔ͜ͱΛҙਤͨ͠CݴޠॲཧܥΛಠࣗʹ։ൃ͢Δ͜ͱΛݕ౼ ͢Δ 8 ©︎ 2024 Susumu Yamazaki
  5. ߏ૝ݕ౼ • MISRA C ʹԊͬͨϓϩάϥϜίʔυɼTOPPERSΧʔωϧɼLinuxΧʔωϧΛίϯύΠ ϧͰ͖Δ͜ͱΛதظ໨ඪͱઃఆ͢Δͷ͕ଥ౰Ͱ͸ͳ͍͔ͱߟ͍͑ͯΔ • MLIR (Multi-Level Intermediate

    Representation)ͷߟ͑ํΛಋೖ͢Δ • ͢ͳΘͪɼ༷ʑͳதؒදݱΛܦͯஈ֊తʹίϯύΠϧ͢ΔΞʔΩςΫνϟΛ࠾༻͢Δ • ίϯύΠϧ͸ɼσʔλม׵ͷҰ؀ͱͯ͠ଊ͑Δ͜ͱ͕Ͱ͖Δ ➡σʔλม׵Λͦͷ··ϓϩάϥϜίʔυͷܗͰදͤΔElixirΛ༻͍ͯίϯύΠϥΛهड़ ͢Δ͜ͱΛߟ͍͑ͯΔ 9 ©︎ 2024 Susumu Yamazaki