Daniel Patterson and Amal Ahmed, The Next 700 Compiler Correctness Theorems
Комментарий @gabriel-fallen
Почти 30 страниц (считая список литературы), посвящённых проблеме формальной корректности раздельной компиляции.
Статья описывает спектр возможных теорем о корректности, как для whole-program, так и раздельной компиляции, и презентует обобщённый фреймворк, в который их можно поместить.
Рассматриваются четыре возможных сеттинга верифицированной раздельной компиляции:
- раздельные модули, собранные одним и тем же верифицированным компилятором из одного и того же исходного языка;
- модули, собранные разными компиляторами одного и того же исходного языка;
- модули, полученные другим компилятором другого исходного языка но с той же выразительностью;
- модули, полученные из исходного языка с большей выразительностью, семантику которого невозможно выразить в рассматриваемом исходном языке.
Через эту призму авторы делают обзор большей части существующей литературы и результатов по части верифицированной компиляции, как раздельной так и нет. Поэтому статья может служить отличным введением в проблематику и знакомством с этой областью исследований.
A Survey of Compiler Testing Junjie Chen, Jibesh Patra, Michael Pradel, Yingfei Xiong, Hongyu Zhang, Dan Hao, Lu Zhang ACM Computing Surveys Vol 53 Issue 1 Article No.: 4 pp 1–36, 2020
https://dl.acm.org/doi/10.1145/3363562
Комментарий от @ksromanov. Просто читаемый свежий обзор методов тестирования компиляторов. Статья охватывает тему с разных сторон, включая
- построение тестовых наборов программ
- определение того, ошибочна или нет компиляция
- оптимизация процесса тестирования
- обработка результатов тестирования
Статья хорошо классифицирует подходы генерации тестовых программ, давая широкий обзор существующих проектов как по методикам генерации, так и по целевым языкам программирования.
Таким образом, статью можно рекомендовать в качестве актуального и достаточно широкого введения в поле. Разумеется, для реальной работы нужны более глубокие познания, которые можно почерпнуть из библиографии статьи.