Страницы

Поиск по вопросам

среда, 18 декабря 2019 г.

Технология проверки компиляторов

#компилятор #тестирование #компиляция


Как проверяют компиляторы вообще? На соответствие стандартам (при разборе кода),
на корректность генерируемого кода (вообще и с оптимизацией)? Например, для компилятора
языка Си, как широко распространённого.
Стандарты гигантские же, да и возможных конструкций и сочетаний может быть дофига.
Просто набор тестов или что-то иное?    


Ответы

Ответ 1



"The LLVM Compiler Infrastructure" имеет "LLVM Test Suite" набор юнит тестов компиляция которых может считаться необходимым условием правильной установки backtend. CLANG/GCC - имеют свои наборы тестов. К тому же, эти проекты имеют свои багтрекеры, на которых отмечаю замеченные проблемы. Например когда Линус нашел проблему в бете GCC 5.0, об этом узнали все it-сми.

Ответ 2



Так же, как и прочие программы: тестами. Автоматическмими доказывалками теорем (если я правильно понял): http://en.wikipedia.org/wiki/CompCert Также компилятор Си, написанный на Си, должен уметь скомпилировать свой исходный код. Причём если такая цепочка сходится (то есть получился такой же исполняемый файл), то это хороший знак.

Комментариев нет:

Отправить комментарий