{"title":"形式验证但高效静态分析的实用性,尤其是针对形式验证编译器的静态分析","authors":"David MonniauxVERIMAG - IMAG","doi":"arxiv-2407.08258","DOIUrl":null,"url":null,"abstract":"Formally verified compilers and formally verified static analyzers are a\nsolution to the problem that certain industries face when they have to\ndemonstrate to authorities that the object code they run truly corresponds to\nits source code and that it satisfies certain properties. From a scientific and\ntechnological point of view, they are a challenge: not only a number of\nnontrivial invariants and algorithms must be proved to be correct, but also the\nimplementation must be reasonably effective so that the tools operate within\nreasonable time. Many optimizations in compilers rely on static analysis, and\nthus a formally verified compiler entails formally verified static analyses.In\nthis article, we explain some difficulties, possible solutions, design choices\nand trade-offs pertaining to verified static analysis, in particular when the\nsolution of the analysis is expressed as some form of tree, map or set.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2024-07-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Pragmatics of Formally Verified Yet Efficient Static Analysis, in particular for Formally Verified Compilers\",\"authors\":\"David MonniauxVERIMAG - IMAG\",\"doi\":\"arxiv-2407.08258\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Formally verified compilers and formally verified static analyzers are a\\nsolution to the problem that certain industries face when they have to\\ndemonstrate to authorities that the object code they run truly corresponds to\\nits source code and that it satisfies certain properties. From a scientific and\\ntechnological point of view, they are a challenge: not only a number of\\nnontrivial invariants and algorithms must be proved to be correct, but also the\\nimplementation must be reasonably effective so that the tools operate within\\nreasonable time. Many optimizations in compilers rely on static analysis, and\\nthus a formally verified compiler entails formally verified static analyses.In\\nthis article, we explain some difficulties, possible solutions, design choices\\nand trade-offs pertaining to verified static analysis, in particular when the\\nsolution of the analysis is expressed as some form of tree, map or set.\",\"PeriodicalId\":501197,\"journal\":{\"name\":\"arXiv - CS - Programming Languages\",\"volume\":null,\"pages\":null},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2024-07-11\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"arXiv - CS - Programming Languages\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/arxiv-2407.08258\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Programming Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2407.08258","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Pragmatics of Formally Verified Yet Efficient Static Analysis, in particular for Formally Verified Compilers
Formally verified compilers and formally verified static analyzers are a
solution to the problem that certain industries face when they have to
demonstrate to authorities that the object code they run truly corresponds to
its source code and that it satisfies certain properties. From a scientific and
technological point of view, they are a challenge: not only a number of
nontrivial invariants and algorithms must be proved to be correct, but also the
implementation must be reasonably effective so that the tools operate within
reasonable time. Many optimizations in compilers rely on static analysis, and
thus a formally verified compiler entails formally verified static analyses.In
this article, we explain some difficulties, possible solutions, design choices
and trade-offs pertaining to verified static analysis, in particular when the
solution of the analysis is expressed as some form of tree, map or set.