۱۰ تا از عجیب ترین زبان های برنامه نویسی دنیا تا به حال!
برای یک برنامه نویس وب هیچ چیز ناامید کننده تر از صرف ساعت های طولانی برای رفع یک مشکل نیست. در زمان برنامه نویسی هنگامی که دچار سردرگمی می شوم احساسم نسبت به زبانی که در حال استفاده از آن هستم (CSS ، PHP ، و …)، مانند یک زبان خارجی است.
۱-Ook!
Ook! زبانی است که برای نخستیان (پستانداران نخستین شامل انسان، گوریل و میمون)، به ویژه اورانگوتان ها طراحی شده است. با Ook! شما فقط از سه عنصر نحو استفاده خواهید کرد:
- Ook.
- Ook?
- Ook!
در اینجا چند نمونه از Ook! را به صورت عملی مشاهده می کنید:
۱
۲ |
Ook. Ook?
Move the Memory Pointer to the next array cell. |
۱
۲ |
Ook? Ook.
Move the Memory Pointer to the previous array cell. |
۱
۲ |
Ook. Ook.
Increment the array cell pointed at by the Memory Pointer. |
۱
۲ |
Ook! Ook!
Decrement the array cell pointed at by the Memory Pointer. |
۱
۲ |
Ook. Ook! Read a character from STDIN and put its ASCII value into the cell pointed at by the Pointer. |
۱ اوک. اوک؟
۲ Memory Pointer را به سلول آرایه بعدی منتقل کنید.
۱ اوک؟ اوک.
۲ Memory Pointer را به سلول آرایه قبلی منتقل کنید.
۱ اوک. اوک.
۲ سلول آرایه ای که Memory Pointer به آن اشاره می کند را افزایش دهید.
۱ اوک! اوک!
۲ سلول آرایه ای که Memory Pointer به آن اشاره می کند را کاهش دهید.
۱ اوک. اوک!
۲ کاراکتر STDIN را بخوانید و مقدار ASCII آن را درون سلولی قرار دهید که Memory Pointer به آن اشاره می کند.
متوجه شدید؟ بله، اما من متوجه نشدم!
عکس از Suneko
۲- Piet
برای کسانی که به هنرهای زیبا علاقه دارند، Piet زبانی سرگرم کننده خواهد بود. Piet از هنرمند انتزاعی Piet Mondrian الهام گرفته است، این زبان برنامه ها را به نقاشی هندسی انتزاعی تبدیل می کند. برنامه ها از ۲۰ رنگ مختلف تشکیل شده اند، و سپس توسط کامپایلر بر اساس مقادیرهگز (hex) برای اجرای یک برنامه خوانده می شوند.
با مراجعه به examples از نمونه های جالبی که توسط برنامه نویسان Piet طراحی شده اند دیدن کنید.
۳- Whitespace
این زبان برنامه نویسی دقیقاً همان کاری را انجام می دهد که از نام آن پیداست: Whitespace برنامه هایی را در فضای سفید (Whitespace) ایجاد می کند. وب سایت Whitespace توضیحات خوبی در مورد نحوه کار این زبان ارائه می کند.
اکثر زبان های برنامه نویسی مدرن، کاراکترهای فضای سفید (فاصله ها، زبانه ها و خط های جدید) را دربر نمی گیرند، گویی وجود ندارند. ما این را یک بی عدالتی جدی نسبت به کاربران علاقه مند به کاراکترها به حساب می آوریم. آیا واقعا باید از آنها صرفنظر کرد، فقط به این دلیل که نامرئی هستند؟ Whitespace زبانی است که به دنبال ایجاد تعادل است. کارکترهای غیر Whitespace در آن نادیده گرفته می شوند. و تنها فاصله ها، زبانه ها و خط های جدید نحو در نظر گرفته می شوند.
۴- LOLCODE
LOLCODE در بین زبان های ایزوتریک زبان مورد علاقه من است. این زبان از پدیده LOLCats است و از نحو LOLCats یا چیزی شبیه به آن برای اجرای برنامه ها استفاده می کند.
با یک نگاه اجمالی به نمونه کوچکی از برنامه LOLCODE، متوجه خواهید شد که چرا مورد توجه طرفداران قرار گرفته است.
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ |
HAI
CAN HAS STDIO? PLZ OPEN FILE “LOLCATS.TXT”? AWSUM THX VISIBLE FILE O NOES INVISIBLE “ERROR!” KTHXBYE |
۱ HAI
۲ می تواند STDIO داشته باشد؟
۳ لطفا فایل”LOLCATS.TXT” را باز کنید؟
۴ AWSUM THX
۵ فایل قابل مشاهد
O NOES 6
۷ “خطا!” غیر قابل مشاهده
۸ KTHXBYE
در کمال تعجب، LOLCODE در بخش هایی از جامعه برنامه نویسی طرفدارانی پیدا کرده است.
۵-Shakespeare (شکسپیر)
شکسپیر به اندازه LOLCODE ساده نیست. شکسپیر یک زبان برنامه نویسی است که بر اساس نوشته های نمایشنامه نویس مشهوری با همین نام ساخته شده است. هر برنامه شامل یک عنوان، اکتها، صحنه ها و کاراکترها برای ایجاد یک کد منبع مناسب است که خواندن آن می تواند سرگرم کننده باشد.
در زیر اکت ۱، صحنه ۱ نمایشنامه “Hello World” را مشاهده می کنید:
۰۱ ۰۲ ۰۳ ۰۴ ۰۵ ۰۶ ۰۷ ۰۸ ۰۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵ ۲۶ ۲۷ ۲۸ ۲۹ |
The Infamous Hello World Program.
Romeo, a young man with a remarkable patience. Juliet, a likewise young woman of remarkable grace. Ophelia, a remarkable woman much in dispute with Hamlet. Hamlet, the flatterer of Andersen Insulting A/S.
Act I: Hamlet’s insults and flattery.
Scene I: The insulting of Romeo. [Enter Hamlet and Romeo]
Hamlet: You lying stupid fatherless big smelly half-witted coward! You are as stupid as the difference between a handsome rich brave hero and thyself! Speak your mind!
You are as brave as the sum of your fat little stuffed misused dusty old rotten codpiece and a beautiful fair warm peaceful sunny summer’s day. You are as healthy as the difference between the sum of the sweetest reddest rose and my father and yourself! Speak your mind!
You are as cowardly as the sum of yourself and the difference between a big mighty proud kingdom and a horse. Speak your mind.
Speak your mind! [Exit Romeo] |
۰۱ نمایش بدنام Hello World
۰۲
۰۳ رومئو، جوانی با صبر و شکیبایی چشمگیر.
۰۴ ژولیت، یک زن جوان با جذابیتی چشمگیر.
۰۵ اوفلیا، یک زن قابل توجه که با هملت اختلاف نظر دارد.
۰۶ هملت، چاپلوس آندرسن که به A / S. توهین می کند.
۰۷
۰۸ اکت اول: توهین و چاپلوسی هملت.
۰۹
۱۰ صحنه اول: توهین به رومئو.
۱۱
۱۲ [هملت و رومئو وارد می شوند]
۱۳
۱۴ هملت:
۱۵ تو دروغ می گویی ای ترسوی کم خرد بی پدر متعفن!
۱۶ تو به اندازه تفاوت بین یک فرد شجاع پولدار خوش تیپ و خودت احمق هستی!
۱۷ حرف دلتو بزن!
۱۸
۱۹ تو به اندازه ی مقدار چربی انباشته شده زیر شلوار کهنه خاکی پوسیده و
۲۰ یک تابستان آفتابی گرم وصلح آمیز زیبا ترسو هستی.
۲۱ تو به اندازه تفاوت بین خوشبو ترین قرمزترین گل رز و پدر من و خودت سالم هستی!
۲۲ حرف دلتو بزن!
۲۳
۲۴ تو به اندازه جمع خودت و فاصله بین یک پادشاهی بزرگ افتخار آمیز و یک اسب بزدل هستی.
۲۵ حرف دلتو بزن.
۲۶
۲۷ حرف دلتو بزن!
۲۸
۲۹ [رومئو خارج می شود]
۶- Befunge
هدف کریس پرسی، خالق زبان برنامه نویسی Befunge، این بود: زبانی را ایجاد کند که کامپایل کردن در آن تا جای ممکن دشوار باشد. Befunge این کار را با استفاده از دو ویژگی اصلی این زبان انجام داد:
- خود اصلاحی – دستورالعمل p می تواند دستورالعمل های جدیدی را در قسمت playfield بنویسد. و
- چند بعدی ‚Äì یک دستورالعمل مشابه را می توان در چهار زمینه مختلف اجرا کرد (در یک سری دستورالعمل از چپ به راست، یا از راست به چپ، یا به سمت بالا یا رو به پایین.)
صرف نظر از این، افراد بسیار باهوشی وجود دارند، که کامپایلرهایی را برای Befunge ایجاد کرده اند.
۷-reMorse
reMorse زبانی است که مانند کد مورس است. تصاویر زیر دریایی و تلگرام با این زبان ساده اما بسیار چالش برانگیز به ذهن خطور می کنند. در زیر نسخه reMorse، “Hello World” را مشاهده می کنید:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ |
– – – ..- …-.—.;newline |
– – – .-. – ..-.- …-. —.;!
– – – …- . . -.—.;d
—-. . . -.—.;l
—-. . -…—.;r
—-. -…—.;o
—-…-.- ..-. —.;W
//author didn’t feel like doing this part
-…………..;output all characters
این زبان ممکن است برای اکثر افراد (به استثنای متخصصان آماتور رادیو)، دشوار به نظر برسد. می دانید وقتی برنامه نویس بدلیل پیچیدگی نتواند مثال های پایه را تمام کند کار دشوار می شود.
۸- FALSE
FALSE با داشتن یک بار معنایی منفی، زبانی است که حتی هوشمندترین برنامه نویسان را ناامید می کند. بر اساس زبان Forth ، FALSE با استفاده از یک نحو مبتنی بر نقطه گذاری (ناهماهنگ!) تجربه برنامه نویسی را به یک تجربه بد تبدیل می کند.
متن از خالق FALSE:
من این زبان را با دو هدف خاص طراحی کردم: کاربران را با یک نحو مبهم گیج کنم و یک زبان قدرتمند را با یک اجرای کوچک طراحی کنم: یعنی کامپایلری که فقط ۱۰۲۴ بایت (!) دارد که با اسمبلر ۶۸۰۰۰ خالص نوشته شده است.
اگرچه FALSE مسخره ترین زبان ایزوتریک نیست، و با توجه به اینکه عملیات های آن معقول و منطقی هستند و زبان چندان پیچیده ای نیست می تواند در دنیای واقعی به شما کمک کند. شاید در آینده کسی بتواند یک برنامه کاربردی مفید با این زبان ایجاد کند…
۹- Whenever
برای اینکه بتوانید Whenever را درک کنید کافی است یک نوجوان تندخو را به عنوان یک زبان برنامه نویسی تصور کنید. Whenever زبان ساده ای است که آنچه را می خواهد انجام دهد، را در زمان دلخواه خود انجام می دهد.
کد برنامه را دریافت کرده و هر خط را به عنوان یک آیتم در لیست کارهایی که باید انجام دهد در نظر می گیرد. مترجم یک مورد را از لیست به طور تصادفی برای اجرا انتخاب می کند و گزاره را اجرا می کند. در برخی موارد، این گزاره حاوی بندهایی است که مشخص می کند تا زمانی که شرایط خاصی اعمال نشده، نمی توان آن را اجرا کرد. در نتیجه گزاره متوقف شده و در لیست کارهایی که باید انجام شود قرار می گیرد.
هرگز روی این حساب نکنید که بتوانید برنامه Whenever را کنترل کنید. تصور کنید برنامه نویسی چیزی مانند “۹۹ بطری آبجو” چقدر می تواند دشوار باشد! برنامه هر چیزی را که می خواند را برمی گرداند درست مانند اینکه ۹۹ بار آن را مصرف کرده باشد.
۱ ۲ ۳ ۴ |
defer (4 || N(1) |
defer (4 || N(1)==N(2)) print(“Take one down and pass it around,”);
defer (4 || N(2)==N(3)) print(N(1)+” bottles of beer on the wall.”);
۱#۹۸,۲#۹۸,۳#۹۸;
۱ تعویق (۴ || N(1)
۲ تعویق ۴ || N(1)==N(2)) چاپ (“یکی را پایین بیاور و آن را بگذر ،”)؛
۳ تعویق (۴ || N(2)==N(3))چاپ (N(1) + بطری های نوشابه بر روی دیوار.”)؛
۴ ۱#۹۸,۲#۹۸,۳#۹۸;
۱۰- l33t
آیا تا به حال خواسته اید مانند “l33t H4xX0r5” صحبت کنید؟ اکنون می توانید آن را با یادگیری زبان برنامه نویسی l33t یاد بگیرید. برنامه l33t “Hello World” :
۰۱ ۰۲ ۰۳ ۰۴ ۰۵ ۰۶ ۰۷ ۰۸ ۰۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ |
// Note that the views expressed in this source code do not necessarily coincide with those of the author :o) |
Gr34t l33tN3$$?
M3h…
iT 41n’t s0 7rIckY.
l33t sP33k is U8er keWl 4nD eA5y wehn u 7hink 1t tHr0uGh.
۱f u w4nn4be UB3R-l33t u d3f1n1t3lY w4nt in 0n a b4d4sS h4xX0r1ng s1tE!!! ;p
w4r3Z c0ll3cT10n2 r 7eh l3Et3r!
Qu4k3 cL4nS r 7eh bE5t tH1ng 1n teh 3nTIr3 w0rlD!!!
g4m3s wh3r3 u g3t to 5h00t ppl r 70tAl1_y w1cK1d!!
I’M teh fr4GM4stEr aN I’lL t0t41_1Ly wIpE teh phr34k1ng fL00r ***j3d1 5tYlE*** wItH y0uR h1dE!!!! L0L0L0L!
t3lEphR4gG1nG l4m3rs wit mY m8tes r34lLy k1kK$ A$$
l33t hAxX0r$ CrE4t3 u8er- k3wL 5tUff lIkE n34t pR0gR4mm1nG lAnguidGe$…
s0m3tIm3$ teh l4nGu4gES l00k jUst l1k3 rE41_ 0neS 7o mAkE ppl Th1nk th3y’r3 ju$t n0rMal lEE7 5pEEk but th3y’re 5ecRetLy c0dE!!!!
n080DY unDer5tAnD$ l33t SpEaK 4p4rT fr0m j3d1!!!!!
۵۰mE kId 0n A me$$4gEb04rD m1ghT 8E a r0xX0r1nG hAxX0r wH0 w4nT2 t0 bR34k 5tuFf, 0r mAyb3 ju5t sh0w 7eh wAy5 l33t ppl cAn 8E m0re lIkE y0d4!!! hE i5 teh u8ER!!!!
۱t m1ght 8E 5omE v1rus 0r a Pl4ySt4tI0n ch34t c0dE.
۱t 3v3n MiTe jUs7 s4y “H3LL0 W0RLD!!!” u ju5t cAn’T gu3s5.
tH3r3’s n3v3r anY p0iNt l00KiNg sC3pT1c4l c0s th4t, be1_1Ev3 iT 0r n0t, 1s whAt th1s 1s!!!!!
۵uxX0r5!!!L0L0L0L0L!!!!!!!
در زندگی واقعی، l33t “teh sUxX0r” است به این دلیل که شما نمی توانید آن را برای هر چیز مفیدی استفاده کنید!
عکس از Yoz.
- بهترین زبان برنامه نویسی برای کار و درآمدزایی
- بهترین زبان برنامه نویسی برای هک و هکر شدن
- بهترین زبان برنامه نویسی برای طراحی وب و سایت
- ساده ترین زبان های برنامه نویسی برای شروع
چه جالب بودن
پاسخدو زبان Brainfuck و INTERCAL رو فراموش کردید!
پاسخزبان Brainfuck یک زبان برنامه نویسی رمزی است که دستور های بسیار کمی دارد
هدف از ساخت این زبان ساخته شدن کوچک ترین کامپایلر برای ان بوده
کوچک ترین کامپایلرش حجمی حدود 200 کیلوبایت دارد!
زبان INTERCAL یک زبان تمسخری است که توسط دو جوان برنامه نویس ساخته شده و تنها هدفشان تمسخر دیگر زبان ها بخصوص C و C++ بوده