|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Sergey Andrianov 2:5017/13.40 12 Jun 2001 09:20:30 To : Zapadinsky Anatoly \(ZAB\) Subject : Hеразрешимая задача -------------------------------------------------------------------------------- Hедавно, Пон Июн 11 2001 в 13:30, некто Zapadinsky Anatoly \(ZAB\) писал All по поводy Hеразрешимая задача : ZZ> Есть ли в природе разработки по кроссплатформенному языку (коду), ZZ> позволяющему переносить любой алгоритм на любую машину (даже ту, ZZ> которой пока нет, т.е. которая может быть создана в будущем) Коль скоро все компьютеры можно считать в каком то смысле эквивалентными (машина Тьюинга), то естественно, любой алгоритм можно перенести на любую машину. ZZ> с созданием (компиляцией или трансляцией) в машинный код с ZZ> получением идеального ZZ> (использующего все инструкции данной машины, которые можно применить ZZ> для данного алгоритма, и максимально оптимизированного, с учётом всех ZZ> особенностей данной машины, к примеру 5-ти уровневого кэша и т.д.) ZZ> кода? А как ты думаешь, это хотя бы в принципе возможно? Кстати, _оптимальный_ и _использующий все инструкции_ - это совершенно различные и в большинстве случаев взаимно противоречивые требования. ZZ> Все мои познания в этой области сводятся к тому, как решили эту ZZ> задачу создатели UNIX'а, т.е. использование языка высокого уровня, и ZZ> к ZZ> некоему SLED'у, языку, по словам создателей, ещё более общему ZZ> (высокоуровневому) чем тот же C. Это не является идеальным решением ZZ> задачи, т.к. нет компилятора языка высокого уровня, позволяющего ZZ> обрабатывая все циклы и ветвления достигать идеального кода, это ZZ> теоретически невозможно. Hу вот ты и сам ответил на свой вопрос. По определению язык низкого уровня - описывает систему команд конкретной вычислительной установки, я язык высокого уровня - платформонезависим. Исходя из твоих условий, язык, о котором ты спрашиваешь, может быть _только_ высокого уровня. Кстати, насчет "теоретически невозможно", ты, пожелуй, погорячился. Остановимся на "практически невозможно" или "не имеет смысла". ZZ> Hа мой взгляд есть теоретически возможный ZZ> вариант решения этой проблемы - трансляция алгоритма в простейшие ZZ> булевы функции и сравнение на 0, с последующим поиском совпадений ZZ> отдельных кусков с функциями (операциями) присутствующими в коде ZZ> данной машины, но это решение невозможно реализовать практически, т.к. ZZ> потребует нереально много памяти (попробуйте транслировать тот же sin ZZ> в такой вид и обратно) а так же нереальных вычислительных затрат на ZZ> последующий поиск совпадений, я не говорю о том, что при такой ZZ> трансляции надо будет учитывать особенности машины, например ZZ> суперскалярность, и т.д. Вообще-то идея трансляции текста на ЯВУ в промежуточный код не нова и с успехом использовалась даже на машинах, по сравнению с которыми и ХТ выглядит суперкомпьютером. Hе прощаюсь Sergey --- --- Да будет свет ! --- * Origin: Sergiev Posad <Ferma> Sergey Andrianov (2:5017/13.40) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/32743b25e0f9.html, оценка из 5, голосов 10
|