Thủ Thuật‎ > ‎

10 ngôn ngữ lập trình kỳ lạ nhất

http://vnaking.com/

1) LOLCODE

Được tạo ra năm 2007 bởi Adam Lindsay, là nhà nghiên cứu tại ĐH Lancaster. Tất cả từ khoá của ngôn ngữ này đều được viết hoa, và được lấy cảm hứng từ những ngôn ngữ tuổi teen sử dụng trên mạng.


HAI
CAN HAS STDIO? PLZ OPEN FILE "LOLCATS.TXT"? AWSUM THX VISIBLE FILE O NOES INVISIBLE "ERRROR!" KTHXBYE


Bạn có thể xem thêm một số ví dụ khác của LOLCODE tại đây: Wikipedia.




2) Glass


Glass một ngôn ngữ lập trình phát triển bởi Gregor Richards vào năm 2005. kết hợp một ký pháp không trực quan với trọng số hướng đối tượng. Theo tác giả không có ngôn ngữ khác được thực hiện như thế này, bởi vì điều này rất ngốc nghếch.

Dưới đây một ví dụ về một chương trình in ra một chuỗi Fibonacci:


{F[f(_a)A!(_o)O!(_t)$(_n)1=,(_isle)(_n)*(_a)(le).?=/(_isle)^\(_n)*(_a) s.?(_t)f.?(_n)*(_a)s.?(_t)f.?(_a)a.?]}{M[m(_a)A!(_f)F!(_o)O!(_n)=(_nlm) =/(_nlm)(_n)*(_f)f.?(_o)(on).?" "(_o)o.?(_n)(_n)*(_a)a.?=(_nlm)(_n)* (_a)(le).?=\]}



Bạn có thể xem thêm một số ví dụ và lưu ý tại đây: esolang wiki page.



3) Brainfuck

Brainfuck được tạo ra năm 2003 bởi Urban Mülle, nó là ngôn ngữ lập trình "đỉnh" của khó hiểu. Rất khó để lập trình với Brainfuck, chỉ có  8 lệnh đơn giản và một con trỏ. Brainfuck được thiết kế để thách thức lập trình viên.

Dưới đây một chương trình "Hello world!":


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



Xem thêm Tại đây.



4) Whitespace.

Whitespace là một ngôn ngữ lập trình đáng chú ý. chỉ có hiểu khoảng trắng, các tab và các dòng mới, và bỏ qua tất cả mọi thứ khác.  Đây là một ví dụ in ra "Hello, world" (khoảng trắng được đánh dấu bằng S và tab đáng dấu bằng T):

S S S T	S S T	S S S 
T	
S S S S S T	T	S S T	S T	
T	
S S S S S T	T	S T	T	S S 
T	
S S S S S T	T	S T	T	S S 
T	
S S S S S T	T	S T	T	T	T	
T	
S S S S S T	S T	T	S S 
T	
S S S S S T	S S S S S 
T	
S S S S S T	T	T	S T	T	T	
T	
S S S S S T	T	S T	T	T	T	
T	
S S S S S T	T	T	S S T	S 
T	
S S S S S T	T	S T	T	S S 
T	
S S S S S T	T	S S T	S S 
T	
S S S S S T	S S S S T	
T	
S S

Xem thêm tại đây.



5) ///

/// Là một ngôn ngữ tối giản, chỉ bao gồm một việc đóthay thế chuỗi trong form /source/replacement/. được phát minh bởi Tanner Swett vào năm 2006. Ngôn ngữ này rất hạn chế, nhưng một số lập trình thông minh có thể biến các hoạt động thay thế chuỗi thành một chương trình làm việc đầy đủ bao gồm cả vòng lặp và dữ liệu đầu ra.

Đây là một chương trình "Hello, world!" đơn giản:


/ world! world!/Hello,/ world! world! world!

Xêm thêm tại đây.



6) Befunge

Được phát minh vào năm 1993 bởi Chris Pressey với mục tiêu là càng gây khó khăn cho việc biên dịch càng tốt. Befunge là một ngôn ngữ lập trình hai chiều. Mã của bạn được đặt trên  play field (giống như 1 bảng) với một kích thước cố định. Mỗi cell (ô) của play field có thể chứa mã hoặc dữ liệu, chương trình của bạn có thể thay thế bất kỳ cell nào nó muốn với mã hoặc dữ liệu. Việc thông dịch bắt đầu từ các cell trên cùng bên trái và tiếp tục bên phải. Bạn có thể điều khiển hướng đi của việc thông dịch theo một hướng đặc biệt.

Ví dụ này là một vòng lặp vô hạn:


>v ^<

Còn đây là chương trình "Hello world!":


0"!dlroW ,olleH">:#,_@


Xem chi tiết tại đây.



7) Piet

Piet là một ngôn ngữ lập trình trong các chương trình là bitmap trông giống như bức tranh trừu tượng. Các khối cơ bản tạo nên chương trình Piet là các khối màu. Nó hỗ trợ 20 màu sắc khác nhau, với một số khai triển. Biên soạn được dẫn dắt bởi một "con trỏ" di chuyển xung quanh hình ảnh, từ một khu vực màu liên tục kế tiếp.

Đây là một chương trình "Hello world!":

Xem chi tiết tại Trang chủ của Piet.



8) Malbolge

Malbolge là một ngôn ngữ lập trình được phát minh bởi Ben Olmstead vào năm 1998, được đặt tên theo vòng tròn thứ tám của địa ngục trong Dante’s Inferno. Ngôn ngữ được thiết kế đặc biệt để thể viết chương trình hữu ích.  Mặc dù vậy, bạn vẫn phải là một người thông thạo về khoa học mật mã để có thể viết được chương trình bằng ngôn ngữ này.

Đây là chương trình "Hello World" trong Malbolge:


('&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>}=<M:9wv6WsU2T|nm-,jcL(I&%$#" `CB]V?Tx<uVtT`Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj"Fhg${z@>



Xem thêm tại đây.



9) ~English

~English là một ngôn ngữ lập trình cố gắng bắt chước ngôn ngữ tự nhiên. Cú pháp của nó rất lỏng lẻo để giúp cho lập trình viên tự do hơn trong việc sử dụng biểu thức. Lập trình viên không thể tự viết hàm riêng mà chỉ có thể sử dụng hàm được tích hợp sẵn.

Dưới đây là một chương trình ví dụ:

Display "Hello world!" and a newline. Stop the program.


Xem thêm về ngôn ngữ này Tại đây. Ngoài ra, bạn cũng có thể thú vị với ngôn ngữ Shakespeare.



10) JavaScript

Có thể bạn sẽ ngạc nhiên tại sao JavaScript lại nằm trong danh sách này, Nó là ngôn ngữ lập trình phổ biến nhất hiện nay nhưng tuỳ vào phong cách viết của mỗi người mà tạo nên sự đặc biệt, và đây là một điều kỳ lạ của JavaScript:

// Đoạn code sau in ra giá trị là 10: alert(++[[]][+[]]+[+[]]); // Và đoạn code sau đưa ra giá trị "fail": alert((![]+[])[+[]]+(![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]);

Bạn có thể xem giải thích tại sao lại ra kết quả như vậy trên StackOverflow: 1, 2.


Một số ví dụ tại sao JavaScript lại kỳ lạ : no alnum cheat sheets




Tổng hợp bởi: Martin Angelov.
Người dịch: Nguyễn Văn Toản.
Comments