Trung tâm đào tạo thiết kế vi mạch Semicon


  • ĐĂNG KÝ TÀI KHOẢN ĐỂ TRUY CẬP NHIỀU TÀI LIỆU HƠN!
  • Create an account
    *
    *
    *
    *
    *
    Fields marked with an asterisk (*) are required.
semicon_lab.jpg

5 ngôn ngữ lập trình “khó chịu” nhất thế giới

E-mail Print PDF

Bạn đã bao giờ gặp phải một ngôn ngữ lập trình mà mình không thể đọc và không hiểu được chưa?

Với sự tiến bộ ngày nay, các ngôn ngữ lập trình thường theo xu hướng đơn giản hóa để phù hợp với người dùng từ những coder mới đến các chuyên gia lâu năm. Tuy nhiên vẫn tồn tại trong thế giới lập trình những ngôn ngữ không hề “dễ ở” chút nào. Có một vài ngôn ngữ mã hóa được gọi là "ngôn ngữ lập trình kỳ bí" hay esolang. Các ngôn ngữ này được phát triển để kiểm tra hạn chế của thiết kế ngôn ngữ lập trình máy tính. Những ngôn ngữ này ta không đánh giá nó khả dụng hay không, cũng không được phát triển để cố gắng thay thế những ngôn ngữ lập trình thông thường. Người có niềm đam mê với loạt ngôn ngữ “khó ở” này thường là các hacker hoặc những người có sở thích đam mê vì chúng khá mới lạ thôi. Hãy cùng Quantrimang tìm hiểu xem đó là những ngôn ngữ nào nhé!

COW

Chà, đây chắc chắn là ngôn ngữ lập trình khó nhất nhưng cũng hài hước nhất thế giới. COW được phát triển vào năm 2003 bởi Sean Heber, và tất nhiên nó đã lỗi thời. Ngôn ngữ này được thiết kế với ý tưởng các đoạn code là tiếng của con bò. Bò sở hữu những từ vựng hạn chế, vì vậy các nhà phát triển kế thừa dựa trên các âm thanh mà chúng phát ra, bao gồm biến thể khác nhau của "moo", đó là moO, MoO, mOo, mOO, Moo… Nếu bạn viết bất kỳ ký tự hoặc từ nào khác, nó tự động được coi là một nhận xét, ghi chú. COW phát triển dựa trên các ngôn ngữ sử dụng trong máy Turing. Do đó, tất cả các tính toán có thể được thực hiện trên máy Turing thì đều có thể được thực hiện trên COW.

Và đây là “Hello World” quen thuộc được viết dưới dạng ngôn ngữ lập trình COW.

MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MoO MoO MoO MoO MoO MoO MoO Moo Moo MoO MoO MoO Moo OOO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOoMOo MOo MOo MOo MOo Moo MOo MOo MOo MOo MOo MOo MOo MOo Moo MoO MoO MoO Moo MOo MOo MOo MOo MOo MOo Moo MOo MOo MOo MOo MOo MOo MOo MOo MooOOO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo

Intercal

Intercal là một ngôn ngữ lập trình kỳ bí được tạo ra bởi Don Woods và James Lyon vào năm 1972. Ngôn ngữ này được thiết kế với mục tiêu tạo ra ngôn ngữ không có điểm tương đồng với bất cứ ngôn ngữ nào khác. Tên đầy đủ là "Compiler Language With No Pronounceable Acronym" tức "Ngôn ngữ trình biên dịch không từ viết tắt nào có thể phát âm", viết tắt là "INTERCAL". Bạn có thể muốn “phát điên” khi học và cố gắng viết code trong trình biên dịch này. Điều duy nhất khiến Intercal trở nên thân thiện với người dùng là trong code có bao gồm các từ như Read out, Ignore, Please, Forget… Nhưng buồn cười nhất, nếu code của bạn không có từ khóa Please, nó sẽ bị đánh giá là không lịch sự, hệ thống sẽ hiển thị thông báo lỗi cùng lời từ chối chạy chương trình. Mặt khác, nếu bạn có sử dụng đầy đủ từ khóa nhưng vẫn sẽ bị hệ thống “hơi hâm” này coi là quá lịch sự và tiếp tục không cho chạy!!! Vậy nên, có thể đánh giá Intercal thực sự “dị”. Quantrimang không đi quá sâu vào tìm hiểu, vì đã có chút “đau não” rồi. Xin giới thiệu cho bạn “Hello World” viết bằng ngôn ngữ này.

PLEASE DO ,1 <- #13

 DO ,1 SUB #1 <- #238

 DO ,1 SUB #2 <- #112

 DO ,1 SUB #3 <- #112

 DO ,1 SUB #4 <- #0

 DO ,1 SUB #5 <- #64

 DO ,1 SUB #6 <- #238

 DO ,1 SUB #7 <- #26

 DO ,1 SUB #8 <- #248

 DO ,1 SUB #9 <- #168

 DO ,1 SUB #10 <- #24

 DO ,1 SUB #11 <- #16

 DO ,1 SUB #12 <- #158

 DO ,1 SUB #13 <- #52

 PLEASE READ OUT ,1

 PLEASE GIVE UP

Whitespace

Bạn nghĩ gì về một ngôn ngữ lập trình được tạo ra như một trò đùa ngày Cá tháng Tư? Whitespace đúng như cái tên của nó khi code trong ngôn ngữ lập trình này toàn là các khoảng trống mênh mông, sử dụng các ký tự khoảng trắng làm cú pháp chính. Hài hước hơn nữa là ngôn ngữ lập trình này được tác giả Edwin Brady và Chris Morris phát hành vào ngày 1 tháng 4 năm 2003 và bị giới lập trình lầm tưởng là một trò đùa, nhưng thực tế thì không. Đáng chú ý nữa là nếu bạn viết bất kỳ ký tự nào khác ngoài các khoảng trắng, nó sẽ tự động bị trình biên dịch bỏ qua. Chà, Whitespace có thể là ngôn ngữ lập trình được mã hóa nhất trong lịch sử vì chỉ có những người sáng tạo ra mới có thể hiểu được nó.

Và đây là Hello World trong Whitespace, với "S", "T", "L" là Space, Tab hoặc Linefeed tương ứng:

Chef

Nếu bạn thích nấu ăn thì chắc chắn bạn sẽ cực kỳ “yêu thương” ngôn ngữ lập trình này. Code xuất hiện trong Chef là một số công thức nấu ăn và các nguyên liệu vô cùng “tươi mới”, “hay ho”, các biến có xu hướng đặt tên theo các thực phẩm cơ bản, ví dụ: stack được gọi là mixing bowls hay mixing dishes. Một số nguyên tắc khi viết chương trình là nội dung code phải chuẩn để có thể tạo ra thành phẩm thật, nguyên liệu phải dễ chuẩn bị và... trông ngon miệng!!! Bạn có thể tìm hiểu một số code mẫu của ngôn ngữ lập trình này và “thưởng thức” nó trong sự hài hước hiếm thấy.

Và đây là Hello World với Chef:

Hello World Cake with Chocolate sauce.

This prints hello world, while being tastier than Hello World Souffle. The main

chef makes a " world!" cake, which he puts in the baking dish. When he gets the

sous chef to make the "Hello" chocolate sauce, it gets put into the baking dish

and then the whole thing is printed when he refrigerates the sauce. When

actually cooking, I'm interpreting the chocolate sauce baking dish to be

separate from the cake one and Liquify to mean either melt or blend depending on

context.

Ingredients.

33 g chocolate chips

100 g butter

54 ml double cream

2 pinches baking powder

114 g sugar

111 ml beaten eggs

119 g flour

32 g cocoa powder

0 g cake mixture

Cooking time: 25 minutes.

Pre-heat oven to 180 degrees Celsius.

Method.

Put chocolate chips into the mixing bowl.

Put butter into the mixing bowl.

Put sugar into the mixing bowl.

Put beaten eggs into the mixing bowl.

Put flour into the mixing bowl.

Put baking powder into the mixing bowl.

Put cocoa powder into the mixing bowl.

Stir the mixing bowl for 1 minute.

Combine double cream into the mixing bowl.

Stir the mixing bowl for 4 minutes.

Liquify the contents of the mixing bowl.

Pour contents of the mixing bowl into the baking dish.

bake the cake mixture.

Wait until baked.

Serve with chocolate sauce.

chocolate sauce.

Ingredients.

111 g sugar

108 ml hot water

108 ml heated double cream

101 g dark chocolate

72 g milk chocolate

Method.

Clean the mixing bowl.

Put sugar into the mixing bowl.

Put hot water into the mixing bowl.

Put heated double cream into the mixing bowl.

dissolve the sugar.

agitate the sugar until dissolved.

Liquify the dark chocolate.

Put dark chocolate into the mixing bowl.

Liquify the milk chocolate.

Put milk chocolate into the mixing bowl.

Liquify contents of the mixing bowl.

Pour contents of the mixing bowl into the baking dish.

Refrigerate for 1 hour.

Brainfuck

Brainfuck là một ngôn ngữ esolang được giới thiệu vào năm 1993 bởi Urban Muller. Ngôn ngữ lập trình này thể hiện đúng như tên của nó - Brainfuck, rất phức tạp và bất thường. Brainfuck bao gồm tám lệnh > < + - . , [] và chương trình là chuỗi các lệnh này!? 8 lệnh có sẵn hoạt động như một mảng các ô nhớ. Nghe tới đây có thể nhiều người sẽ đánh giá ngôn ngữ này có vẻ “sáng tạo” và mang tính cách mạng, nhưng nếu thấy code Brainfuck đầy đủ, bạn có thể ngay lập tức nhảy ra khỏi ghế của mình! Bạn sẽ có cảm giác mình vừa được đưa về thời nguyên thủy của sự sáng tạo, để viết “Hello World” phải sử dụng các ký hiệu số học kỳ cục như này:

++++++++++[>+++++++>++++++++++>+++>+.

Các chương trình Brainfuck thường có xu hướng dài và khó hiểu, đó là lý do nó ít được sử dụng. Bạn có thể học ngôn ngữ lập trình này nếu rất rảnh.

Ngoài 5 cái tên nổi bật Quantrimang vừa giới thiệu thì còn cơ số những ngôn ngữ cũng “khó chịu” không kém như Malbloge, Befunge, Omgrofl, nhiều người khó tính còn đánh giá chúng cực kỳ bất bình thường, chẳng khác gì... rác thải và hơn thế nữa.

Ví dụ code Hello World của Malbloge như này:

(=<`#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:'8dc

…Vậy nên tốt nhất là bạn không nên lãng phí thời gian của mình và mong ước trở thành một lập trình viên tuyệt vời của những ngôn ngữ khó nhằn này.

Bạn Có Đam Mê Với Vi Mạch hay Nhúng      -     Bạn Muốn Trau Dồi Thêm Kĩ Năng

Mong Muốn Có Thêm Cơ Hội Trong Công Việc

Và Trở Thành Một Người Có Giá Trị Hơn

Bạn Chưa Biết Phương Thức Nào Nhanh Chóng Để Đạt Được Chúng

Hãy Để Chúng Tôi Hỗ Trợ Cho Bạn. SEMICON  

Last Updated ( Monday, 07 September 2020 23:22 )  

Related Articles

Chat Zalo