LINUX.ORG.RU

Не все бейсики поддерживали команду LIST в режиме интерпретации.

anonymous
()
Ответ на: комментарий от vahvarh

>может лучше чего-нить полезное сделаем? (знаю-знаю, это _необычное_ предложение)

wiki

record ★★★★★
()
Ответ на: комментарий от vahvarh

>может лучше чего-нить полезное сделаем?

Ну давай. Ты фотошоп под линукс на выходных набросаешь, я автокад и солидворкс.

anonymous
()

Лучше написать программу, которая распечатывает исходный код другой программы, например, iexplore.exe

madcore ★★★★★
()
Ответ на: комментарий от madcore

> Лучше написать программу, которая распечатывает исходный код другой программы, например, iexplore.exe

Чисто чтоб поржать?

anonymous
()
Ответ на: комментарий от madcore

Ну так кто напишет программу, которая будет распечатывать исходники Виндовса?

anonymous
()
Ответ на: комментарий от madcore

Не произвольные, а выводящие текст друг друга.

anonymous
()

на коммандном интерпретаторе windows:

----------1.bat begin-------------
set 1-1
-------------end------------------

на перле:
----------1.pl begin-------------
system("cat 1.pl");
-------------end------------------

На интерпретируемых это вообще очень просто...

Orlangoor ★★★★★
()
Ответ на: комментарий от Orlangoor

Так происходит чтение файла 1.pl Это уже неитересно Насколько я понял имелось ввиду чтобы программа САМА выводила код другой

cvs-255 ★★★★★
()

Lisp:

====== начало программы ======
T
===== конец программы =======

anonymous
()

Есть дзен-вариант: Просто создать пустой файл. Эта программа не содержит кода, и, соответственно, ничего не выводит. Работает для любого интерпритируемого языка.

kranky ★★★★★
()
Ответ на: комментарий от kranky

Но пустой файл не подходит под определение программы, ибо не является набором инструкций. И не надо тут меня лечить про пустые наборы, не надо.

anonymous
()

>10 list

Это грязный хак. Использовать обращения к интерпретатору и трюки с ОС, как правило, запрещены правилами.

Davidov ★★★★
()
Ответ на: комментарий от geek

Ну это же чисто академическая задача.

anonymous
()

Всех умных ты давно уже забанил, остались только мы - тупые.

Morgendorffer
()
Ответ на: комментарий от anonymous

На хабре совсем недавно был такой интересный куайн: программа на Haskell выводит код на Python, который выводит код на Ruby, который снова выводит код на Haskell.

rexadecimal
()

вот это прикольней


#!/usr/bin/perl
$_='
         $q ="\                   47"; wh
        ile                           ($ ;=
      $z                +=              .5 ){
    %c=           $r=0;$/ ="";whi         le(2
   0+          $z>($;+=.05)){$c{int$       _+ 2
  6+         2*($              r+= .0       2) *
 s          in$                   ;}{1       -$_
+1         0+           int        $r*c       o s
$         ;}         =1for(0.       .1)        }$
t        =r         ever se;$        /.        =`
c        le        ar     `.         "         #!
/        usr       /bi             n/         pe
rl       \n\       $_ =$q        \n"          ;
fo        r$y        (1..20){$c{$_}          {
$ y       }? $         /.=chop$t            :
 ($/        . ="                          \4
 0")         for(0.                    .53)          ;
   $/.        ="\n"}pri            nt"$/$          q;
   s; ".         chr(9 2)."s;;g;eval\n           "}

';s;\s;;g;eval

alex_custov ★★★★★
()
Ответ на: комментарий от geek

> "нормальная ФриБСД" - это оксюморон

а как оно должно звучать, что бы изменился смысл ?) "говнистый GNome" ?)

phasma ★☆
()
Ответ на: комментарий от matich

>А на BrainFuck'е слабо ?

>>+++++++>>++>>++++>>+++++++>>+>>++++>>+>>+++>>+>>+++++>>+>>++>>+
>>++++++>>++>>++++>>+++++++>>+>>+++++>>++>>+>>+>>++++>>+++++++>>+
>>+++++>>+>>+>>+>>++++>>+++++++>>+>>+++++>>++++++++++++++>>+>>+>>
++++>>+++++++>>+>>+++++>>++>>+>>+>>++++>>+++++++>>+>>+++++>>+++++
++++++++++++++++++++++++>>+>>+>>++++>>+++++++>>+>>+++++>>++>>+>>+
>>+++++>>+>>++++++>>+>>++>>+>>++++++>>+>>++>>+>>++++++>>+>>++>>+>
>++++++>>+>>++>>+>>++++++>>+>>++>>+>>++++++>>+>>++>>+>>++++++>>++
>>++++>>+++++++>>+>>+++++>>+++++++>>+>>+++++>>+>>+>>+>>++++>>+>>+
+>>+>>++++++>>+>>+++++>>+++++++>>+>>++++>>+>>+>>++>>+++++>>+>>+++
>>+>>++++>>+>>++>>+>>++++++>>+>>+++++>>+++++++++++++++++++>>++>>+
+>>+++>>++>>+>>++>>++++>>+++++++>>++>>+++++>>++++++++++>>+>>++>>+
+++>>+>>++>>+>>++++++>>++++++>>+>>+>>+++++>>+>>++++++>>++>>+++++>
>+++++++>>++>>++++>>+>>++++++[<<]>>[>++++++[-<<++++++++++>>]<<++.
.------------------->[-<.>>+<]>[-<+>]>]<<[-[-[-[-[-[-[>++>]<+++++
++++++++++++++++++++++++>]<++>]<++++++++++++++>]<+>]<++>]<<[->.<]<<]

Orlangoor ★★★★★
()

попытался своять на С (компилить надо с флагом -g):

#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

#define OFFSET 0x10e2
#define BUFF_SIZE (size_t)256

int main(int argc, char** argv){

char* filename [BUFF_SIZE];
filename [0] = '\0';
char* dirname [BUFF_SIZE];
dirname [0] = '\0';

int self = open (argv [0], O_RDONLY);
lseek (self, OFFSET, SEEK_SET);
read (self, filename, BUFF_SIZE);
size_t filename_size = strlen ((const char*) filename);
lseek (self, OFFSET + filename_size + 1, SEEK_SET);
read (self, dirname, BUFF_SIZE);
size_t dirname_size = strlen ((const char*) dirname);

printf ("filename: %s\n", filename);
printf ("dirname: %s\n", dirname);

char* full_filename = (char*) malloc (filename_size + dirname_size + 2);
strncpy (full_filename, (const char*) dirname, dirname_size);
full_filename [dirname_size] = '/';
strncpy (full_filename + dirname_size + 1, (const char*) filename, filename_size);
full_filename [dirname_size + filename_size + 1] = '\0';

printf ("fullname: %s\n", full_filename);

int source = open (full_filename, O_RDONLY);
free (full_filename);

char* buff [BUFF_SIZE];
memset (buff, '\0', BUFF_SIZE);
while (read (source, buff, BUFF_SIZE)){
printf ("%s", buff);
memset (buff, '\0', BUFF_SIZE);
}

printf ("\n");

close (source);
close (self);

}

ps правда чтобы работало надо задать правильное смещение OFFSET %)

ale ★★
()

у меня курсач такой был .. на си. 
Но не помню. 

cavia_porcellus ★★★★
()
Ответ на: комментарий от Orlangoor

> Баян годов этак 60х-70х... Андрей, вы немного отстали от жизни ;)

Ничего ты не понимаешь, это же старое доброе олдскульное ретро. Из тех же времён, что драгс-унд-секис-удн-рокин-ролл.

Gharik
()

>А на С? 




int main()
{
char a[] = "int main()%c{%cchar a[] = %c%s%c;%cprintf(a, 0x0A, 0x0A, 0x22, a, 0x22, 0x0A, 0x0A);%c}";
printf(a, 0x0A, 0x0A, 0x22, a, 0x22, 0x0A, 0x0A);
}

chicane
()
Ответ на: комментарий от chicane

#include <stdio.h>
int main()
{
char a[] = "#include <stdio.h>%cint main()%c{%cchar a[] = %c%s%c;%cprintf(a, 0x0A, 0x0A, 0x0A, 0x22, a, 0x22, 0x0A, 0x0A);%c}";
printf(a, 0x0A, 0x0A, 0x0A, 0x22, a, 0x22, 0x0A, 0x0A);
}


чтоб компилятор вообще не матерился

chicane
()
Ответ на: комментарий от Orlangoor

Это баян 1938-го года. Называется Kleene's Second Recursion Theorem.

grob ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.