این پروژه مرز میان کد و تصویر را از بین می‌ برد

یوسوکه اندو، برنامه‌نویس شناخته‌شده در حوزه زبان‌های برنامه‌نویسی نامتعارف، پروژه‌ای به نام “Piet Quine” ساخته است که مرز میان کد و تصویر را از بین می‌برد.

 به گزارش سرویس فناوری تک‌ناک، این پروژه یک فایل GIF با ابعاد ۲۵۲ در ۱۸۹ پیکسل است که هم کد یک برنامه را تشکیل می‌دهد و هم پس از اجرای همان برنامه، نسخه‌ دقیقی از خود را تولید می‌کند. پروژه Piet Quine از ترکیب دو مفهوم متفاوت در علوم کامپیوتر شکل گرفته است. نخستین مفهوم، Piet نام دارد که یک زبان برنامه‌نویسی نامتعارف است.

برنامه‌های نوشته‌شده با این زبان به‌جای کدهای متنی معمول از بلوک‌های رنگی تشکیل می‌شوند و ظاهری شبیه آثار هنری دارند. دیوید مورگان-مار، سازنده این زبان، نام آن را از پیت موندریان، هنرمند مشهور و از بنیان‌گذاران جنبش نئوپلاستیسیسم گرفته است.

برنامه‌های Piet به همین دلیل معمولا مجموعه‌ای از مربع‌ها و مستطیل‌های رنگی با ساختار پیچیده‌ای هستند. نمونه‌های کوچک این برنامه‌ها تا حدودی به آثار موندریان شباهت دارند، اما ممکن است برای مخاطب عادی بیشتر شبیه کدهای QR رنگی به نظر برسند.

برنامه‌ای که خود را بازتولید می‌کند

بخش دوم پروژه اندو به مفهوم Quine مربوط می‌شود. در علوم کامپیوتر، Quine برنامه‌ای است که بدون دریافت ورودی خارجی، نسخه‌ای کاملا یکسان از کد منبع خود را به‌ عنوان خروجی تولید می‌کند. خروجی چنین برنامه‌ای باید کاراکتر به کاراکتر با کد منبع آن یکسان باشد.

نکته مهم این است که برنامه نمی‌تواند برای انجام این کار، فایل خود را مستقیما بخواند و سپس آن را کپی کند. ساخت Quine حتی با کدهای متنی ASCII نیز چالش‌برانگیز است، اما اندو این مفهوم را با زبان تصویری Piet و فرمت GIF ترکیب کرده است.

نمودار فنی اجرای کدهای گیف Piet Quine با دو بخش برنامه در حال اجرا و خروجی چاپ‌شده همراه با نوار وضعیت پیشرفت

مفسر Piet هنگام اجرای این پروژه ابتدا تصویر GIF را در مرحله بارگذاری داده‌ها اسکن می‌کند. سپس اطلاعات سرآیند فایل GIF و پالت رنگ را می‌خواند. وجود داده‌های باینری و فشرده‌سازی در GIF باعث می‌شود بازتولید دقیق فایل بسیار پیچیده‌تر از یک Quine متنی باشد.

تصویر منبع نیز از دو بخش تشکیل شده است. یک قسمت داده‌ها را در خود جای می‌دهد که به‌ صورت جداگانه تفسیر می‌شوند و با نوعی روش تطبیقی Run-Length Encoding فشرده شده‌اند. قسمت دیگر کد برنامه را تشکیل می‌دهد. همه این بخش‌ها باید به شکلی دقیق پردازش شوند تا خروجی نهایی با فایل اولیه یکسان باشد.

بازسازی پروژه قدیمی Piet Quine با کمک Claude Code

ایده Piet Quine برای اندو جدید نیست. او می‌گوید که نخستین بار در سال ۲۰۰۹ موفق به اجرای این ایده شده بود. نسخه اولیه GIF ارتفاع زیادی داشت و برای نمایش بصری چندان مناسب نبود. اندو به همین دلیل تصمیم گرفت سال‌ها بعد دوباره سراغ این پروژه برود.

براساس گزارش تامز هاردور، این برنامه‌نویس برای بازسازی اسکریپت اصلی از Claude Code کمک گرفت. هدف او ساخت نسخه‌ای افقی و جمع‌وجورتر از Piet Quine بود. با وجود استفاده از هوش مصنوعی، فرایند بازطراحی آسان نبود و اندو برای کوچک‌ کردن ساختار و هدایت Claude به نتیجه موردنظر، تلاش زیادی انجام داد.

نسخه نهایی در قالب یک تصویر افقی با نسبت ۴:۳ و وضوح ۲۵۲ در ۱۸۹ پیکسل ساخته شد. نتیجه، GIF رنگارنگی است که در نگاه نخست تنها یک تصویر پیچیده به نظر می‌رسد، اما در واقع یک برنامه کامل محسوب می‌شود. مفسر Piet با اجرای کد موجود در همین تصویر، دوباره همان GIF را تولید می‌کند.

همچنین اندو اعلام کرده است که یکی از اهداف اصلی او از احیای این پروژه، جلب توجه برنامه‌نویسان به مسابقه «2026 Obfuscated Programming Language Design Contest» بوده است. این رقابت از شرکت‌کنندگان می‌خواهد زبان‌های برنامه‌نویسی نامتعارف طراحی کنند. اندو یکی از داوران مسابقه است و شرکت‌کنندگان تا اول اکتبر ۲۰۲۶ فرصت دارند آثار خود را ارسال کنند.

تارخ ترهنده

تارخ ترهنده

The burning heart never knows surrender.

خبر بعدی

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *