Program wyświetlający swój kod źródłowy

0

Witam!
Niebanalny problem do rozwiązania i czy w ogóle da go się rozwiązać a mianowicie jak zrobić program, który wyświetla swój kod źródłowy (bez odwoływania się do plików źródłowych i pisania w programie kodu źródłowego "na sztywno");
Prawdopodobnie jest możliwe napisanie "takiego czegoś", ponieważ wykładowca od informatyki tak mówi :)

0

http://4programmers.net/file.php?id=1428
http://www.google.pl/search?hl=pl&q=quine&btnG=Szukaj+z+Google&lr=

albo masz po prostu kod (w BrainFucku, ale co tam ;)):

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

bez odwoływania się do plików źródłowych i pisania w programie kodu źródłowego "na sztywno"

jesli to nie jest asm to sie nie da, poza tym w przypadku asm i tak bylaby to ponowna dekompilacja

0

jesli to nie jest asm to sie nie da, poza tym w przypadku asm i tak bylaby to ponowna dekompilacja

Kurde.. IQ ludzi na tym forum chyba gwałtownie spada...
Przeczytałeś chociaż jakąś stronę z podanych powyższych?
Zresztą post nad Twoim obala tą teorię...

0

jesli to nie jest asm to sie nie da, poza tym w przypadku asm i tak bylaby to ponowna dekompilacja

Kurde.. IQ ludzi na tym forum chyba gwałtownie spada...
Przeczytałeś chociaż jakąś stronę z podanych powyższych?
Zresztą post nad Twoim obala tą teorię...

Vogel: spokojnie.
IQ ludzi tutaj nie spada... jedynie dołączają pewne wyjątkowo tępe osobniki, no i inne, które już długo tutaj są, też odpuścić nie chcą. Czytanie ze zrozumieniem, to duży problem w naszym społeczeństwie. Tego nie przeskoczysz. Rób jak ja "olej ciepłym moczem" (albo jak się nudzisz, to usuwaj takie głupoty).

0

Kurcze, dwano już tu nie bylem ale widzę, że moderatorzy nadal sztywno trzymają się swoich zasad i konsekwentnie przerabiaja serwis na kupe gówna.

I pomyslec, że kiedyś, zanim p. Adam wybrał stado jełopów na moderatorów, był to jeden z najlepszych serwisów o programowaniu.

I ciągle jest, m.in. dzięki tym, jak ich nazwałeś, "jełopom". Skoro dla Ciebie poziom jest za niski, to przecież nikt Ci nie każe zaglądać do tego serwisu. A my płakać nie będziemy.

// DOPISANE:
Tak, ale TYLKO konstruktywną.

0

Kurcze, dwano już tu nie bylem ale widzę, że moderatorzy nadal sztywno trzymają się swoich zasad i konsekwentnie przerabiaja serwis na kupe gówna.

I pomyslec, że kiedyś, zanim p. Adam wybrał stado jełopów na moderatorów, był to jeden z najlepszych serwisów o programowaniu.

Powiedz mi, co w naszych zasadach Ci nie pasuje dokładnie. Konstruktywną krytykę zawsze bierzemy pod uwagę.

0

Kurde.. IQ ludzi na tym forum chyba gwałtownie spada...
Przeczytałeś chociaż jakąś stronę z podanych powyższych?
Zresztą post nad Twoim obala tą teorię...

Vogel: spokojnie.
IQ ludzi tutaj nie spada... jedynie dołączają pewne wyjątkowo tępe osobniki, no i inne, które już długo tutaj są, też odpuścić nie chcą. Czytanie ze zrozumieniem, to duży problem w naszym społeczeństwie. Tego nie przeskoczysz. Rób jak ja "olej ciepłym moczem" (albo jak się nudzisz, to usuwaj takie głupoty).

napisalem ze sie nie da w jezykach wysokiego poziomu bo bylem swiecie przekonany ze tak jest. Otoz moj tok myslenia byl taki, ze

ShowMessage( 'ShowMessage('+#39+#39+');');

nigdy nie pokaze zrodla bo zrodlo to

ShowMessage( 'ShowMessage('+#39+#39+');');

a nie samo ShowMessage('');

 wyswietlone w okienku.

link przejzalem i kiedy natrafilem na wypowiedz Marooned ze takie cos w jezyku wysokiego poziomu jest niewykonalne to utwierdzilo mnie to w moim przekonaniu. Jak widac rozwiazanie problemu jest, a moj blad byl w tym ze nie sprawdzilem tego i nie przeczytalem watku do konca. Tak wiec nie widze aby problem lezal w moim malpim rozumie lub nie zrozumieniem przeze mnie tego co przeczytalem.



// może w zbytnim zaufaniu w wiedzę Marooneda??

// moze ale nie on jeden tak sie rozpisywal w tym watku, poza tym to bylo machinalne, skoro ktos potwierdzil moja mysl to nabralem pewnosci, owszem schematyczne myslenie to zla rzecz, ale coz stalo sie
0

in lisp


((lambda (x) (list x (list (quote quote) x)))
(quote (lambda (x) (list x (list (quote quote) x)))))

in basic


5 P$="+CHR$(34):PRINT MID$(P$,35)+P$+P$'5 P$="+CHR$(34):PRINT
MID$(P$,35)+P$+P$'5 P$="

If a line number is not required, 80 characters suffice:

P$="+CHR$(34):PRINT MID$(P$,35)+P$+P$'P$="+CHR$(34):PRINT
MID$(P$,35)+P$+P$'P$="

in pascal


program s;const a=;begin writeln(be,b,a:1,a,a:4,b,be,a:3,b,b,a:1,a)end.';be='program s;const a';b='=;begin writeln(be,b,a:1,a,a:4,b,be,a:3,b,b,a:1,a)end.

program s;const p='program s;const p=';a='a';aa=;';aaa='a=;aaaa
=`';aaaaa='begin write(p,aaaa,p,aa,aaa,a,aa,a,aaa,aaaa,aa,aa,a,a,
aaa,aaa,aaaa,aa,a,a,a,aaa,aaaa,aaaa,aa,a,a,a,a,aaa,aaaaa,aa,aaaaa)
end.';begin write(p,aaaa,p,aa,aaa,a,aa,a,aaa,aaaa,aa,aa,a,a,aaa,aaa,
aaaa,aa,a,a,a,aaa,aaaa,aaaa,aa,a,a,a,a,aaa,aaaaa,aa,aaaaa)end.

tu 6 programów w C
char *f="char *f=%c%s%c;%c#define Q '%c'%c#define N '%cn'%c#define B '%c%c'%c#include <stdio.h>%cvoid main(){printf(f,Q,f,Q,N,Q,N,B,N,B,B,N,N,N);}%c";
#define Q '"'
#define N '\n'
#define B ''
#include <stdio.h>
void main(){printf(f,Q,f,Q,N,Q,N,B,N,B,B,N,N,N);}

#include <stdio.h>
int main ()
{
int c;
FILE *f = fopen (FILE, "r");
if (!f) return 1;
for (c=fgetc(f); c!=EOF; c=fgetc(f))
putchar (c);
fclose (f);
return 0;
}

#define q(k)main(){puts(#k"\nq("#k")");}
q(#define q(k)main(){puts(#k"\nq("#k")");})

#include<stdio.h>
main(){charc=""#include<stdio.h>%cmain(){charc=%c%c%c%.102s%cn%c;printf(c+2,c[102],c[1],*c,*c,c,*c,c[1]);exit(0);}\n";printf(c+2,c[102],c[1],*c,*c,c,*c,c[1]);exit(0);}

main(a){a="main(a){a=%c%s%c;printf(a,34,a,34);}";printf(a,34,a,34);}

char *p="char *p=%c%s%c;main(){printf(p,34,p,34);}";main(){printf(p,34,p,34);}

i palindrom:

//char q='"',a="///char q='%c',a=%c%s%c/};)b(stup;]d[b=]d-472[b)--d(elihw;)q,a,q,q,2+a,b(ftnirps;)b(stup{)(niam;731=d tni;]572[b,"
,b[275];int d=137;main(){puts(b);sprintf(b,a+2,q,q,a,q);while(d--)b[274-d]=b[d];puts(b);}/c%s%c%=a,'c%'=q rahc///"=a,'"'=q rahc//

0

Bleee. Jeden z tamtych programów czyta swoje źródło :)
Poza tym: palindrom rządzi :)

0
CyberKid napisał(a)

kiedy natrafilem na wypowiedz Marooned ze takie cos w jezyku wysokiego poziomu jest niewykonalne
(...)
// może w zbytnim zaufaniu w wiedzę Marooneda??
Errare humanum est - przeca ja nie jestem wszech wiedzący :]

0

Człowieku! Nie dość, że wątek stary jak świat to Ty jeszcze wykazałeś się totalną bezmyślnością. Piętro wyżej masz przykłady kodów, które wg nie są możliwe do napisania.

POMYŚL ZANIM ZNÓW COŚ NAPISZESZ

1 użytkowników online, w tym zalogowanych: 0, gości: 1