کیوآی (زبان برنامه‌نویسی)

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

کیو آی نوعی زبان برنامه نویسی تابعی است که توسط دکتر مارک تراور در آوریل سال ۲۰۰۵ گسترش و معرفی شد. نسخه جدید و اصلاح یافته این برنامه نیز تحت عنوان کیو آی دو در نوامبر سال ۲۰۰۸ منتشرگردید. هرچند نسخه اولیه که تحت پروانه عمومی همگانی گنو (GPL) بود، به صورت رایگان عرضه شده بود، اما به خاطر عدم تایید GPL توسط کاربران تجاری، نسخه دوم تحت دو لیسانس انحصاری عرضه گردید: یکی جهت کاربری شخصی و آموزشی و دیگری برای تولید نرم‌افزارهای منابع محدود.

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

کیو آی و پروژه ال ۲۱[ویرایش]

هدف از گسترش کیو آی که درواقع بخشی از پروژه ال ۲۱ می باشد، تجهیز و مدرن سازی لیسپ به منظور برطرف کردن مشکلهای محسباتی قرن بیستم می باشد. دکتر تراور در سخنرانی خود با بیان پاره ای از مشکلها و کاستی های لیسپ به این مطلب اشاره کرد که این نواقص می تواند باعث اختلال در گستره بیشتری از زبانهای برنامه نویسی گردد. از جمله مهمترین نواقص ذکر شده توسط وی عبارتند از: عدم نبود قابلیت کنارهم چینی الگوها، مغایرت با فرضیه ریاضی لامبادا، اختلالهای موجود در روند کار و فقدان تایپ ایستا.

براساس نظریه های دکتر تراور نواقص ذکرشده باعث کاهش اقبال اساتید دانشگاهی به تدریس آن و متعاقباً کمبود فارغ التحصیلان به این زبان برنامه نویسی می باشد. به بیان دیگر وی این موانع را باعث شکل گیری جریانی میداند که از آن به نام "دور تسلسل کلاسیک" یاد می کند. لازم به ذکر است با در نظر گرفتن مشکلهای فوق‌الذکر می توان انتظار آن را داشت که این زبان رفته رفته با از دست دادن اقبال کاربران خود به زبانی مرده و بلااستفاده تبدیل گردد.

دکتر تراور معتقد است که راه حل برطرف ساختن این مشکلها هم می تواند در بستر صنعت ارائه گردد و هم در جامعه دانشگاهی. با توجه به هزینه بری بالای اجرای صنعتی، وی برآن شد تا جهت رفع نواقص به مدرن سازی لیسپ در سطح دانشگاهی بپردازد تا کاربر کیو آی حداقل تا مدت ۲۵ سال با مشکلی روبرو نگردد . ازاین رو راهکار خود را در قالب اصولی ۱۰ گانه به شرح زیر ارائه داد:

  1. سازگاری با لیسپ: اکثر ساختارها و شاخصه های موجود تحت زبان و فرمان های لیسپ می باشند.
  2. رایگان برای کاربری تجاری و آموزشی.
  3. رعایت اصل اختصار: هیچ برنامه ای نباید طولانی تر از دستورهای مشترک لیسپ باشد.
  4. قابلیت فراگیری آسان: ساختار و صرف و نحو زبان بایستی در حد یادگیری یک کودک باشد.
  5. کارآمدی: راه حل ارائه شده می بایستی مولد برنامه هایی باشد که به لحاظ سرعت هم راستا با لیسپ باشند. برنامه های کیو آی اغلب سریعتر بودند.
  6. دارا بودن ویژگیهای یک زبان برنامه نویسی تابعی. درواقع در چهارچوب این اصل دکترتراور خصوصیتهایی را به برنامه اضافه نمود که عبارتند از: مدیریت فهرستهای الگو محور، تایپ ایستا، دستورهای اجرایی و برنامه های کاربردی نسبی.
  7. نبود هیچ عضوی از هاسکل یا ام‌ال که موجب بقای آن در آینده خواهد بود.
  8. دقت محاسبه ای: بدین معنا که برآور کننده نیازهای روز برنامه نویسان بوده و برخلاف لیسپ که فاقد ساختارهای زبانهای خارجی و گرافیکی بود، این نرم‌افزار با دربرداشتن ویژگیهای منحصربه‌فرد خود به ابزار مدیریتی قدرتمندی تبدیل شده است.
  9. قابلیت اعمال تغییرهای متنوع ساختاری توسط کاربر. بدین منظور کیو آی با بهره مندی از دو سطح s-expression و m-expression این امکان را برای کاربر فراهم می آورد تا در صورت نیاز ساختار صرفی برنامه را برای هدف مورد نظر خود تغییر دهد.
  10. امنیت و خوش ساختاری: کیو آی به لحاظ ساختاری کاملاً مستند بوده و به صورت آنلاین می توان به اسناد رسمی آن دستیابی پیدا کرد.

معماری (ساختار)[ویرایش]

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

چک کردن تایپ[ویرایش]

تایپ ایستا در کیو آی انتخابی می باشد که جهت فعال سازی آن از (tc +) و برای غیرفعال کردن آن از (tc -) استفاده می شود. سیستم تایپی با شناسایی نمادها، متغیرها، رشته ها، شماره ها و کاراکتر ها به عنوان انواع ابتدایی به بررسی موارد موجود در چرخه می پردازد. توابع در این برنامه به وضوح با عنوان امید (Hope) تایپ می شوند. حرف A نیزبه صورت اختصار برای نوع به کار می رود.

منابع[ویرایش]

  • ویکی‌پدیای انگلیسی