Любая последовательность символов как корректная программа
От: johny5 Новая Зеландия www.moddb.com/games/tachyon-wars1
Дата: 05.10.12 08:26
Оценка: :)
Подумал, можно ли написать такой язык программирования в котором любая случайная последовательность команд являлась бы корректной программой? Что то типа брэйнфака токо ещё круче.

Зато можно было бы программы кучами генерить, запускать и смотреть что оно умеет. Вдруг, если Толстого впихнуть — операционка выйдет...
Re: Любая последовательность символов как корректная программа
От: fplab Россия http://fplab.h10.ru http://fplab.blogspot.com/
Дата: 05.10.12 08:55
Оценка:
Здравствуйте, johny5, Вы писали:


J>Подумал, можно ли написать такой язык программирования в котором любая случайная последовательность команд являлась бы корректной программой? Что то типа брэйнфака токо ещё круче.


J>Зато можно было бы программы кучами генерить, запускать и смотреть что оно умеет. Вдруг, если Толстого впихнуть — операционка выйдет...


Знаете, есть такая народная примета: "Какой стол, такой и стул"
Приходиться заниматься гадостью — зарабатывать на жизнь честным трудом (Б.Шоу)
Re: Любая последовательность символов как корректная программа
От: jazzer Россия Skype: enerjazzer
Дата: 05.10.12 09:05
Оценка:
Здравствуйте, johny5, Вы писали:


J>Подумал, можно ли написать такой язык программирования в котором любая случайная последовательность команд являлась бы корректной программой? Что то типа брэйнфака токо ещё круче.


J>Зато можно было бы программы кучами генерить, запускать и смотреть что оно умеет. Вдруг, если Толстого впихнуть — операционка выйдет...


А в чем проблема? Берем тот же брейнфак за основу, просто увеличиваем количество инструкций до 256.
Если лень придумывать — делим пришедший символ на 32, остаток будет код команды брейнфака (т.к. их всего 8).
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: Любая последовательность символов как корректная программа
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 05.10.12 09:09
Оценка:
Да, вообще не проблема — язык программирования, в котором любой исходный текст компилируется в Hello World.
Ce n'est que pour vous dire ce que je vous dis.
Re[2]: Любая последовательность символов как корректная программа
От: johny5 Новая Зеландия www.moddb.com/games/tachyon-wars1
Дата: 05.10.12 09:18
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, johny5, Вы писали:


J>А в чем проблема? Берем тот же брейнфак за основу, просто увеличиваем количество инструкций до 256.

J>Если лень придумывать — делим пришедший символ на 32, остаток будет код команды брейнфака (т.к. их всего 8).

Хм, и правда.. а если брейнфак запустить над циклическим буффером то он не будет падать. Только он совсем простой, какой то хаотичный (этакая хэш процедура) — думаю в 99.99..% случаях ввода будет напечатан случайный символный мусор. Но даже так было бы интересно поиграться

В общем это просто для фана: к вопросу о волшебной кнопке, которую можно нажать и случайно получиться что то удобоваримое.
Re: Любая последовательность символов как корректная программа
От: WolfHound  
Дата: 05.10.12 10:10
Оценка:
Здравствуйте, johny5, Вы писали:

Jot
http://semarch.linguistics.fas.nyu.edu/barker/Iota/
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re: Любая последовательность символов как корректная программа
От: Abyx Россия  
Дата: 05.10.12 11:17
Оценка:
Здравствуйте, johny5, Вы писали:


J>Подумал, можно ли написать такой язык программирования в котором любая случайная последовательность команд являлась бы корректной программой? Что то типа брэйнфака токо ещё круче.


J>Зато можно было бы программы кучами генерить, запускать и смотреть что оно умеет. Вдруг, если Толстого впихнуть — операционка выйдет...


если программа будет достаточно большая, в ней окажется как минимум один бесконечный цикл
In Zen We Trust
Re: Любая последовательность символов как корректная программа
От: vdimas Россия  
Дата: 05.10.12 13:52
Оценка: 1 (1)
Здравствуйте, johny5, Вы писали:


J>Подумал, можно ли написать такой язык программирования в котором любая случайная последовательность команд являлась бы корректной программой? Что то типа брэйнфака токо ещё круче.


Дык, какие проблемы? Переводи символы сразу в двоичный код и скорми процессору. )))
Если у целевого процессора есть "пробелы" в кодировке системы команд (как у x86/x64), то предварительно сделать отображение исходной кодировки на валидную. Ну и правильно сказали про память — при таком отображении конвертировать инструкции таким образом, чтобы попадать в доступную память (взять модуль от деления случайного адреса на фактический размер ОП).


J>Зато можно было бы программы кучами генерить, запускать и смотреть что оно умеет. Вдруг, если Толстого впихнуть — операционка выйдет...


Ничего хорошего из этого обычно не выходит. Кто прошивает микроконтроллеры сталкивается с этим регулярно — при неудачной прошивке оно зацикливается на каком-нить мусоре очень быстро.
Re: Любая последовательность символов как корректная программа
От: uncommon Марс  
Дата: 06.10.12 01:11
Оценка:
Здравствуйте, johny5, Вы писали:


J>Подумал, можно ли написать такой язык программирования в котором любая случайная последовательность команд являлась бы корректной программой? Что то типа брэйнфака токо ещё круче.



"In general, if you think something isn't in Perl, try it out, because it usually is."
Larry Wall


#!/usr/bin/perl
                                           $==$';
                                         $;||$.| $|;$_
             ='*$ (                  ^@(%_+&~~;# ~~/.~~
         ;_);;.);;#)               ;~~~~;_,.~~,.* +,./|~
    ~;_);@-,  .;.); ~             ~,./@@-__);@-);~~,.*+,.
  /|);;;~~@-~~~~;.~~,.           /.);;.,./@~~@-;.;#~~@-;;
  ;;,.*+,./.);;#;./@,./        |~~~~;#-(@-__@-__&$#%^';$__
   ='`'&'&';$___="````"  |"$[`$["|'`%",';$~=("$___$__-$[``$__"|
              "$___"|       ("$___$__-$[.%")).("'`"|"'$["|"'#").
        '/.*?&([^&]*)&.*/$'.++$=.("/``"|"/$[`"|"/#'").(";`/[\\`\\`$__]//`;"
        |";$[/[\\$[\\`$__]//`;"|";#/[\\\$\\.$__]//'").'@:=("@-","/.",
       "~~",";#",";;",";.",",.",");","()","*+","__","-(","/@",".%","/|",
        ";_");@:{@:}=$%..$#:;'.('`'|"$["|'#')."/(..)(..)/".("```"|"``$["|
        '#("').'(($:{$'.$=.'}<<'.(++$=+$=).')|($:{$'.$=.'}))/'.("```;"|
        "``$[;"|"%'#;").("````'$__"|"%$[``"|"%&!,").${$[};`$~$__>&$=`;$_=
       '*$(^@(%_+&@-__~~;#~~@-;.;;,.(),./.,./|,.-();;#~~@-);;;,.;_~~@-,./.,
        ./@,./@~~@-);;;,.(),.;.~~@-,.,.,.;_,./@,.-();;#~~@-,.;_,./|~~@-,.
          ,.);););@-@-__~~;#~~@-,.,.,.;_);~~~~@-);;;,.(),.*+);;# ~~@-,
           ./|,.*+,.,.);;;);*+~~@-,.*+,.;;,.;.,./.~~@-,.,.,.;_)   ;~~~
             ~@-,.;;,.;.,./@,./.);*+,.;.,.;;@-__~~;#~~@-,.;;,.*   +);;
               #);@-,./@,./.);*+~~@-~~.%~~.%~~@-;;__,. /.);;#@-   __@-
                 __   ~~;;);/@;#.%;#/.;#-(@-__~~;;;.;_ ;#.%~~~~  ;;()
                      ,.;.,./@,.  /@,.;_~~@- ););,.;_   );~~,./  @,.
                      ;;;./@,./|  ~~~~;#-(@- __,.,.,.    ;_);~~~ ~@
                       -~~());;   #);@-,./@,  .*+);;;     ~~@-~~
                       );~~);~~  *+~~@-);-(   ~~@-@-_      _~~@-
                       ~~@-);;   #,./@,.;.,    .;.);@      -~~@-;
                       #/.;#-(   ~~@-@-__      ~~@-~~       @-);@
                       -);~~,    .*+,./       |);;;~        ~@-~~
                        ;;;.;     _~~@-@     -__);.         %;#-(
                        @-__@      -__~~;#  ~~@-;;          ;#,.
                        ;_,..         %);@-,./@,            .*+,
                        ..%,           .;.,./|)             ;;;)
                        ;;#~            ~@-,.*+,.           ,.~~
                       @-);            *+,.;_);;.~         ~););
                      ~~,.;         .~~@-);~~,.;.,         ./.,.;
                      ;,.*+        ,./|,.);  ~~@-         );;;,.(
                    ),.*+);                              ;#~~/|@-
                  __~~;#~~                                $';$;;
Re: Любая последовательность символов как корректная программа
От: Mamut Швеция http://dmitriid.com
Дата: 10.10.12 07:57
Оценка:
J>Подумал, можно ли написать такой язык программирования в котором любая случайная последовательность команд являлась бы корректной программой? Что то типа брэйнфака токо ещё круче.

Ну, J почти под это подходит. Так как операторы там в основном однобуквенные, то, в теории, взяв его за основу, можно придумать такой язык.


dmitriid.comGitHubLinkedIn
Re: Любая последовательность символов как корректная программа
От: von Zeppelin Россия  
Дата: 22.10.12 17:16
Оценка:
Здравствуйте, johny5, Вы писали:

J>Подумал, можно ли написать такой язык программирования в котором любая случайная последовательность команд являлась бы корректной программой? Что то типа брэйнфака токо ещё круче.


J>Зато можно было бы программы кучами генерить, запускать и смотреть что оно умеет. Вдруг, если Толстого впихнуть — операционка выйдет...


Из Википедии про PL/C:

The PL/C compiler had the unusual capability of never failing to compile any program, through the use of extensive automatic correction of many syntax errors and by converting any remaining syntax errors to output statements.

Говорят, на нем можно сонеты Шекспира скомпилировать
Re: Любая последовательность символов как корректная программа
От: dilmah США  
Дата: 22.10.12 17:47
Оценка:
J>Подумал, можно ли написать такой язык программирования в котором любая случайная последовательность команд являлась бы корректной программой? Что то типа брэйнфака токо ещё круче.

множество корректных программ на обычном языке обычно, как минимум, перечислимо, то есть их можно перенумеровать. Так что, все можно закодировать номером.
Re[2]: Любая последовательность символов как корректная программа
От: johny5 Новая Зеландия www.moddb.com/games/tachyon-wars1
Дата: 23.10.12 02:13
Оценка:
Здравствуйте, von Zeppelin, Вы писали:

VZ>Из Википедии про PL/C:

VZ>

VZ>The PL/C compiler had the unusual capability of never failing to compile any program, through the use of extensive automatic correction of many syntax errors and by converting any remaining syntax errors to output statements.

VZ>Говорят, на нем можно сонеты Шекспира скомпилировать


И я так понимаю оно просто сгенерит программу по печати сонет.
Re: Любая последовательность символов как корректная программа
От: Cyberax Марс  
Дата: 23.10.12 03:22
Оценка:
Здравствуйте, johny5, Вы писали:

J>Зато можно было бы программы кучами генерить, запускать и смотреть что оно умеет. Вдруг, если Толстого впихнуть — операционка выйдет...

http://en.wikipedia.org/wiki/INTERCAL
Sapienti sat!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.