إذا كنت من مستخدمي برنامج أوتوكاد، فلا بد أنك قد سمعت بكلمة أوتوليسب تطرق بابك من حين لآخر، سواء كان ذلك من مستخدمين آخرين، أو عند تصفح الشبكة العالمية، أو حتى عند مطالعتك لإحدى المقالات المختصة بنظم التصميم بالحاسوب (CAD Systems). فما هو أوتوليسب إذاً؟
شيء من التاريخ:
أوتوليسب (AutoLISP) لغة برمجة طورتها شركة أوتوديسك (الشركة المنتجة لأوتوكاد) لتزيد من إمكانيات مستخدم أوتوكاد، بمنحه إمكانية تعريف مجموعة من الأوامر و التعليمات معاً، بحيث تُنفذ كأمر مستقل، يُضاف إلى مكتبة أوامر أوتوكاد المعروفة.
أُطلقت أوتوليسب في مايو 1985، كرزمة مستقلة عن أوتوكاد، ثم ما لبثت أوتوديسك أن ضمتها إلى أوتوكاد 2.18 في كانو ن الثاني/يناير 1986، وعندئذٍ أصبحت أوتوليسب في متناول أيدي مستخدمي أوتوكاد، كونها غدت جزءاً لا يتجزأ من البرنامج نفسه.
ومما لابد من ذكره أن أوتوليسب نسخة مبسطة و مطورة في الأصل عن لغة الذكاء الصناعي الشائعة LISP و التي استمدت اسمها من عبارة "معالجة اللوائح" (LISt Processor)، ولغة البرمجة هذه لغة برمجة كائنية المنحى، طورها John McCarthy في أواخر الخمسينات، و تعتبر بحق من أقدم لغات البرمجة التي لم تزل مستخدمة حتى اليوم بشكل أساسي في تطبيقات الذكاء الصناعي و الأنظمة الخبيرة (Expert Systems)، و تعتبر أوتوليسب نسخة معدّلة و مبسطة عن هذه اللغة طورت خصيصاً بحيث تتوافق مع البيئة الرسومية التي يتمتع بها أوتوكاد.
مفسر أوتوليسب:
أتوليسب لغة مفسرة (Interpreted Language)، يعني ذلك أن كل شفرة تدخل إلى نافذة الأوامر في أوتوكاد يقرؤها مفسر (Interpreter) أوتوليسب مباشرة، فيتم تحديد ما إذا كانت هذه الشفرة خاصة بأوتوليسب أم لا، فإن كانت كذلك، يقوم عندها المفسر بالمعالجة ويعيد الجواب إلى المستخدم فور الانتهاء منها، سواء عبر سطر الأوامر ذاته أو من خلال تنفيذ عملية ما على الشاشة. فإذا أدخلنا مثلاًَ في سطر أوامر أوتوكاد العبارة (+ 0.618 1) يعيد مفسر أوتوليسب الرقم 1.618 كناتج لهذه العملية، كما يلي:
Command: (+ 0.618 1)
1.618
Command:
بعد أن قرأ مفسر أوتوليسب العبارة السابقة و حدد ماهيتها على أنها شفرة أوتوليسب و ليست أمر أوتوكاد عادي، قام بمعالجتها و إظهار الناتج، تسمى هذه العملية في اللغات المفسّرة بحلقة القراءة – التقييم – الطباعة (Read-Eval-Print).
ُيظهر هذا آلية عمل مفسر أوتوليسب داخل أوتوكاد و يميزه بالتالي عن معظم لغات البرمجة الأخرى مثل سي وباسكال وفورتران التي تعتمد مبدأ اللغة المصرفة (أو المترجمة) Compiled Language، حيث يتم تحويل الشفرة المصدرية المكتوبة بأحد هذه البرامج من صيغة ASCII إلى مجموعة من التعليمات الثنائية Binary بلغة الآلة، ليتمكن الحاسوب من تنفيذها لاحقاً.
تعبير أوتوليسب:
إن البنية التي اعتمدناها في المثال السابق والمحاطة بقوسين تدعى تعبيراً (expression) في اصطلاح أوتوليسب، و يتألف التعبير عادة من الأجزاء التالية:
الوظيفة (function): مثل عملية الجمع في مثالنا السابق.
الوسائط (arguments): وهي المتحولات التي نمررها إلى الوظيفة، فتنفذ الوظيفة عليها، وهي الرقم 0.681 والرقم 1 في المثال السابق. ويمكن أن تكون هذه الوسائط أرقاماً أو نصوصاً الخ، كما يمكنها أن تكون تعبير أوتوليسب آخر، وتسمى في هذه الحالة تعبيراً معشّشاً.
الأقواس المتوازنة (balanced parenthesis): وهي مهمة جداً في بناء التعبير، ويجب أن يكون لكل قوس على الجهة اليسرى من التعبير ما يماثله على الجهة اليمنى، وبعد انتهاء مفسر أوتوليسب من قراءة وتقييم التعبير، فإنه يعيد قيمة (value) كنتيجة لتقييم التعبير.
ويمكننا القول إنه يجب أن يكون لكل ما يوجّه إلى مفسّر أوتوليسب البنية السابقة ذاتها، من أبسط شفرة إلى أعقد برنامج، كونها تشكل قالباً نموذجياً للعمليات داخل أوتوليسب.
كتب:سهيل زخّور
جامعة قطر - قسم الهندسة المدنية والمعمارية
suhz@qu.edu.qa
_________________





