Size: a a a

Compiler Development

2020 February 11

MM

Mikhail Maltsev in Compiler Development
Алексей
Хотя чего это я. Даже если говорить про тривиальщину типа hello world, на плюсах уже интересная магия происходит с cout, перегрузкой операторов, инклюдами, неймспейсами.
Скоро в стандартные библиотеки завезут https://en.cppreference.com/w/cpp/utility/format
и вывод текста будет как в питоне.
источник

AH

Ayrat Hudaygulov in Compiler Development
источник

AH

Ayrat Hudaygulov in Compiler Development
Интересные дизайн ноуты по карированнию в фшарпе
источник

EO

Eugene Obrezkov in Compiler Development
Годное интервью
источник

EO

Eugene Obrezkov in Compiler Development
Смотрел пару лет назад
источник

KR

K R in Compiler Development
Mikhail Maltsev
Скоро в стандартные библиотеки завезут https://en.cppreference.com/w/cpp/utility/format
и вывод текста будет как в питоне.
Очень жаль, что не строковая интерполяция.
источник

MM

Mikhail Maltsev in Compiler Development
Для этого надо было бы std::string и форматирование затащить в core language, на такое комитет вряд ли пойдёт. В Python в отличие от C++ строки всегда были встроенными типами.
источник

KR

K R in Compiler Development
Ну std::format мне кажется более менее бесполезным. Есть же printf, покрывающий множество простых случаев. И там есть статическая проверка типов в gcc/clang/msvc.
источник

AT

Alexander Tchitchigin in Compiler Development
https://eli.thegreenplace.net/2012/07/12/computed-goto-for-efficient-dispatch-tables/ для отсталых вроде меня, кто не слышал про такое весёлое колдунство. 😊
источник

KR

K R in Compiler Development
Интересно, а нельзя сделать просто оптимизацию в компиляторе, которая меняет switch на computed goto? Ну с добавлением bound check? У нас же часто стоят switch по содержимому какого-то enum, т.е. индексы идут сплошняком.
источник

E

EgorBo in Compiler Development
так это и оптимзируется
источник

E

EgorBo in Compiler Development
в так называемые джамп тейблы
источник

KR

K R in Compiler Development
Тогда какая выгода от этого колдунства, кроме убирания проверки на "default"?
источник

E

EgorBo in Compiler Development
всмысле какая? обычный свитч без оптимзиаций - это десяток подряд идущих сравнений/тестов
источник

E

EgorBo in Compiler Development
джамп тейбл - это прыгнуть сразу в нужную ветку минуя другие
источник

KR

K R in Compiler Development
Я имею ввиду, что если в компиляторе всё равно делается jump table, то зачем заниматься колдунством с переписыванием switch?
источник

E

EgorBo in Compiler Development
незачем
источник

E

EgorBo in Compiler Development
только если ты думаешь что ты умнее компилятора
источник

E

EgorBo in Compiler Development
вот пример из статьи в кланге
источник

E

EgorBo in Compiler Development
источник