LINUX.ORG.RU

История изменений

Исправление AndreyKl, (текущая версия) :

Суперкомпиляция сама по себе сложная. И разрабатывалась на сколько я понимаю именно для функциональных языков (имею ввиду РЕФАЛ, конечно). Попытка присобачить её к яве(?) провалилась, при этом это дело финансировалось вроде бы саном. Т.е. сложность этого дела мягко говоря не маленькая. Вроде как суперкомпилятор построен для хаскеля, но что там я лично не знаю.

Тут тонкий момент в том что система типов в функциональных языках, она не с потолка. Она из всяких там лямбда-кубов и прочих там штук. По поводу которых довольно много известно хорошего (типа вот так точно можно, а вот так точно нельзя). Для произвольной системы типов произвольного языка этих знаний нет (ну как нет.. известно много, но это либо слишком сложно, как в случай с ООП, либо довольно примитивно, как в си, например), поэтому, как я понимаю, и хорошее доказательство на этапе компиляции построить сложно. Есть системы верификации типа валгринда или рекламируемого тут часто для си++ чекера какого-то.

Т.е. я думаю поэтому и суперкомпилятор для хаскеля построен, а для других языков - нет (в смысле именно потому что у хаскеля типы в некотором смысле «хорошие»)ю

В хаскеле есть возможность писать аннотации (не помню как называется). Но это получается что то вроде отдельного расширения системы типов.

Для объектно ориентированных языков там вообще на сколько мне известно кадавр по сложности системы типов, не продерёшся.

Т.е. идея то понятная, но штука в том что «обычные» «практические» языки имеют системы типов которые позволяют делать то что с ними делают уже. Может быть этот подход удасться развить. Но отвечая на твой вопрос «почему?» - это ограничения системы типов, на сколько я себе представляю.

Исправление AndreyKl, :

Суперкомпиляция сама по себе сложная. И разрабатывалась на сколько я понимаю именно для функциональных языков (имею ввиду РЕФАЛ, конечно). Попытка присобачить её к яве(?) провалилась, при этом это дело финансировалось вроде бы саном. Т.е. сложность этого дела мягко говоря не маленькая. Вроде как суперкомпилятор построен для хаскеля, но что там я лично не знаю.

Тут тонкий момент в том что система типов в функциональных языках, она не с потолка. Она из всяких там лямбда-кубов и прочих там штук. По поводу которых довольно много известно хорошего (типа вот так точно можно, а вот так точно нельзя). Для произвольной системы типов произвольного языка этих знаний нет (ну как нет.. известно много, но это либо слишком сложно, как в случай с ООП, либо довольно примитивно, как в си, например), поэтому, как я понимаю, и хорошее доказательство на этапе компиляции построить сложно. Есть системы верификации типа валгринда или рекламируемого тут часто для си++ чекера какого-то.

В хаскеле есть возможность писать аннотации (не помню как называется). Но это получается что то вроде отдельного расширения системы типов.

Для объектно ориентированных языков там вообще на сколько мне известно кадавр по сложности системы типов, не продерёшся.

Т.е. идея то понятная, но штука в том что «обычные» «практические» языки имеют системы типов которые позволяют делать то что с ними делают уже. Может быть этот подход удасться развить. Но отвечая на твой вопрос «почему?» - это ограничения системы типов, на сколько я себе представляю.

Исходная версия AndreyKl, :

Суперкомпиляция сама по себе сложная. И разрабатывалась на сколько я понимаю именно для функциональных языков (имею ввиду РЕФАЛ, конечно). Попытка присобачить её к яве(?) провалилась, при этом это дело финансировалось вроде бы саном. Т.е. сложность этого дела мягко говоря не маленькая. Вроде как суперкомпилятор построен для хаскеля, но что там я лично не знаю.

Тут тонкий момент в том что система типов в функциональных языках, она не с потолка. Она из всяких там лямбда-кубов и прочих там штук. По поводу которых довольно много известно хорошего (типа вот так точно можно, а вот так точно нельзя). Для произвольной системы типов произвольного языка этих знаний нет, поэтому, как я понимаю, и хорошее доказательство на этапе компиляции построить сложно. Есть системы верификации типа валгринда или рекламируемого тут часто для си++ чекера какого-то.

В хаскеле есть возможность писать аннотации (не помню как называется). Но это получается что то вроде отдельного расширения системы типов.

Для объектно ориентированных языков там вообще на сколько мне известно кадавр по сложности системы типов, не продерёшся.

Т.е. идея то понятная, но штука в том что «обычные» «практические» языки имеют системы типов которые позволяют делать то что с ними делают уже. Может быть этот подход удасться развить. Но отвечая на твой вопрос «почему?» - это ограничения системы типов, на сколько я себе представляю.