Ne yazık ki konuyla ilgili çok fazla ders kitabı yok. Bugün program analizini öğrenmenin en iyi yolunun mevcut olan farklı dersleri incelemek, birkaç uygulama ile oynamak ve daha sonra özel ihtiyaçlarınız için birkaç araştırma makalesine bakmak olduğunu düşünüyorum. Bunu izleyen şey, dışarıdakilerin çok küçük bir örneklemidir. Özellikle derleyici odaklı analizlerin kolay bulunabildiğinden, bu tür materyalleri aşağıda ele almayacağım.
Web tabanlı kaynaklar
Bunlar, bir derleme bağlamı dışında statik analiz kullanımını vurgulayan makalelerdir.
Program analizi üzerine bir Ters Mühendislik Reddit tartışmasının birçok yararlı bağlantısı vardır.
Soyut yorum üzerinde Mozilla Wiki .
Statik Analiz Uygulaması , Flash Sheridan'ın Dr. Dobbs makalesi
Birkaç Milyar Kod Daha Sonra: Gerçek Dünyadaki Hataları Bulmak için Statik Analiz Kullanmak , Al Bessey, Ken Block, Ben Chelf, Andy Chou, Bryan Fulton, Seth Hallem, Charles Henri-Gros, Asya Kamsky, Scott McPeak, Dawson Engler ACM İletişiminde.
Üniversite program analizi dersleri
- Arhus Üniversitesi'nden Anders Møller , nesne yönelimli ve web teknolojisini kapsayan bir ders vermektedir .
- Colorado Boulder Üniversitesi'ndeki Bor-Yuh Evan Chang , OCaml uygulaması ve lisansüstü kursu içeren bir temel kursa sahiptir .
- California Santa Barbara Üniversitesi'nden Ben Hardekopf büyük ödevlere sahipti , ancak artık çevrimiçi olarak mevcut değiller. Dersini alan bazı öğrenciler bir Python uygulamasını hazırlamış gibi görünüyor .
- Markus Müller-Olm , Android analizi üzerine yüksek lisans dersine sahiptir .
- Sarbruecken Üniversitesi'ndeki Reinhard Wilhelm , zamanlama analizi, önbellek davranış tahmini ve bazı şekil analizi gibi statik analiz uygulamalarını kapsayan bir yüksek lisans dersi vermektedir .
- MSR'den Sumit Gulwani , Oregon Programlama Dilleri Yaz Okulu'nda programların (zaman / bellek) kaynak tüketiminin statik olarak tahmin edilmesi konusunda güzel bir ders verdi .
- Berkeley'deki California Üniversitesi'ndeki Koushik Sen , böcek bulmaya odaklanan ve konuları konik yürütme ve yazılım modeli kontrolünü kapsayan bir kurs öğretiyor .
- Maryland Üniversitesi'ndeki Jeffrey Foster , tip sistemleri, model kontrolü, takma ad analizi ve diğer birçok normal materyali kapsayan bir ders veriyor .
- Patrick Cousot bir yılı MIT'de geçirdi ve soyut yorum üzerine kapsamlı ve temel bir ders verdi. Ödevler, somut toplama semantiğinden algoritmik olarak önemsiz olmayan fikirlere uzanan bir OCaml uygulamasını içerir.
- Bir lisansüstü ders alanında bazı liderleri tarafından öğretilen soyut yorumunu da fazla teorisi üzerine yakalamak için iyi bir yerdir.
- Patrick Cousot , 2009'da Oregon Programlama Dilleri Yaz Okulu'nda soyut yorumlama üzerine kısa bir ders verdi .
Oynamak için araçlar
Burada çok fazla araştırma aracı listelemiyorum. Bunların birçoğu var ama alanı daha iyi anlamak için indirip oynayabileceğiniz birkaçını listelemeye çalıştım.
Interproc , sayısal statik analiz hakkında bilgi edinmek için oynamak için çok eğitici bir araçtır.
Gerçekten sayısal analiz yapıyorsanız Apron Sayısal Soyutlama kütüphanesi .
Slayer , Microsoft Research'ten bir şekil analiz aracıdır.
jStar , Java için ayırma mantığına dayanan bir analizördür.
Microsoft Research'te , birçoğu indirilebilir veya web demoları olan çok sayıda araç geliştiren çok sayıda grup vardır. Burada her şeyi listeleyemiyorum ve onlarla oynamanızı tavsiye edemem.
Çok daha fazlası var, ama muhtemelen bir süre meşgul etmek için yeterli.