naive typing ©

Sep 14, 2009 18:42


тем временем я все более и более прихожу к выводу что наличие массивов в языке как встроенных типов, а не библиотеки, есть жуткая ересь

муравьи, виртуальные машины, meta-development

Leave a comment

Comments 19

dark_aurel September 14 2009, 15:54:51 UTC
Почему?

Reply

_winnie September 14 2009, 19:48:04 UTC
Например, такое рассуждение:

Если язык не позволяет создать эффективный и удобный массив как библиотеку, значит он не позволит создать свою структуру данных, эффективную и удобную.

Впрочем, я не до конца согласен с автором поста. 90% объектов-контейнеров использующихся в коде - это одномерный список, который хочется фильтровать, итерироваться, склеивать, надеятся на помощь оптимизатора, использовать сжатый удобный синтаксис для всего этого.

Reply

dark_aurel September 14 2009, 20:39:07 UTC
Вам не кажеться, что: "наличие массивов в языке как встроенных типов, а не библиотеки" != "язык не позволяет создать эффективный и удобный массив как библиотеку"?

Reply

_winnie September 14 2009, 20:48:24 UTC
Если можно без потерь библиотекой, то лучше не встраивать - легче работать с таким, когда всякие множества-очереди-стеки-хешмапы-массивы-двусвязные списки-сортировки отделены от внутренностей транслятора. И автору транслятора (авторам трансляторов), и пользователям транслятора (трансляторов).

Reply


ev_genus September 14 2009, 21:45:39 UTC
тем временем я все более и более прихожу к выводу что наличие в языке встроенных типов, есть жуткая ересь

Reply

nponeccop September 14 2009, 23:09:43 UTC
Тут можно пойти дальше - наличие в языке встроенной фиксированной системы типов есть жуткая ересь. Т.е. в правильных языках мы всегда можем определить нужную нам систему типов средствами самого языка ( ... )

Reply

wizzard0 September 15 2009, 07:11:13 UTC
Без встроенных типов не совсем очевидно, как из этого генерировать эффективный байткод\нейтив код. А вообще, см. коммент про "особенный тип" - основная претензия именно к этому.

Да, еще a must чтобы типы были first-class citizens, вот. Иначе скучно и никакой meta-extensibility

Reply

nponeccop September 15 2009, 14:09:33 UTC
> a must чтобы типы были first-class citizens

отнюдь. В сложных универсальных системах типов пропадают важные свойства - например, principal typing.

> Иначе скучно и никакой meta-extensibility

Meta-extensibility можно достичь и без мудрёной системы типов, путем quoting в стиле лиспа.

Поэтому в принципе для разных задач оптимальны разные системы типов и разные средства метапрограммирования.

Reply


nponeccop September 14 2009, 23:37:08 UTC
В бекенде нужно что-то подобное typed assembly language с адресной арифметикой. Во фронт-энде - возможность безопасной реализации чего-то (в том числе, скажем, unboxed-unchecked arrays) поверх этого TAL.

Если не делать низкоуровневых фич в языке, то массивы - один из важных (для достижения производительности) встроенных строительных блоков.

Reply

wizzard0 September 15 2009, 07:09:48 UTC
Типизированный ассемблер - это, кажется, правильно, только вот я пока хз как его сделать так, чтобы он не стал потом ограничением.

Reply

nponeccop September 15 2009, 13:39:46 UTC
читайте литературу

Reply


Leave a comment

Up