Автоматическое обнаружение дефектов в многопоточных программах методами статического анализа
Диссертация
Первое ограничение не является существенным, так как общепринятые правила создания многопоточных программ предписывают использовать способы синхронизации, основанные только на вызове функций над объектами синхронизации. Второе ограничение предлагается преодолевать за счет обнаружения ошибок синхронизации указанных типов и выдачи соответствующих предупреждений. Подразумевается, что выданные… Читать ещё >
Список литературы
- AEGIS Defect Detection System Electronic Resource. / Digitek Labs. — http://www.digitek-labs.ru/aegis/
- Boost С++ libraries Electronic Resource. / Официальный сайт. — http://www.boost.org/.
- CERT С Secure Coding Standard Electronic Resource. / Carnegie Mellon University: 2008. https://www.securecoding.cert.org/confluence/display/seccode/CERT+C+Se cure+Coding+Standard
- Coverity Static Analysis Electronic Resource. / Компания Coverity. — http://www.coverity.com/products/static-analysis.html
- OPEN SOURCE REPORTS 2008 and 2009 Electronic Resource. / Компания Coverity. — http://www.scan.coverity.com/report/.
- С Language Standard ISO/IEC 9899:1990 Electronic Resource. / Официальный сайт международной организации стандартизации. — http://www.iso. org/iso/cataloguedetail.htm?csnumber= 17 782.
- GCC, the GNU Compiler Collection Electronic Resource. / GNU Project. — http:// gcc. gnu.org/.
- IBM Software Analyzer Electronic Resource. / Официальный сайт компании IBM. — http://www-01 .ibm.com/software/awdtools/swanalyzer/
- IEEE 1003. IEEE Standards Electronic Resource. / Официальный сайт ассоциации стандартов IEEE. — http://standards.ieee.org/.
- ISO/IEC 9126. ISO Standards Electronic Resource. / Официальный сайт международной организации стандартизации. — http://www.iso.org/iso/isocatalogue/cataloguetc/cataloguedetail.htm7csn umber=50 516.
- ISO/IEC 9945. ISO Standards Electronic Resource. / Официальный сайт международной организации стандартизации. —http://www.iso.org/iso/iso catalogue/cataloguetc/catalogue detail. htm?csn umber=50 516.
- Klocwork Insight Electronic Resource. / Официальный сайт компании Klocwork. — http://www.klocwork.com
- The OpenMP API specification for parallel programming Electronic Resource. / Официальный сайт OpenMP. — http://openmp.org/wp/openmp-specifications/.
- Parasoft С++ test Electronic Resource. / Официальный сайт компании Parasoft. — http://www.parasoft.com
- SWEBOK Guide to the Software Engineering Body of Knowledge — 2004 Version. — Washington: IEEE Computer Society, 2004.
- Intel Th reading В uilding В locks Electronic R esource. / Официальный сайт. —¦ http://threadingbuildingblocks.org/.
- TIOBE Software: The Coding Standards Company / Официальный сайт компании TIOBE. — http://www.tiobe.com/index.php/content/company/Home.html
- Bouajjani A., Esparza J., Touili T. A Generic Approach to the Static Analysis of Concurrent Programs with Procedures // Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages. — New York: ACM, 2003. — p. 62−73.
- From Single Thread to Multithreaded: An Efficient Static Analysis Algorithm Electronic Resource. / Carre J-L., Hymans C.: 2009. — http://arxiv.org/PS cache/arxiv/pdff0910/0910.5 833v 1 .pdf
- Chess В., West J. Secure Programming with Static Analysis. — Addison-Wesley, 2007. —619 p.
- Callahan D., Kennedy K., Subhlok J. Analysis of Event Synchronization in Parallel Programming Tool // Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming. — New York: ACM, 1990. —p. 21−30.
- Chugh R., Voung J., Jhala R., Lerner S. Dataflow Analysis for Concurrent Programs using Datarace Detection // Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation. —New York: ACM, 2008. — p. 316−326.
- Cytron R., Ferrante J., Rosen B. et al. Efficiently Computing Static Single Assignment Form and the Control Dependence Graph // In ACM Transactions on Programming Languages and Systems. — New York: ACM, 1991. —p. 451−490.
- Emrath P., Ghosh S., Padua D. Event Synchronization Analysis for Debugging Parallel Programs // In Proceedings of Supercomputing '89. — New York: ACM, 1989. — p. 580−588.
- Emrath P., Ghosh S., Padua D. Detecting Nondeterminacy in Parallel-Programs // In IEEE Software, v.9, n.l. — Washington: IEEE Computer Society, 1992—p. 69−77.
- Emmi M., Qadeer S., Rakamaric Z. Delay-Bounded Scheduling // Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages. — New York: ACM, 2011. — p. 174−186.
- Engler D., Ashcraft K. RacerX: Effective, Static Detection of Race Conditions and Deadlocks // Proceedings of the nineteenth ACM symposium on Operating systems principles. — New York: ACM, 2003. — p. 237−252.
- Godefroid P. Model checking for programming languages using VeriSoft // Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages. — New York: ACM, 1997. — p. 174−186.
- Gotsman A., Berdine J., Cook B., Sagiv M. Thread-Modular Shape Analysis // Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation. — New York: ACM, 2007. —p. 266−277.
- Jackson D., Rinard M. Software Analysis: A Roadmap // Proceedings of the Conference on The Future of Software Engineering. — New York: ACM, 2000, —p. 133−145.
- Ladkin P., Simons B. Static Analysis of Interprocess Communication. Lecture Notes in Computer Science. — Berlin: Springer, 1995. — 145 p.
- Lai A., Reps T. Reducing Concurrent Analysis Under a Context Bound to Sequential Analysis // Formal Methods in System Design. — New York: ACM, 2009. —p. 73−97.
- Lahiri S., Qadeer S., Rakamaric Z. Static and Precise Detection of Concurrency Errors in Systems Code Using SMT Solvers // In Computer Aided Verification — Berlin: Springer, 2009. — p. 73−97.
- Naik M., Park C., Sen K., Gay D. Effective Static Deadlock Detection // Proceedings of the 31st International Conference on Software Engineering. — Washington: IEEE Computer Society, 2009. — p. 386−396.
- Naik M., Aiken A. Conditional Must Not Aliasing for Static Race Detection // Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages. — New York: ACM, 2007. — p. 327−338.
- Naik M. Effective Static Race Detection for Java. PhD thesis, Stanford University, 2008.
- Nielson F., Nielson H.R., Hankin C. Principles of Program Analysis. — Berlin: Springer, 2005. — 452 p.
- Netzer R., Ghosh S. Efficient race condition for shared-memory programs with post/wait synchronization // International Conference on Parallel Processing. — 1992. — p. 242−246.
- Peled D. Software Reliability Methods — Berlin: Springer-Verlag, 2001. — 331 p.
- Pratikakis P., Foster J., Hicks M. LOCKSMITH: Context-Sensitive Correlation Analysis for Race Detection // Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation. — New York: ACM, 2006. — p. 320−331.
- Pratikakis P., Foster J., Hicks M. LOCKSMITH: Practical Static Race Detection for C // Journal ACM Transactions on Programming Languages and Systems, Volume 33, Issue 1. —New York: ACM, 2011.
- Qadeer S., Wu D. KISS: Keep It Simple and Sequential // Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation. —New York: ACM, 2004. — p. 14−24.
- Qadeer S., Rajamani S., Rehof J. Summarizing procedure in Concurrent Programs // Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages. — New York: ACM, 2004. — p. 245−255.
- Ramanujam J., Mathew A. Analysis of Event Synchronization in Parallel Programs // In Languages and Compilers for Parallel Computing. — Berlin: Springer, 1995. — p. 300−315.
- Rinard M. Analysis of Multithreaded Programs // Lecture Notes in Computer Science, Vol. 2126/2001. — Berlin: Springer, 2001. — p. 1−19.
- Lecture Notes on Static Analysis Electronic Resource. / Schwartzbach M.: 2000. — lara.epfl.ch/web2010/media/sav08:schwartzbach.pdf.
- Terauchi T. Checking Race Freedom via Linear Programming // Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation. —New York: ACM, 2008. —p. 1−10.
- Torre S., Madhusudan P., Parlato G. Reducing Context-Bounded Concurrent Reachability to Sequential Reachability // Proceedings of the 21st International Conference on Computer Aided. — Berlin: Springer, 2009.—p. 477−492.
- Исследование и разработка системы автоматического обнаружения дефектов в исходном коде программного обеспечения. Выбор направлений исследований: отчет о НИР / СПбГПУ, Рудекой А.И.— СПб., 2008.— С. 136. № ГР 0120.0 808 661. -Инв. № 02 2009 405.
- Гайсарян С.С., Чернов А. В., Белеванцев А. А. и др. О некоторых задачах анализа и трансформации программ // Труды Института системного программирования РАН, 2004.
- Ицыксон В.М., Моисеев М. Ю., Захаров A.B. и др. Алгоритм интервального анализа для обнаружения дефектов в исходном коде программ // Информационные и управляющие системы. № 2 (39). — СПб.: Политехника, 2009. —с. 34−41.
- Ицыксон В.М., Глухих М. И. ' Язык спецификаций поведения программных компонентов // Научно-технические ведомости СПбГПУ
- СПб.: СПбГПУ, 2010. № 3. — с. 63−70.
- Карпов Ю.Г. Model Checking. Верификация параллельных и распределенных программных систем. — СПб.: БХВ-Петербург, 2010.552 с.
- Кларк Э.М., Грамберг О., Пелед Д. Верификация моделей программ: Model Checking. — М.: МЦНМО, 2002. — 416 с.
- Кулямин В.В. Методы верификации программного обеспечения // Всероссийский конкурсный отбор обзорно-аналитических статей по приоритетному направлению «Информационно-телекоммуникационные системы», 2008. — 117 с.
- Моисеев М.Ю. Итеративный алгоритм статического анализа для обнаружения дефектов в исходном коде программ // Информационные и управляющие системы. — Политехника, 2009. № 3. — с. 33−39.
- Моисеев М.Ю., Ицыксон В. М., и др. Исследование средств автоматизации обнаружения дефектов в исходном коде программ // Научно-технические ведомости СПбГПУ — СПб.: СПбГПУ, 2008. № 5.с. 119−127.
- Несов B.C., Маликов О. Р. Использование информации о линейных зависимостях для обнаружения уязвимо стей в исходном коде программ // Труды Института системного программирования РАН, 2006.