سخت‌ترین زبان‌های برنامه‌نویسی

گردآوری و تالیف : ارسطو عباسی
تاریخ انتشار : 11 مهر 1397
دسته بندی ها : برنامه نویسی

تا به حال با زبان برنامه‌نویسی که خواندن و درک کردن آن بسیار دشوار باشد روبرو شده‌اید؟ تعدادی زبان برنامه‌نویسی در جهان وجود دارند که آن‌ها را esoteric –ترسناک، محرمانه- می‌نامند. این زبان‌ها برای این ساخته شده‌اند تا بتوانند محدودیت‌های طراحی زبان‌های برنامه‌نویسی را تست کنند. در حقیقت هدف این زبان‌ها نیز آن نیست که بخواهند جای زبان‌های برنامه‌نویسی عادی را بگیرند و یا اینکه خیلی بدرد بخور باشند. بیشتر علاقه‌مندان به این زبان‌ها هکرها و گیک‌هایی هستند که برای سرگرمی برنامه‌نویسی می‌کنند. 

در این مطلب قصد داریم به شما ۵ مورد از سخت‌ترین زبان‌های برنامه‌نویسی را که می‌توان گفت برای یک برنامه‌نویس عادی کابوس هستند معرفی کنیم. هضم و درک این زبان‌ها بسیار سخت است.

۱. Malbolge

Malbolge یکی از سخت‌ترین زبان‌های برنامه‌نویسی است. برای اینکه میزان سختی آن را بهتر درک کنید باید بگویم که نوشتن برخی برنامه‌های ساده در زبان‌های دیگر معادل با ۲ سال کار روی همان برنامه در این زبان است. Ben Olmstead فردی است که این زبان را نوشته، او می‌گوید که تا به حال حتی یک برنامه با این زبان نساخته است. این زبان به صورت عمومی در سال ۱۹۹۸ در دسته‌بندی esoteric programming language قرار گرفته است.

برنامه Hello World در این زبان به صورت زیر است:

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

۲. Cow Programming Language

زبان برنامه‌نویسی Cow در سال ۲۰۱۳ منتشر شد. این زبان براساس ایده‌ای گاوی شکل گرفت. تمام دستورات این برنامه نشئت گرفته از صداها گاوهاست. صدای Moo. اما برای اینکه بهتر دستورات را درک کنیم و از این سه حرف در حالت‌های مختلف استفاده کنیم، حروف را در حالات بزرگ و کوچک می‌نویسیم. در واقع ۲۴ حالت مختلف دستوری را می‌توانیم با سه حرف MOO درست کنیم. هر حرف دو حالت دارد، سه مؤلفه در اختیار داریم پس دو به توان سه برابر با هشت می‌شود، سه در هشت نیز برابر با ۲۴ خواهد بود. پس در نتیجه با یک زبان Case Sensitive روبرو هستیم. تنها کاراکتری نیز که حالت‌های حروف را از همدیگر جدا می‌کند space است.

برنامه Hello World در این زبان به صورت زیر است:

MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO 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

۳. Brainfuck

Brainfuck یک زبان برنامه‌نویسی esoteric است که در سال ۱۹۹۳ توسط Urban Muller معرفی شد. سینتکس و محتویات این زبان درست مانند نام خودش عجیب و پیچیده است. در این زبان تنها ۸ دستور وجود دارد و یک برنامه نوشته شده با این زبان در واقع مجموعه‌ای از این ۸ دستور است. این زبان یک نشانگر برای دستورالعمل‌ها دارد که روی خط اول برنامه قرار گرفته و دستورات را به صورت ترتیبی اجرا می‌کند.

این هشت دستور عبارت هستند از موارد زیر:

< > + – . , [ ]

برنامه Hello World در این زبان به صورت زیر است:

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.——.——–.>+.>.

۴. INTERCAL

INTERCAL یک زبان کامپایلری است که هیچ سرنام مشخصی برای آن تعیین نشده است. این زبان توسط Don Woods و James M. Lyon توسعه داده شده و جالب است بدانید که در این زبان برخی از دستورات، از زبان‌های برنامه‌نویسی دیگری گرفته شده است.

برنامه Hello World در این زبان به صورت زیر است:

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

Whitespace یکی دیگر از زبان‌های برنامه‌نویسی ترسناک است که توسط Edwin Bardy و Chris Morris معرفی شدند. در این زبان تمام فاصله‌ها اعم از Space, Enter و Tab مفهوم خودشان را دارند و مفسر آن‌ها را در نظر می‌گیرد. برای تعیین فاصله‌ها از یکسری کاراکتر استفاده می‌شود که مفسر آن‌ها را در نظر نمی‌گیرد. برای مثال در برنامه زیر کاراکترهای S و T تنها برای مشخص کردن مرز فاصله‌ها استفاده می‌شوند و هیچ کاربرد دیگری ندارند. این زبان در ۱ آپریل سال ۲۰۰۳ معرفی شد، این روز معمولا به روز احمق‌ها معروف است.

برنامه Hello World در این زبان به صورت زیر است:

در پایان

یادگیری این زبان‌ها نمی‌تواند توجیه عجیبی داشته باشد، البته شاید یکسری استفاده‌های سری از این ابزارها بشود اما در نهایت باید گفت که یادگیری این زبان‌ها نمی‌توانند در ایجاد محصولات و پروژه‌های کاربردی به ما کمک بکنند. بیشتر از این موارد برای سرگرمی و نشان دادن توانایی فرد در کدنویسی و درک کامپیوتر استفاده می‌شود.

منبع

مقالات پیشنهادی

تفاوت میان زبان‌های برنامه‌نویسی، برچسب‌گذاری و اسکریپتی

در دنیای کدنویسی، فارغ از آنکه زبان‌های مختلفی برای نوشتن کدها وجود دارد، اما تا به حال کمتر این موضوع اشاره شده که نوع‌های مختلفی از زبان‌ها برای کدن...

زبان‌های برنامه‌نویسی مورد نیاز توسعه‌دهندگان وب

توسعه وب یکی از هیجان انگیزترین کارهایی است که می‌شود آن را یاد گرفت. از یک دهه اخیر به بعد نیاز این دنیا به توسعه وب و طراحی وبسایت بسیار افزایش یافت...

بهترین زبان‌های برنامه‌نویسی برای رایانش ابری

وقتی که قصد دارید تا اولین اپلیکیشن کامپیوتری خودتان را توسعه دهید، معمولا اولین زبان‌های برنامه‌نویسی که به ذهن‌تان می‌آید C، C++، Java و یا حتی Pyth...

۵ سوءتفاهم در دنیای برنامه‌نویسی برای افراد مبتدی

وقتی که برای اولین بار وارد دنیای برنامه‌نویسی می‌شوید مطمئنا جدای از میزان کنجکاوی دارید با یک ذره ترس هم همراه هستید. این بدان دلیل است که به تازگی...