Влод
Стейтментов. Дерево строится и вызывается typecheck
то же самое можно проделать и для динамической типизации.
можно на старте запуска провести всю проверку как в статическом языке. так, конечно, никто не делает, тк тогда есть возможность сделать всё во время компиляции
Oleg
только явное сравнение и булевые результаты isinstance
Anonymous
Alexander
... от динамической (dynamic) или латентной (latent) типизации в языках вроде Scheme, в которых теги типов (type tags) используются для различения видов объектов, находящихся в куче. Термин "динамическая типизация", по нашему мнению, неверен (его следовало бы заменить на "динамически проверяемый"), но такое употребление уже общеприянято
Oleg
и сказал, что наличие промежуточной фазы проверки - и есть то, что отличает типизированный от нетипизированного
Alexander
так что подставляешь определение которое нравится и говоришь что хочешь
Oleg
Alexander
-чем?
Oleg
тег - это просто метаинформация
Alexander
что такое метаинформация?
Vasiliy
вообще, когда говорят "динамическая или статическая", почему-то такое чувство, что это как 0 или 1
Oleg
а deftype - это структурное определение, проецируемое на специализированную форму хранения
Alexander
у тебя в любом случае будет добавлен какой-то тег, который метаинформация
Влод
Oleg а у тебя есть примерные тезисы которые ты хочешь доказать? или это теперь просто вольный диалог
Anonymous
Может путаю и забыл.
Но эта дисскусия опять бесполезная.
Alexander
у тебя там будет тоже самое
Oleg
Vasiliy
динамическо-статичносность - она разная может быть
Alexander
т.к. иначе у тебя void *
Oleg
вот такой тезис
Alexander
а какая структура у void * ты узнаешь динамически из тега
Oleg
чисто формально, динамическая типизация /= утиная типизация
Alexander
как его хранить - вопрос отдельный и совершенно неважный
Alexander
вот тезис выше похож на правду
Alexander
хотя я согласен с пирсом
Alexander
и не хотел бы называть динамическую типизацию - типизацией, чтобы не путать лишний раз, но с миром не посморишь
Alexander
Oleg т.е. ты утверждаешь, что у меня есть void * и в рантайме без дополнительной информации система исполнения знает как работать со структурой?
Alexander
извини, но про патент на либастрал я пока не слышал
Oleg
у тебя есть строго опрделённые типы, строго определённые требования, и полиморфные функции, реализованные на базе этих требований и есть реализации требований для конкретных типов
Oleg
Alexander
значит у тебя есть доп информация, которую я называл "тегом", это не обязательно значение из конечного множества, может быть описание структуры
Alexander
соотв у тебя есть uni-typed язык, с разной развесистости тегом
Vasiliy
Alexander
на основе этой штуки делается динамическая система
Alexander
Vasiliy вон выше я из пирса перепечатал
Alexander
> Термин "динамическая типизация", по нашему мнению, неверен (его следовало бы заменить на "динамически проверяемый"), но такое употребление уже общеприянято
Vasiliy
да, извиняюсь, не успеваю всё читать
Alexander
я если честно начала дискусии не видел, может там какой контекст где все осмысленно и все правы
Oleg
однако Пирс не считает это "отсутствием типизации"
Vasiliy
с тем, что термин не совсем правильный, тоже согласен, но что поделаешь
Oleg
он полагает, что типизация существует, но проверяется она динамически
Vasiliy
я бы сказал, он это утверждает
Alexander
он говорит что это надо называть динамической проверкой, а не динамической типизацией
Alexander
я не знаю можно ли из этого сделать вывод, что он согласен с тем что типизация существует
Alexander
но учитывая, что в главе про полиморфизм рассматриваются и динамически типизированные, то они не выкинуты из игры
Oleg
язык по Пирсу можно было бы назвать языком с динамически проверяемой типизацией
Oleg
таким образом ну никак нельзя называть это отсутствием типов
Oleg
с чем я и спорил
Oleg
нет типов — нет и тайпклассов
Евгений
Блин, 100 сообщений спора о понятиях
Vasiliy
а вот тут на SO говорят, что в wolfram mathematica нет типов https://stackoverflow.com/questions/4558732/is-mathematica-an-untyped-language
Евгений
Вообще к теории типов понятия динамической и статической типизации не имеют никакого отношения.
С её точки зрения абстрактно нет возможности компайл-тайм от рантайма отличить. Нужно говорить об интенсиальной и эстенсиальной системе типов, то есть есть ли в языке инструменты для декларации типов или нет
Oleg
А цитата Пирса - не про то, что язык нетипизированный, а про то, что сами типы вполне статические. Т.к. они, как правило не меняются и не рождаются в зависимости от исходных данных.
Oleg
Oleg
Евгений
А статическая/динамическая типизация это больше про теорию трансляций
Vasiliy
и тишина... :D
Алдар
в эликсире что-то типа тайпклассов
Anonymous
Протоколы?
Алдар
да
Aλeχ
ну что ж вы делаете то
Aλeχ
не очерняйте святость классов типов
Aλeχ
это выше чем вся эта мишура из других языков
Aλeχ
и вообще
Aλeχ
почему эти люди приносят в наш ламповый хаскель чат
Aλeχ
свои эликсиры
Aλeχ
и кложуры
Oleg
так вот, что я вам хотел сказать про имплиститы в скале...
Oleg
Вроде не выходные и не пятница, а холивар на весь вечер затянулся :))
Нурлан
Влод
думаю ты исключительный
Arseniy
Ну что подразумевать под "знать".
Сережа
Тот кто не знает других языков кроме хаскеля, не знает другой пищи, кроме мамкиного борща. Как вам такой вывод типов по алгоритму Хиндли-Милнера?