وايت سبيس (لغة برمجة)

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ بحث
ابرز قواعد وايت سبيس في برنامج hello world program ██ علامات (tabs) ██ مسافات (spaces)

وايت سبيس (Whitespace) هي لغة برمجة باطنية طورت من قبل إدوين برادي وكريس موريس في جامعة درم (بالإضافة إلى مطوري لغى كايا). تم إطلاقها في 1 أبريل 2003 (يوم كذبة أبريل).بعكس لغات البرمجة الأخرى والتي تتجاهل أو تعين معنى لمعضم حروف الوايت سبيس، يتجاهل مترجمها (interpreter) الحروف الـ non-whitespace. ويكون المعنى للـ spacesو tab و linefeeds.[1] وتستطيع برمجة وايت سبيس الارتباط بسهولة بحروف الوايت سبيس لبرنامج مكتوب بلغة أخرى، ماعدى بايثون، مما يجعل النص متعدد اللغات.

أيضاً، هي لغة محسنة من لغة الـ stack-based. وهي الآلة الافتراضية التي تشغل البرنامج الذي يحتوي على stack و heap. ويملك المبرمج حرية دفع الارقام الصحيحه بشكل تعسفي إلى stack (حالياً، لا يوجد تطبيق لأرقام floating point) ويستطيع الدخول إلى الذاكرة الأساسية للـheap للمتغيرات وهيكلة البيانات.

محتويات

التاريخ [عدل]

طورت لغة وايت سبيس من قبل إدوين برادي وكريس موريس في عام 2002. قام موقع Slashdot بإجراء مراجعة للغة في 1 أبريل 2003.[2]
وفي نفس العام تم تطبيق مترجم (interpreter) لها. وقد طرحت فكرة استخدام احرف الوايت سبيس للغة السي++ كمزحة قبل خمس سنوات من قبلبيارن ستروستروب.[3]

بناء الجملة [عدل]

تتألف الأوامر من سلسله مركبة من spaces، tab stops و linefeeds. مثال، tab-space-space-space adds أول عنصرين في الـ stack. يتم تمثيل البيانات بشكل ثنائي بحيث ريمز لـ spaces بـ (0) وtabs بـ(1)، متبوعة بـ linefeed، مثال، space-space-space-tab-space-tab-tab-linefeed تمثل الرقم 11. ويتم تجاهل الحروف الأخرى وتستخدم في التعليق.

كود بسيط [عدل]

يتم طبع "Hello World!". لاحظ أن أحرف الـ وايت سبيس تم إعطائها خلفية ملونه، لكن في التطبيق تكون مخفية. ( Space ,  Tab )

| | | |
| | | | | | |   | | | |
|       |       | | | | |       |
| | | | |       | | |   | |     |
|       |       | | | | |       | |
| | | | |       | |     |       | | |
|       |       | | | | |       |       |
| | | | |       | |     |       | | |
|       |       | | | | |       | | |
| | | | |       | |     |       |       |       |
|       |       | | | | |       | |     |
| | | | | |     |       | | |
|       |       | | | | |       |       | |
| | | | | | | | | |
|       |       | | | | |       |       |       |
| | | | |       |       | |     |       |       |
|       |       | | |
| | |   | | | |
| | | | |       | |     |       |       |       |
|       |       | | | | |       | | |   |
| | | | |       |       | | |   | |
|       |       | | | | |       | |     | |
| | | | |       | |     |       | | |
|       |       | | | | |       | |     |       |
| | | | |       | | |
|       | | |
|       |       | | | | |       |       | | |
| | | | | | | | |       |
|       |       | | | | |       |       | |     |
| | | | |       | |     |
|       |       | | | | |       |       |       | |
| | | | | |     | |
|       |       | | | | |       |       |       |       |
| | | | |
|       |
|       | | | | | |
empty-line
| | | | |       |
empty-line
| |     |       |       | |
empty-line
|       | | |   | |
|       |
| | | | | |     |
|       | | | |
empty-line
| | |   |
empty-line
| | | | | |
empty-line
empty-line/EOF

أنظر أيضاً [عدل]

المراجع [عدل]

وصلات خارجية [عدل]