|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Zapadinsky Anatoly \(ZAB\) 2:5020/400 13 Jun 2001 15:28:53 To : All Subject : Hа: Hеразрешимая задача -------------------------------------------------------------------------------- "Sergey Andrianov" <Sergey.Andrianov@p40.f13.n5017.z2.fidonet.org> сообщил/сообщила в новостях следующее: news:992338169@p40.f13.n5017.z2.ftn... > Здравствyй, yважаемый Zapadinsky! > > 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у вот ты и сам ответил на свой вопрос. > По определению язык низкого уровня - описывает систему команд конкретной > вычислительной установки, я язык высокого уровня - платформонезависим. Исходя > из твоих условий, язык, о котором ты спрашиваешь, может быть _только_ высокого > уровня. > Кстати, насчет "теоретически невозможно", ты, пожелуй, погорячился. > Остановимся на "практически невозможно" или "не имеет смысла". Hу, вобщем можно, но не для всех задач, есть например алгоритмы считающие что-либо бесконечно приближаясь к результату, на идеальную компиляцию такого алгоритма уйдёт бесконечность, т.к. результат хотя и зависит от вычислений, но компилятор не может просто подсчитать и подставить результат (именно это бы и являлось идиальной оптимизацией). > ZZ> Hа мой взгляд есть теоретически возможный > ZZ> вариант решения этой проблемы - трансляция алгоритма в простейшие > ZZ> булевы функции и сравнение на 0, с последующим поиском совпадений > ZZ> отдельных кусков с функциями (операциями) присутствующими в коде > ZZ> данной машины, но это решение невозможно реализовать практически, т.к. > ZZ> потребует нереально много памяти (попробуйте транслировать тот же sin > ZZ> в такой вид и обратно) а так же нереальных вычислительных затрат на > ZZ> последующий поиск совпадений, я не говорю о том, что при такой > ZZ> трансляции надо будет учитывать особенности машины, например > ZZ> суперскалярность, и т.д. > Вообще-то идея трансляции текста на ЯВУ в промежуточный код не нова и с > успехом использовалась даже на машинах, по сравнению с которыми и ХТ выглядит > суперкомпьютером. Т.е. ЯВА и есть то, что я описал, и оно работает? Если да, то где можно взять информацию о этих чудо разработках? --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/6577c3d32511.html, оценка из 5, голосов 10
|