کد گلف

کد گلف (به انگلیسی: Code golf) یک نوع از رقابت برنامه‌نویسی کامپیوتر به شکل تفریحی است که در آن شرکت‌کنندگان تلاش می‌کنند تا یک الگوریتم خاص را با کوتاه‌ترین سُورس کُد ممکن (با کدهای باینری اشتباه گرفته نشود) پیاده‌سازی کنند. در نام‌گذاری چنین مسابقاتی ممکن است از نام یک زبان برنامه‌نویسی خاصی استفاده شود (مثال:‌ Perl golf).

واژه‌شناسی

نام این اصطلاح برگرفته از مفهوم امتیازات کم بازی گلف است به طوری که در بازی گلف امتیازات کم ارزشمند هستند و در پیروزی تأثیر بسیاری دارد و همچنین کدهای مختصر(کم) و مفید در برنامه‌نویسی ارزشمند هستند.

تاریخچه

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

در حالیکه اصطلاح کد گلف برای اولین بار در سال 1999 به همراه پرل ظاهر شد[1] و بعدها از طریق استفاده در کنار پرل برای نوشتن رمزنگاری آراس‌ای (RSA) به محبوبیت رسید[2] و با توجه به رقابت غیررسمی میان پرل و ای‌پی‌ال پیش از آن توسط برنامه‌نویسان ای‌پی‌ال محبوب شده بود. امروزه این اصطلاح بسیار رشد کرده و طیف وسیعی از زبان‌ها را در بر می‌گیرد که حتی باعث به وجود آمدن تعدادی زبان برنامه‌نویسی golfing نیز شده‌است. بیشترین کدهای مختصر و مفید که کاربری و نظام‌‌ مند هستند در برنامه‌نویسی اسپارتان استفاده شده‌است.

زبان‌های اختصاصی گلفی

چندین زبان برنامه‌نویسی جدید از پایه براساس مفهوم کد گلف ساخته شده‌اند. نمونه شناخته شده‌ترین آن‌ها گلف اسکریپت (GolfScript) و فلاگ اسکریپت (FlogScript) هستند. گلف اسکریپت بیشتر از نوعی از زبان‌های برنامه‌نویسی محرمانه شناخته می‌شود.[3]

مثالی از گلف اسکریپت که تا ۱۰۰۰ رقم عدد پی را نشان می‌دهد:

;''
6666,-2%{2+.2/@*\/10.3??2*+}*
`50<~\; #truncate for webpage purposes
 -> 3141592653589793238462643383279502884197169399375

جستارهای وابسته

پیوند به بیرون

پانویس

  1. گرگ بیکن (Greg Bacon) (1999-05-28). "در پاسخ به: Incrementing a value in a slice". comp.lang.perl.misc. Web link. Retrieved 2011-07-12.
  2. «RSA in 5 lines of perl». www.cypherspace.org. دریافت‌شده در ۲۰۱۶-۱۲-۱۲.
  3. «Category:Golfing language - Esolang». esolangs.org. دریافت‌شده در ۲۰۱۶-۱۲-۱۲.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.