May 3rd, 2018

Ещё один перевод на хабр

Перевод статьи "Сколько стоит компилятор?"

Статья любопытная, компания Embecosm разрабатывает компиляторы для специализированных систем заказчика. В статье описывается опыт создания компилятора на основе LLVM для некоторого 16-битного DSP, приводятся основные этапы работы и оценки сроков.

Есть несколько любопытных моментов.

Во-первых, они зачем-то сделали 16-битный char. Я знаю также,что у какого-то известного производителя также был компилятор для их DSP с 16-битным char. Я также знаю, что это допустимо по стандарту С. Я только не понимаю, зачем так делать. То, что ядро 16-битное, не означает, что char также должен быть 16-битный. К тому же, LLVM просто так не собирается с типом char, отличным от 8 бит (я проверял), но они как-то это сделали. Вообще, они про это тоже пишут, в другой статье, но я её ещё не читал. И я считаю, что если так сделать, наверняка отвалятся какие-нибудь оптимизации (хотя я это не проверял). И в любом случае, это вызовет у многих программистов вопросы, потому что очень многие библиотеки могут просто неправильно работать при нестандартном размере char.

Во-вторых, оценки сроков у них сильно занижены, имхо. Даже учитывая, что у них был готовый ассемблер и линкер, и работала группа из 5 человек, они потратили на всю работу 120 человеко-дней, это просто нереально маленький срок. Может быть, они такие суперэксперты, конечно, но имхо, 120 рабочих дней не хватит даже на создание прототипа. Реальный срок разработки в несколько раз больше. Но это опять же, по моему мнению.

В-третьих, то, что компания-заказчик включила в группу разработки своего человека, это просто суперграмотное решение. Я не могу представить такое в наших реалиях.