vm?
ну как минимум - меньше кода на проверки типов, можно наплодить оптимизаций относительно типов
Я не разбираюсь в компилях прям основательно, но верно я понимаю, что в vm тоже проверка типов не нужна? Или, если нужна, то эту вот "фишечку" с убиранием проверки типов и туда можно добавить, при этом сохранив и другие преимущества vm.
Ну зависит от ВМ, но в целом нужна, хотя бы для того, чтобы определять что значит какой-нибудь "+" - склейку строк, сложение чисел или объединение множеств и т.д.
Я их код не смотрел, но предположу, что они могут например в ВМ встроить например какие-нибудь оптмизированные операции, типо сложения массивов или матричного умножения, а также в целях оптимизации уменьшать в отдельных случаях глубину дерева. В целом такие штуки могут усложнять ВМ, но при этом давать ускорение в типичных операциях(наиболее частотных, например та же алгебра и геометрия для игр)
Конкатенацию строк можно обозначить и &. Тогда "плюс" ( +) однозначно будет означать арифметическую операцию. Над string (s) тоже: с неявно конвертацией в число. См. ЯП Clarion ( 1986 - н.в.)
Обсуждают сегодня