CS 6340 Software Analysis - 2024 Fall Review
CS 6340: Software Analysis
2024 Fallに履修したCS-6340 Software Analysis and Testingのクラスが終了したので、いつもどおりレビューをまとめる。このクラスでは、Software Analysisの様々な方法とその限界を確認し、labで実際に手を動かしてみるスタイルだった。
課題
課題は全部で8つ。LLVMのIRを触るものが前半に多く、はじめはLLVMのドキュメントを読むのに苦労した。C++を書く機会が多く、それなりにC++が書ける・読めるのが要求される。Type Systemの課題ではTypeScriptを触る機会もあったけれど、それは普段から使っているためハードルが低かった。
テスト
期末テストはなく、中間テストだけが実施された。前半のlabでカバーされている箇所からの出題になるので出題範囲は狭いものの、それなりに勉強したと思う。
まとめ
Software Analysisには、自分が思っていたより多くのテクニックがあり、このクラスで学んだことは多かった。特にDynamic Symbolic Execution (DSE)のアプローチは賢いなと思ったし、KLEEを使ったlabのおかげで理解が深まったと思う。学んだことは実践的な知識になるとも思う。一方で、クラスの内容には関係ないがプライベートが忙しくなり、とりあえず課題をこなすみたいな勉強スタイルになったのは良くなかったと猛省している。推薦本のTypes and Programming Languagesもほとんど読むことができておらず、良くなかった。2025 SpringはOMSCSの中でもハードなクラスの一つと言われているCS 8803 O08: Compilers—Theory and Practiceを取るので気を引き締めて取り組みたい。