Привет все.
Такой вопрос — что все мы, программисты, делаем в конечном итоге?
Первый вариант ответа — создаем файлы (исполняемые). Но ведь любой файл — это набор символов. Вот и первая идея — написать маленькую прогу, которая будет плодить перебором файлы фиксироывнной длины со всевозможным перебором символов. Поставим фильтр на выходе этой проги на форматы исполняемых файлов. После этого еще один фильтр — на непадение сразу после запуска. Получаются ВСЕ программы искомого размера. То есть если на входе этого генератора программ поставим 2 байта — то будет 255*255 переборов. Согласен, для нормальной проги переборов будет много, но ведь на то она и машина, чтобы однотипные действия выполнять.
Второй вариант ответа — создаем определенную последовательность действий процессора. По сути идея та же. Но будем перебирать не все символы подряд, а опкоды процессора, ну и со всякими там заголовками и прочими особенностями разных форматов.
Ну как идея?
04.09.03 14:08: Перенесено модератором из 'Философия программирования' — _MM_
Здравствуйте, TomRay, Вы писали:
TR>Привет все. TR>Такой вопрос — что все мы, программисты, делаем в конечном итоге? TR>Первый вариант ответа — создаем файлы (исполняемые). Но ведь любой файл — это набор символов. Вот и первая идея — написать маленькую прогу, которая будет плодить перебором файлы фиксироывнной длины со всевозможным перебором символов. Поставим фильтр на выходе этой проги на форматы исполняемых файлов. После этого еще один фильтр — на непадение сразу после запуска. Получаются ВСЕ программы искомого размера. То есть если на входе этого генератора программ поставим 2 байта — то будет 255*255 переборов. Согласен, для нормальной проги переборов будет много, но ведь на то она и машина, чтобы однотипные действия выполнять. TR>Второй вариант ответа — создаем определенную последовательность действий процессора. По сути идея та же. Но будем перебирать не все символы подряд, а опкоды процессора, ну и со всякими там заголовками и прочими особенностями разных форматов. TR>Ну как идея?
Даже если отбросить в сторону генерацию программ, проверять правильность и нужность программ кто будет?
оцени время перебора всех прог размером 1К. и сразу поймешь как тебе идея...
... << RSDN@Home 1.1 beta 1 >>
— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Здравствуйте, TomRay, Вы писали:
TR>Привет все. TR>Такой вопрос — что все мы, программисты, делаем в конечном итоге? TR>Первый вариант ответа — создаем файлы (исполняемые). Но ведь любой файл — это набор символов. Вот и первая идея — написать маленькую прогу, которая будет плодить перебором файлы фиксироывнной длины со всевозможным перебором символов. Поставим фильтр на выходе этой проги на форматы исполняемых файлов. После этого еще один фильтр — на непадение сразу после запуска. Получаются ВСЕ программы искомого размера. То есть если на входе этого генератора программ поставим 2 байта — то будет 255*255 переборов. Согласен, для нормальной проги переборов будет много, но ведь на то она и машина, чтобы однотипные действия выполнять. TR>Второй вариант ответа — создаем определенную последовательность действий процессора. По сути идея та же. Но будем перебирать не все символы подряд, а опкоды процессора, ну и со всякими там заголовками и прочими особенностями разных форматов. TR>Ну как идея?
Так ведь она далеко не новая
Re: Новая идея написания программ
От:
Аноним
Дата:
04.09.03 07:22
Оценка:
Здравствуйте, TomRay, Вы писали:
TR>Ну как идея?
Почитай Гулливера. А именно, раздел про академию Лапутян
Моя очень сильно смеяться! Моя даже тюбетейку потеряль!
Идея отличная! Только есть замечания, многие из которых ранее уже были высказаны другими.
Конечно же надо оперировать машинными командами. Это во первых. Во вторых: несложно написать генератор. Сложно сделать автомат, опеределяющий полезность кода и его функциональность. И нужны большие вычислительные мощности.
Такая идея очень подходит для вируса, обладающего возможностью мутировать и самовольно изменяющего и наращивающего свою функциональность. Однако тут тоже надо иметь органы контроля. Новый код должен отлаживаться и в случае его достаточной работоспособности (фиг его знает, как это определять) включаться в тело вируса. Не обязательно, чтобы он тут же работал. Несколько итераций и новые куски должны соединяться и определяться их работоспособность. Если все плохо, то переконфигурация.
Значит надо модуль ИИ делать. Его отладить. Либо писать нейронные сети. Говорят нейронные сети обладают сильным потенциалом в области адаптации к задачам. А еще туда встроить генетические алгоритмы. Тут нужен коллектив со специалистами в математике, кибернетике, компиляторов, низкоуровневого системного программирования. И т.п. ...
Я вот все чаще думаю:
Все великие люди уже умерли...
Вот и я себя плохо чувствую!
Здравствуйте, bkat, Вы писали:
B>Здравствуйте, TomRay, Вы писали:
TR>>Ну как идея? B>Смешно
Да, еще твою идею можно применить к любому виду деятельности
Книжки так же писать можно, машины новые создавать.
Новые сорта пива тоже (дегустатором будешь ?)
Добавим ещё пару фильтров — ну там что-то по поводу выручки от программ, которые сразу не падают.
Ты форумом не ошибся, часом? Может, в "коллеги, улыбнитесь" сразу?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Ты форумом не ошибся, часом? Может, в "коллеги, улыбнитесь" сразу?
прямого рейса из "философии" в "юмора", только с пересадкой. есть конечно перцы у которых личный транспорт. но это явно не тот случай. :)))
... << RSDN@Home 1.1 beta 1 >>
— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Re: Новая идея написания программ
От:
Аноним
Дата:
04.09.03 12:24
Оценка:
Здравствуйте, TomRay, Вы писали:
TR>Привет все. TR>...
Лет 5 тому назад один мужик (идея похоже ему тоже не принадлежит) рассказал про такой способ формировния картинок... прикинь, что можно увидеть все картинки мира, вплодь до убийцы Листьева
Было доказано (кажется, Тьюрингом), что невозможно построить программу, которая получит на вход другую программу и за конечное число шагов определит, зависнет та или нет (или верна она или нет). Доказательство построено на коцепции машины Тьюринга к модели функционирования которой сводится вычислительный процесс на современных ПК.
Если интересно — доказательство могу привести
Здравствуйте, ch00k, Вы писали:
C>Здравствуйте, TomRay, Вы писали:
TR>>Ну как идея?
C>Полный бред
C>Было доказано (кажется, Тьюрингом), что невозможно построить программу, которая получит на вход другую программу и за конечное число шагов определит, зависнет та или нет (или верна она или нет). Доказательство построено на коцепции машины Тьюринга к модели функционирования которой сводится вычислительный процесс на современных ПК. C>Если интересно — доказательство могу привести
Приведи, очень интересно.
Здравствуйте, ch00k, Вы писали:
C>Здравствуйте, TomRay, Вы писали:
TR>>Ну как идея?
C>Полный бред
C>Было доказано (кажется, Тьюрингом), что невозможно построить программу, которая получит на вход другую программу и за конечное число шагов определит, зависнет та или нет (или верна она или нет). Доказательство построено на коцепции машины Тьюринга к модели функционирования которой сводится вычислительный процесс на современных ПК. C>Если интересно — доказательство могу привести
Это называется алгоритмической неразрешимостью задачи о самоприменимости.
Я уже несколько раз о ней упоминал, когда речь шла о проблеме ИИ.
Подобные базовые вещи из теории алгоритмов каждый, кто называет себя программистом,
должен знать.
Здравствуйте, DarkGray, Вы писали:
DG>Здравствуйте, bkat, Вы писали:
DG>Никак не могу понять — какое отношение теорема о самоприменимости имеет к данной идеи?
Разве это не связанные вещи?
Самоприменимость и возможность написать программу, которая устанавливала бы возможность остановки другой программы.
Собственно достаточно иметь доказанной теорему о самоприменимости, чтобы сделать вывод
о невозможности такой программы.
Или я не прав?
Здравствуйте, bkat, Вы писали:
B>Разве это не связанные вещи? B>Самоприменимость и возможность написать программу, которая устанавливала бы возможность остановки другой программы. B>Собственно достаточно иметь доказанной теорему о самоприменимости, чтобы сделать вывод B>о невозможности такой программы. B>Или я не прав?
Приведу аналогию.
Получается примерно следующее:
сначала доказываем, что вечный двигатель невозможен, а потом из этого делаем вывод, что двигатели вообще невозможны.
зы
теорема только говорит, что нельзя написать программу, которая по любой программе сообщает заканчивается та или нет.
но она не говорит, что нельзя написать программу, которая будет определять конечность для 5%, 50%, 75% или 99% задач