تا به حال با زبان برنامهنویسی که خواندن و درک کردن آن بسیار دشوار باشد روبرو شدهاید؟ تعدادی زبان برنامهنویسی در جهان وجود دارند که آنها را 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 <- #238DO ,1 SUB #2 <- #112DO ,1 SUB #3 <- #112DO ,1 SUB #4 <- #0DO ,1 SUB #5 <- #64DO ,1 SUB #6 <- #238DO ,1 SUB #7 <- #26DO ,1 SUB #8 <- #248DO ,1 SUB #9 <- #168DO ,1 SUB #10 <- #24DO ,1 SUB #11 <- #16DO ,1 SUB #12 <- #158DO ,1 SUB #13 <- #52 PLEASE READ OUT ,1PLEASE GIVE UP
۵. Whitespace
Whitespace یکی دیگر از زبانهای برنامهنویسی ترسناک است که توسط Edwin Bardy و Chris Morris معرفی شدند. در این زبان تمام فاصلهها اعم از Space, Enter و Tab مفهوم خودشان را دارند و مفسر آنها را در نظر میگیرد. برای تعیین فاصلهها از یکسری کاراکتر استفاده میشود که مفسر آنها را در نظر نمیگیرد. برای مثال در برنامه زیر کاراکترهای S و T تنها برای مشخص کردن مرز فاصلهها استفاده میشوند و هیچ کاربرد دیگری ندارند. این زبان در ۱ آپریل سال ۲۰۰۳ معرفی شد، این روز معمولا به روز احمقها معروف است.
برنامه Hello World در این زبان به صورت زیر است:
آشنایی با چند زبان برنامه نویسی دیگر
- Befunge: به گونهای طراحی شده که از الگوهای برنامهنویسی دو بعدی پیروی میکند، که در آن کد به صورت افقی و عمودی خوانده میشود.
- Piet: این زبان بر اساس تصاویر به جای متن است. برنامهها در Piet به شکل نقاشیهایی با بلوکهای رنگی هستند که جریان کنترلی برنامه را نشان میدهند.
- LOLCODE: بر اساس لهجه اینترنتی “LOLCats”، این زبان با ساختار و دستوراتی طراحی شده است که شبیه به جملات و اصطلاحات استفاده شده در میمهای گربهای است.
- Shakespeare: یک زبان برنامهنویسی که برنامهها در آن شبیه به نمایشنامههای شکسپیر نوشته میشوند. دستورات و متغیرها به شکل اشارات و دیالوگهای بین شخصیتها نمایش داده میشوند.
- Chef: زبان برنامهنویسی که در آن برنامهها به شکل دستور پخت غذا نوشته میشوند. هدف این است که برنامههای نوشته شده در Chef علاوه بر اجرایی بودن، از لحاظ ظاهری نیز خوانا و لذتبخش باشند.
- Rockstar: طراحی شده برای اجازه دادن به برنامهنویسان برای تبدیل شدن به “راک استارهای” واقعی، زبان برنامهنویسی Rockstar با سینتکسی طراحی شده است که شبیه به متن ترانههای راک است.
در پایان
زبانهای برنامهنویسی اسوتریک (Esoteric programming languages)، که گاهی اختصاراً به آنها “esolangs” گفته میشود، زبانهایی هستند که بیشتر برای سرگرمی، آموزش مفاهیم برنامهنویسی، تحقیق، یا آزمایشهای هنری طراحی شدهاند تا برای استفاده عملی. این زبانها اغلب با قواعد و ساختارهای غیرمعمول، غیرمنطقی، یا بسیار پیچیدهای طراحی میشوند که آنها را از زبانهای برنامهنویسی معمولی متمایز میکند.
یادگیری این زبانها نمیتواند توجیه عجیبی داشته باشد، البته شاید یکسری استفادههای سری از این ابزارها بشود اما در نهایت باید گفت که یادگیری این زبانها نمیتوانند در ایجاد محصولات و پروژههای کاربردی به ما کمک بکنند. بیشتر از این موارد برای سرگرمی و نشان دادن توانایی فرد در کدنویسی و درک کامپیوتر استفاده میشود.
دیدگاهتان را بنویسید