Ngôn ngữ lập trình quái dị nhất

Đặng Trần Hiếu
(lt2hieu2004)

Thành viên danh dự
Nếu ai nghĩ Assembler là khó. Thì phải xem lại Brainfuck & Befunge.

Đoạn Hello World trên Assembler:
Mã:
   MODEL   SMALL
   IDEAL
   STACK   100H

   DATASEG
           MSG DB 'Hello, world!', 13, '$'

   CODESEG
           MOV AX, @data
           MOV DS, AX
           MOV DX, OFFSET MSG
           MOV AH, 09H
           INT 21H
           MOV AX, 4C00H
           INT 21H
   END
Trên Brainfuck:
Mã:
++++++++++
[
   >+++++++>++++++++++>+++>+<<<<-
]
>++. The initial loop after which an 'H' is printed
>+. e
+++++++. l
. l
+++. o
>++.
<<+++++++++++++++.
>.
+++.
------.
--------.
>+.
>.
Trên Befunge:
Mã:
                 v
>v"Hello world!"0<
,:
^_25*,@
Đây là 2 ngôn ngữ lập trình có thật 100%.

Lại có những ngôn ngữ như Applescript:
Mã:
tell application "Scriptable Text Editor"
        make new window
        activate
        set contents of window 1 to "Hello World!" & return
end tell
 
Chỉnh sửa lần cuối:
Sáng tạo ra 1 ngôn ngữ lập trình thì không phải là khó, cái chính là mục đích để làm gì thôi.
Asembler thì để tương tác với phần cứng, Applescript chắc là của hãng Apple nó làm riêng cho máy Mac của nó (đoán thế thôi), còn 2 ngôn ngữ kia thì chịu, chưa nghe thấy bao giờ mà cũng chẳng biết dùng nó để làm gì.
Mà chữ brainfuck có ý nghĩa gì không đấy? Vừa tra trong gooale xong, thấy có trang này: http://en.wikipedia.org/wiki/Brainfuck
 
Thế cái này có quái dị không ;)

Hmm, không tăt duoc mấy cái icon đi à

X=1024; Y=768; A=3;

J=0;K=-10;L=-7;M=1296;N=36;O=255;P=9;_=1<<15;E;S;C;D;F(b){E="1""111886:6:??AAF"
"FHHMMOO55557799@@>>>BBBGGIIKK"-64;C="C@=::C@@==@=:C@=:C@=:C5""31/513/5131/"
"31/531/53"[b ]-64;S=b<22?9:0;D=2;}I(x,Y,X){Y?(X^=Y,X*X>x?(X^=Y):0, I (x,Y/2,X
)):(E=X); }H(x){I(x, _,0);}p;q( c,x,y,z,k,l,m,a, b){F(c
);x-=E*M ;y-=S*M ;z-=C*M ;b=x* x/M+ y*y/M+z
*z/M-D*D *M;a=-x *k/M -y*l/M-z *m/M; p=((b=a*a/M-
b)>=0?(I (b*M,_ ,0),b =E, a+(a>b ?-b:b)): -1.0);}Z;W;o
(c,x,y, z,k,l, m,a){Z=! c? -1:Z;c <44?(q(c,x ,y,z,k,
l,m,0,0 ),(p> 0&&c!= a&& (p<W ||Z<0) )?(W=
p,Z=c): 0,o(c+ 1, x,y,z, k,l, m,a)):0 ;}Q;T;
U;u;v;w ;n(e,f,g, h,i,j,d,a, b,V){o(0 ,e,f,g,h,i,j,a);d>0
&&Z>=0? (e+=h*W/M,f+=i*W/M,g+=j*W/M,F(Z),u=e-E*M,v=f-S*M,w=g-C*M,b=(-2*u-2*v+w)
/3,H(u*u+v*v+w*w),b/=D,b*=b,b*=200,b/=(M*M),V=Z,E!=0?(u=-u*M/E,v=-v*M/E,w=-w*M/
E):0,E=(h*u+i*v+j*w)/M,h-=u*E/(M/2),i-=v*E/(M/2),j-=w*E/(M/2),n(e,f,g,h,i,j,d-1
,Z,0,0),Q/=2,T/=2, U/=2,V=V<22?7: (V<30?1:(V<38?2:(V<44?4:(V==44?6:3))))
,Q+=V&1?b:0,T +=V&2?b :0,U+=V &4?b:0) :(d==P?(g+=2
,j=g>0?g/8:g/ 20):0,j >0?(U= j *j/M,Q =255- 250*U/M,T=255
-150*U/M,U=255 -100 *U/M):(U =j*j /M,U<M /5?(Q=255-210*U
/M,T=255-435*U /M,U=255 -720* U/M):(U -=M/5,Q=213-110*U
/M,T=168-113*U / M,U=111 -85*U/M) ),d!=P?(Q/=2,T/=2
,U/=2):0);Q=Q< 0?0: Q>O? O: Q;T=T<0? 0:T>O?O:T;U=U<0?0:
U>O?O:U;}R;G;B ;t(x,y ,a, b){n(M*J+M *40*(A*x +a)/X/A-M*20,M*K,M
*L-M*30*(A*y+b)/Y/A+M*15,0,M,0,P, -1,0,0);R+=Q ;G+=T;B +=U;++a<A?t(x,y,a,
b):(++b<A?t(x,y,0,b):0);}r(x,y){R=G=B=0;t(x,y,0,0);x<X?(printf("%c%c%c",R/A/A,G
/A/A,B/A/A),r(x+1,y)):0;}s(y){r(0,--y?s(y),y:y);}main(){printf("P6\n%i %i\n255"
"\n",X,Y);s(Y);}
 
Chỉnh sửa lần cuối bởi người điều hành:
Muốn gõ mà không bị mấy cái mặt cười trong văn bản thì click vào "Không cho hiển thị mặt cười trong văn bản" phía dưới khung soạn thảo.
example:
:D :)) :)>-
 
Tay viết đoạn code này ( Anders Gavare, http://gavare.se/ ) giải thích như sau về việc tai sao gã 0 dùng reserved words
Another reason for writing code without using reserved words is that many text editors will make all reserved words turn BOLD when printed on paper. Since I care for the global environment, we shouldn't waste any more laser toner, or ink, than necessary. Everyone should write C code with no reserved words, and our world will be a better place.
http://www.ioccc.org/2004/gavare.hint

Mà chương trình của gã thực ra viết như thế này:
http://gavare.se/ioccc/prog_bild.gif

prog_bild.gif
 
Chỉnh sửa lần cuối:
Vào trang Trung đưa thì thấy ngôn ngữ quái dị nhất phải là spoon.
Chương trình in ra dòng Hello World:
0101111111110010001111111111010000001101100101001011111110010001111110
1000000110111001010111111100101000101011100101001011111111111001000110
0000000000000000001000000110110000010100000000000000000000000000000000
0000000101001011111111111001000111111101000000110110010100101111110010
0011111101000000110110010101110010100000000000000000000010100000000000
0000000000000000101001011111111111001000110000000000000000000100000011
011000001010
 
Ngôn ngữ quái dị hay ko thì nó tự sáng tác ra mà :D Nhưng mà sáng tác ra mấy cái khó hỉu, khó nhớ thế này thì chẳng để làm gì ngoài làm trò đùa thôi :D
 
Mà chữ brainfuck có ý nghĩa gì không đấy? Vừa tra trong gooale xong, thấy có trang này: http://en.wikipedia.org/wiki/Brainfuck
Tên nó là Brainfuck vì thật sự nó là Brain Fucker.
Thế cái này có quái dị không
Cí nì ko quái dị anh ạ, hẹ hẹ, bởi vì nó chỉ là di LTV bỏ hết space đi thui. Muốn xem thử 1 đoạn code tương tự do chính người Việt viết thì xem thử code của mViet. Chính vì nó bỏ hết space và tên variables chỉ lấy duy nhất 1 chữ cái để giảm thiểu tối đa kích thước file nguồn.
Another reason for writing code without using reserved words is that many text editors will make all reserved words turn BOLD when printed on paper. Since I care for the global environment, we shouldn't waste any more laser toner, or ink, than necessary. Everyone should write C code with no reserved words, and our world will be a better place.
Cái lý do nì thì đúng là chuối cả nải.
Sáng tạo ra 1 ngôn ngữ lập trình thì không phải là khó, cái chính là mục đích để làm gì thôi.
Câu nì chỉ đúng nếu chỉ đề ra standard cho ngôn ngữ, nhưng nếu thực sự làm, viết cả compiler cho nó thì ko phải là khó mà là rất khó. (Đấy là nếu muốn làm 1 ngôn ngữ đầy đủ tính năng). Hẹ hẹ.
Vào trang Trung đưa thì thấy ngôn ngữ quái dị nhất phải là spoon.
Spoon?? Trông nó giống binary code của 1 chương trình nèo đó hơn. Mà binary code đâu có tính là ngôn ngữ lập trình được nhỉ??
 
Vào đấy mà xem, toàn số 0 với 1 nhưng đều phải dùng tay nhập vào cả!
 
Cí nì print 'Hi' trong THRAT:
Mã:
;:::::::::::::::::::
:::::::::::::::::::::
:::::::::::::::::::::
:::::::::::;;;;;;;:;;
;;;:;;;;;;;;:::::::::
:::::::::::::::::::::
:::::::::::::::::::::
:::::::::::::::::::::
:::::::::::::::::::::
::::::::::::;;;;;;;:
 
Back
Bên trên