Кіріспе
Статикалық бағдарламалық талдауда Soot – Java аралық тілдерінен тұратын байт-кодты манипуляциялау және оңтайландыру аясы. Оны Макгилл университетінің Sable зерттеу тобы әзірлеген. Soot қазіргі уақытта Падерборн университетінің Қауіпсіз бағдарламалық жасақтама жасау тобы қолдайды. Soot өзінің API арқылы басқа талдау бағдарламаларының қолжеткізуі және олардың негізінде құруы үшін төрт аралық өрнекті ұсынады:
Baf: байт-кодқа жақын өрнек. Jimple: Java бастапқы кодының қарапайымдалған нұсқасы, онда әр операторда ең көп дегенде үш компонент болады. Shimple: Jimple-дің SSA нұсқасы (GIMPLE-ге ұқсас). Grimp: декомпиляциялау және кодты тексеруге қолайлы Jimple-дің жиынтық нұсқасы. Ағымдағы Soot бағдарламалық қамтамасы контекстке сезімтал, ағынға бейжай нүктелік талдау, шақыру графигі талдауы және доминация талдауы ( "a оқиғасы b оқиғасын міндетті түрде одан кейін орындауы керек пе?" деген сұраққа жауап беру) сияқты, бірден қолдануға болатын егжей-тегжейлі бағдарламалық талдауларды да қамтиды. Сондай-ақ, онда dava деп аталатын декомпилятор бар. Soot – GNU Lesser General Public License (LGPL) лицензиясы бойынша қолжетімді бос бағдарламалық жасақтама. 2010 жылы Soot туралы екі зерттеу мақаласы ( және ) 425 үміткердің ішінде таңдалған 12 мақаламен бірге IBM CASCON First Decade High Impact Papers ретінде таңдалды.
Baf: a near bytecode representation. Jimple: a simplified version of Java source code that has a maximum of three components per statement. Shimple: an SSA variation of Jimple (similar to GIMPLE). Grimp: an aggregated version of Jimple suitable for decompilation and code inspection. The current Soot software release also contains detailed program analyses that can be used out of the box, such as context sensitive flow insensitive points to analysis, call graph analysis and domination analysis (answering the question "must event a follow event b?"). It also has a decompiler called dava. Soot is free software available under the GNU Lesser General Public License (LGPL). In 2010, two research papers on Soot ( and ) were selected as IBM CASCON First Decade High Impact Papers among 12 other papers from the 425 entries.
Жемпиль
Jimple – Java байт-кодына қарағанда оңтайландыруды жеңілдету үшін жасалған Java бағдарламасының аралық өрнегі. Ол типтелген, нақты синтаксисқа ие және үш адрес кодына негізделген. Jimple тек 15 түрлі операцияны қамтиды, осылайша ағын талдауды жеңілдетеді. Ал Java байт-коды 200-ден астам түрлі операцияны қамтиды. Java байт-кодынан айырмашылығы, Jimple-де жергілікті және стек айнымалылары типтелген және Jimple қауіпсіздіктің жоғары деңгейін қамтамасыз етеді. Jimple-ге немесе "Jimplifying" ("simplifying") түрлендіру – байт-кодты үш адрес кодына түрлендіру. Бұл түрлендіру идеясын алғаш Кларк Вербрюгге зерттеген, оның мәні – стектегі әрбір позицияға айнымалыны сәйкестендіру. Сондықтан стек операциялары стек айнымалыларын қолданатын тапсырмаларға айналады.
Қоқыс
Soot-тың орнын қазір Paderborn университетінің Secure Software Engineering тобы әзірлеген SootUp фреймворкі басты. SootUp – Soot-тың толыққанды қайта жасалған нұсқасы, жаңа дизайнмен, байт-кодты оңтайландырудың орнына статикалық бағдарламалық талдауға басымдық береді.