ⓘ اکس‌ال, زبان برنامه‌نویسی. ایکس ال یک زبان برنامه‌نویسی کامپیوتری است. باید توجه داشت که XL با زبان برنامه‌نویسی XML فرق دارد. XML یک زبان برنامه‌نویسی برای پیا ..

                                     

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

ایکس ال یک زبان برنامه‌نویسی کامپیوتری است.

باید توجه داشت که XL با زبان برنامه‌نویسی XML فرق دارد. XML یک زبان برنامه‌نویسی برای پیاده‌سازی خدمات وبی می‌باشد که در سال 2001 توسط Daniela Florescu، Andreas Grunhagen و Doland Kossmann به وجود آمد. در حالی که XL برای پیاده‌سازی ایده‌های برنامه‌نویسی مفهومی طراحی شد. XL سعی می‌کند تا تبدیل مفهوم و کد را به همدیگر آسان نماید.

XL زبانی است که به برنامه‌نویس این امکان را می‌دهد که با استفاده از plug-inهای گوناگون به compiler، خصوصیات جدیدی را هم از لحاظ قواعد و هم از لحاظ مفهوم به زبان اضافه نماید و به همین دلیل آن را programmer-reconfigurable syntax & semantics می خوانند. مشخصات کامپایلری این زبان باعث شده تا در زمره زبان‌های امری قرار گیرد. همچنین برنامه نویسان خودشان می‌توانند plug-inهای سلیقه‌ای نوشته و در application هایشان استفاده کنند.

                                     

1. تاریخچه

زبان XL حدوداً از سال 1992 به وجود آمد و نتیجه زحمات دراز مدت یک تیم طراحی زبان است. شایان ذکر است که سازنده و طراح اصلی این زبان Christophe de Dinechin می‌باشد. کامپایلر XL با زبان ++C نوشته شده‌است. نکته‌ای که در این زبان وجود داشت این بود که همه ویژگی‌هایی که بالا توصیف شده بود، درست کار می‌کرد؛ اما نوشتن plug-in برای آن یک کابوس بود، چون ++C خودش توسعه پذیر نیست بنابراین پیاده‌سازی ترجمه غیرممکن بود. درخت پارس با انواع زیادی از گره‌ها خیلی پیچیده بود. چون برای پشتیبانی زبان متقاطع طراحی شده بود. Moka یک کامپایلر توسعه پذیر Java-to-Java بود که از همین ساختار استفاده می‌کرد. در سال 2003 یک کامپایلر جدید با اصلاح کامل کامپایلر قبلی و ساده کردن درخت پارس آن معرفی شد. در سال 2004 کامپایلر ساده‌تری راه اندازی شد که سادگی درخت پارس آن در حدی بود که گره‌هایش به اندازه 7 نوع گره XL0 رسید و همه توسعه‌های امروزی در XL نوشته می‌شود.

                                     

2. زبان XL

زبان XL در 3 سطح تعریف می‌شود:

  • XL0 تعریف می‌کند که چگونه یک متن ورودی به یک درخت پارس تبدیل می‌شود.
  • XL1 یک زبان پایه با مشخصاتی نظیر زبان C++ تعریف می‌کند.
  • XL2 کتابخانه‌های استاندارد زبان را که شامل تایپ‌های داده‌ای و عملگرها می‌باشد، تعریف می‌کند.

XL از معدود زبان‌هایی است که تایپ ابتدایی و لغات کلیدی ندارد. همه تایپ‌های داده‌ای نظیر integer و عملگرهایش نظیر add در سطح 2، در کتابخانه‌های استاندارد تعریف می‌شود. XL1 هم دارای ویژگی قابل جابجایی بودن بر روی محیط‌های اجرایی گوناگون است. برنامه ساده!Hello World در زبان XL به صورت زیر نوشته می‌شود:

یا به گونه‌ای دیگر و با style مناسب تر می‌توان به صورت زیر نوشت:

                                     

3. قواعد

در سطح XL0 قواعد زبان تعریف می‌شوند. در فاز XL0 کامپایلر ویژگی‌هایی نظیر نحوه نمایش متن، اولویت عملگرها و. با استفاده از فایل توصیف قواعد، می‌تواند توصیف می‌شود. به عنوان مثال: فایل قواعد اصلی، نمادگذاری‌های ریاضی رایج مانند "+" برای عمل "جمع" و اولویت آن‌ها را تعریف می‌کند. درخت پارس: از 7 نوع گره تشکیل می‌شود. 4 تا مربوط به integer، real، text و symbol که برگ‌های درخت هم هستند و 3 تای دیگر هم گره‌های داخلی مربوط به prefix، infix و block هستند. integer: برای نمایش اعداد صحیح مثلاً عدد 2 به کار می‌رود. علامت # هم برای نمایش مبنای اعداد استفاده می‌شود. مثلاً: 101001 # 2. همچنین علامت خط تیره هم برای جداسازی بین اعداد بزرگ و افزایش خوانایی می‌باشد. مثلاً: 100_110_011 real: برای نمایش اعداد غیر صحیح مثلاً 2.5 به کار می‌رود. موارد مربوط به مبنای اعداد و خط تیره‌گذاری هم وجود دارد. مثلاً: 16#F.FFF#E-10 Text: داده‌های متنی را نمایش می‌دهد. عبارات متنی در بین double quotes و کاراکترها با single quotes محصور می‌شوند. Symbol: نمایش اسامی یا عملگرها را بر عهده دارد. اسامی شامل دنباله‌ای از حروف الفبا می‌باشد که با یک حرف شروع می‌شوند مثل Hello. بد نیست بدانید که XL1 بر خلاف XL0، بزرگ و کوچکی و خط تیره را نادیده نمی‌گیرد و مثلاً بین JohnDoe و john_doe تفاوت قائل می‌شود. و اما نمادها دنباله‌ای از کاراکترهای غیر الفبایی مثل *، =/= و. می‌باشد. infix: دو گره مرتبط به هم را با یک نماد میانوندی نمایش می‌دهد. مثلاً A and B یا 2 + 3. یکی دیگر از کاربردهای گره‌های میانوند، حضور در بین خطوط با نماد new-line برای جداسازی خط‌ها می‌باشد. Prefix: برای نمایش دو گره متوالی مثل: write" Hello” استفاده می‌شود. Block: گره‌هایی را که توسط گروهی از نمادها احاطه شده اند، نشان می‌دهد. مثلاً A یا index با فایل قواعد پیش فرض، عبارت زیر صرف نظر از معنی، یک جمله معتبر در سطح XL0 است:

و به این صورت تجزیه می‌شود:

                                     

4. معانی

فاز XL1 به عنوان دنبالی ای از عملیات روی درخت پارس XL0 است. این عملیات که توسط plug-inهای گوناگون کامپایلر فراهم می‌شوند، با توجه به شکل درخت پارس به وجود می‌آیند. ساختار ویژه translate توسط یک plug-in فراهم شده‌است تا نوشتن Plug-inهای دیگر را آسان نماید. ساختار quote هم یک درخت پارس را تولید می‌کند. در زیر نمونه‌ای از این نمادگذاری‌ها را می‌بینیم که چگونه در پیاده‌سازی یک plug-in به اسم ZeroRemoval نقش دارد.

فاز XL1 شامل مجموعه عظیمی از plug-inها می‌شود که abstractionهای رایجی نظیر subroutine، تایپ داده‌ای و تعریف متغیرها و همچنین اساس برنامه نویسی ساخت یافته مانند جملات شرطی یا حلقه‌ها را نیز فراهم می‌کند.

                                     

5. سیستم تایپ

فرایند چک کردن تایپ در XL1، به صورت ایستا با قابلیت برنامه‌نویسی عمومی نظیر ++C یا Ada می‌باشد. تایپ‌هایی مانند آرایه‌ها و اشاره گرها که در زبانی مثل ++C به عنوان تایپ اولیه تلقی می‌شود، در کتابخانه XL وجود دارد. به عنوان مثال، یک تایپ آرایه یک بعدی می‌تواند به صورت زیر تعریف شود:

تایپ عمومی معتبر، تایپ عمومی ای می‌باشد که توسط شرطی مشخص می‌کند، چه تایپی می‌تواند استفاده شود. یک تایپ منظم است، اگر یک ارتباط کمتری داشته باشد مانند:

در زبان XL این قابلیت وجود دارد تا تابعی را تعریف کنید که تلویحاً عمومی می‌باشد چون تایپ منظم خودش عمومی است.

همچنین این موضوع، برای تایپ‌های عمومی ای که پارامترهایی را دارند، مانند آرایه‌ها به کار می‌رود. یک تابعی که مجموع عناصر در هر آرایه را محاسبه می‌کند، به صورت زیر نوشته می‌شود:

                                     

6. لیست‌های آرگومان متغیر امن-تایپ

توابع می‌توانند overload شوند. یک تابع با استفاده از لغت کلیدی other در لیست پارامترها یش می‌تواند با تعداد متغیری آرگومان تعریف شود. در چنین تابعی، other استفاده می‌شود تا تعداد متغیر آرگومان‌ها را به یک subroutine دیگر بفرستد.

هنگامی که یک چنین تابعی صدا زده می‌شود، کامپایلر به‌طور بازگشتی توابع را معرفی می‌کند تا لیست پارامترها را تطبیق دهد.

                                     

7. کاهش عبارت Operator Overloading

عملگرها با استفاده از فرم written تعریف توابع بیان می‌شوند. در زیر کدی که جمع دو عدد صحیح را تعریف می‌کند، می‌بینیم:

فرم written می‌تواند بیشتر از دو پارامتر هم داشته باشد. به عنوان مثال یک ماتریس انتقال خطی به صورت زیر است:

فرم written همچنین می‌تواند از عدد ثابت‌ها نیز استفاده کند. نظیر:

مکانیزم مذکور برای پیاده‌سازی همه عملگرهای اساسی استفاده می‌شود.

                                     

8. دودمان

XL توسط تعداد زیادی از زبان‌های دیگر الهام بخشیده شد، که عبارتند از: Ada: پشتوانه‌های برنامه‌های با مقیاس بزرگ، مدیریت انتظارات، وظایف و جنبه‌های حمایتی. Basic: نشان می‌دهد که چگونه قواعد یک زبان برنامه‌سازی می‌تواند ساده باشد. basic یکی از اولین زبان‌های پیشرفته‌ای است که پرانتزهای دور فراخوانی subroutineها را اجباری نمی‌کرد. C: اساس برخی از زبان‌ها می‌باشد و به عنوان استانداردی بر حسب routineها و پشتیبانی‌های سطح ماشین می‌باشد، پس XL یک ماشین مجازی برای اجرا کردن نمی‌خواهد. ++C: کتابخانه template استاندارد، نیاز برای پشتیبانی از تایپ‌های عمومی را نشان می‌دهد که با معرفی صریح generic هابر خلاف Ada که در این زمینه دچار نقصان بود صورت می‌گیرد.

Fortran: عملکرد پیوسته این زبان، باعث به وجود آمدن زبان‌های C و ++C شد و در شناسایی ساختارهای زبان که مانع بهینه سازی مفید می‌باشد، کمک شایانی نمود. Java: اهمیت یک کتابخانه بزرگ و قابل جابجایی را شرح داد. اتصال با کد java به عنوان یک چالش برای XL باقی‌ماند. Lisp: به عنوان یه فاکتور کلیدی در بقا و ارتباط XL با عصر حاضر می‌باشد. زبان Lisp اولین زبانی بود که ویژگی‌های شی گرایی را به صورت عادی و معمولی درآورد و در این زمینه خیلی به XL کمک کرد. Prolog: مدل‌های گوناگون برنامه‌نویسی را شرح داد. همچنین تلاش‌های بسیاری هم صورت گرفت تا تضمین کند که یک plug-in استیل prolog می‌تواند برای XL هم نوشته شود. Visual Basic: نشان می‌دهد که چگونه نمایش منطقی درخت پارس از نمایش دیدنی اش می‌تواند متمایز شود. اندکی از مردم VB را ویرایش کردند. انتظار می‌رود که plug-inهای ویرایشی XL توانایی‌های شبیهی را با استفاده مستقیم از درخت پارس به دست آورند.

                                     
  • ایکس بی ال XC exploits XMOS architecture xHarbour اکس ال زبان برنامه نویسی Xojo XOTcl XPL XPL0 اکس کوئری XSB XSharp تبدیلات اکس اس ال see اکس پت Xtend
  • در زیر فهرست زبان های برنامه نویسی بر پایه نوع آمده است: زبان های برنامه نویسی آرایه ای همچنین به عنوان برداری Vector یا چند بعدی Multidimensional
  • زبان های برنامه نویسی به منظور پایش رفتار ماشین ها معمولا رایانهها به کار می روند. زبان های برنامه نویسی همانند زبان های طبیعی از قوانین نحو و معنا
  • یک زبان برنامه نویسی کامپیوتری است که بوسیله بنیاد موزیلا توسعه داده می شود. زول یک زبان نشانه گذاری واسط کاربر است که به عنوان یک گویش از اکس ام ال اجرا
  • جهانگیر W3C اچ تی ام ال HTML اکس اس ال پیچیدگی گرافیک برداری اندازه پذیر SVG سی شارپ جاوا اکس ام ال چگونه آنرا برنامه نویسی کنیم انگلیسی اینترنت
  • زبان برنامه نویسی ترجمه شده و دارای زباله جمع کن و همروند است که در شرکت گوگل و توسط رابرت گریسیمر راب پایک و کن تامپسون توسعه داده می شود. این زبان
  • زبان شیوه نامه گسترش پذیر به انگلیسی: Extensible Stylesheet Language با کوته نوشت اکس اس ال به انگلیسی: XSL در علم رایانه خانواده ای از زبان ها است
  • اکس اس ال تی به انگلیسی: XSLT یا تبدیلات زبان شیوه نامه گسترش پذیر به انگلیسی: Extensible Stylesheet Language Transformations زبانی برای تبدیل اسناد
  • Ruby یک زبان برنامه نویسی انعطاف پذیر وب تست نفوذ پویا و شیءگرا است. روبی ویژگی های نگارشی پرل و شی گرایی اسمال تاک را با هم در خود دارد. زبان روبی در
  • تعداد بازدید از صفحاتش به سادگی رقیبی برای کوبونتو است. ال اکس دی ئی با زبان برنامه نویسی سی و ابزارهای جی تی کی پلاس نوشته شده است و روی لینوکس و
  • برنامه نویسی سمت کاربر در یک مرورگر وب. یک رابط برنامه نویسی وب سمت سرور رابطی است برای یک سامانه پیغامی درخواست - پاسخ معمولا به صورت جی سن یا اکس ام ال
  • کتابخانه اکس به انگلیسی: Xlib یک کتابخانه پروتکل کلاینت سامانه پنجره اکس است که به زبان برنامه نویسی سی نوشته شده است. این کتابخانه دربرگیرنده توابعی