ソースコードを堪能せよ accepted

Abstract

ソースコードはコンパイラだけのものではありません。コンパイラによってソースコードがコンパイルされる前に十分にソースコード堪能しましょう。

ソフトウェアの品質を検証する方法として、テストや人の手によるQA、負荷試験などが挙げられます。病気と同じようにバグの発見は早期に発見できれば、それだけ影響範囲が狭くできます。しかし、テストや人の手によるQA、負荷試験などによる検証はソースコードをコンパイルしたあとに行います。

コンパイルするより前にソースコードの段階でソフトウェアの品質を検証をする方法があれば、さらに早期にバグを発見が期待できるでしょう。本セッションでは、文字列の塊であるソースコードを字句の塊として解釈する字句解析から始まり、構文解析、型チェック、そして静的単一代入、ポインタ解析までソースコードから分かる情報を解説し、筆者が開発しているGoの静的解析ツールとともに、どうソフトウェアの品質の向上に貢献できるか示します。

また、静的解析ツールのこの先どのように進化していくのか、機械学習や可視化技術を使った方法を紹介し考察します。

本セッションはGoのソースコードを対象に次のような内容を扱います。

・ソースコードから分かることと静的解析
・静的解析のフェーズ
・構文解析で分かる情報
・型チェックで分かる情報
・静的解析単一代入形式で分かる情報
・ポインタ解析で分かる情報
・機械学習を静的解析に応用した事例の紹介
・ソースコードを可視化した事例の紹介

プログラムを動かさずにここまで情報が分かるのかということを理解してもらい、みなさんの今後の静的解析ツールを用いたソフトウェアの品質向上に貢献できればと思います。

参考URL:
https://tech.mercari.com/entry/2019/06/10/120000
https://bit.ly/atourofgostaticanalysis

Session Information
Confirmed confirmed
Starts On 8/30/19, 3:40 PM
Room Centennial Hall A
Session Duration 50 min session
Spoken Language Japanese
Interpretation Unavailable
Slide Language Japanese