أبل سكريبت: الفرق بين النسختين

من ويكيبيديا، الموسوعة الحرة
[مراجعة غير مفحوصة][مراجعة غير مفحوصة]
تم حذف المحتوى تمت إضافة المحتوى
توسعة، من ويكيبيديا الأنجليزية.
وسم: تعديلات طويلة
ط بوت:إضافة وصلة أرشيفية.
سطر 1: سطر 1:
{{بطاقة لغة برمجة}}
{{بطاقة لغة برمجة}}
'''آبل اسكربت''' {{إنج|AppleScript}} هي لغة برمجة نصية أنشأتها شركة [[أبل|آبل]]، وتم دمجها في نظام التشغيل [[ماك أو إس]]، و تهدف إلى العمل بالتوازي مع [[واجهة مستخدم رسومية|واجهة المستخدم الرسومية]].<ref>{{استشهاد ويب| مسار = https://id.loc.gov/authorities/sh93008583 | عنوان = معلومات عن آبل اسكربت على موقع id.loc.gov | ناشر = id.loc.gov|مسار أرشيف= https://web.archive.org/web/20200408234246/https://id.loc.gov/authorities/sh93008583|تاريخ أرشيف=2020-04-08}}</ref>
'''آبل اسكربت''' {{إنج|AppleScript}} هي لغة برمجة نصية أنشأتها شركة [[أبل|آبل]]، وتم دمجها في نظام التشغيل [[ماك أو إس]]، و تهدف إلى العمل بالتوازي مع [[واجهة مستخدم رسومية|واجهة المستخدم الرسومية]].<ref>{{استشهاد ويب| مسار = https://id.loc.gov/authorities/sh93008583 | عنوان = معلومات عن آبل اسكربت على موقع id.loc.gov | ناشر = id.loc.gov|مسار أرشيف= https://web.archive.org/web/20200408234246/https://id.loc.gov/authorities/sh93008583|تاريخ أرشيف=2020-04-08}}</ref>
== نظرة عامة==
== نظرة عامة ==


AppleScript هي لغة برمجة نصية تم تطويرها بواسطة [[أبل]] لإجراء اتصالات بين التطبيقات (IAC) باستخدام [[أحداث أبل]]. ترتبط AppleScript [[بأحداث أبل]] ولكنها تختلف عنها. تم تصميم [[أحداث أبل]] لتبادل البيانات والتحكم في التطبيقات الأخرى من أجل [[أتمتة المهام المتكررة]].
AppleScript هي لغة برمجة نصية تم تطويرها بواسطة [[أبل]] لإجراء اتصالات بين التطبيقات (IAC) باستخدام [[أحداث أبل]]. ترتبط AppleScript [[بأحداث أبل]] ولكنها تختلف عنها. تم تصميم [[أحداث أبل]] لتبادل البيانات والتحكم في التطبيقات الأخرى من أجل [[أتمتة المهام المتكررة]].
سطر 7: سطر 7:
تمتلك AppleScript بعض قدرات المعالجة الخاصة بها ، بالإضافة إلى إرسال واستقبال [[أحداث أبل]] إلى التطبيقات. يمكن لـ AppleScript إجراء العمليات الحسابية الأساسية و[[معالج كلمات|معالجة النصوص]] ، وهي قابلة للتوسيع ، مما يسمح باستخدام إضافات البرمجة النصية التي تضيف وظائف جديدة إلى اللغة. ومع ذلك ، تعتمد AppleScript بشكل أساسي على وظائف التطبيقات والعمليات للتعامل مع المهام المعقدة. كلغة أوامر منظمة ، يمكن مقارنة AppleScript ب[[شل يونكس]] أو Microsoft Windows Script Host أو IBM REXX ولكنها تختلف عن الثلاثة. حقيقة أن تطبيقات Macintosh تنشر "[[قاموس|قواميس]]" للكائنات والعمليات القابلة للتوجيه;ضروري جداً حتى يتمكن أبل سكربت من تأدية وظائفه.
تمتلك AppleScript بعض قدرات المعالجة الخاصة بها ، بالإضافة إلى إرسال واستقبال [[أحداث أبل]] إلى التطبيقات. يمكن لـ AppleScript إجراء العمليات الحسابية الأساسية و[[معالج كلمات|معالجة النصوص]] ، وهي قابلة للتوسيع ، مما يسمح باستخدام إضافات البرمجة النصية التي تضيف وظائف جديدة إلى اللغة. ومع ذلك ، تعتمد AppleScript بشكل أساسي على وظائف التطبيقات والعمليات للتعامل مع المهام المعقدة. كلغة أوامر منظمة ، يمكن مقارنة AppleScript ب[[شل يونكس]] أو Microsoft Windows Script Host أو IBM REXX ولكنها تختلف عن الثلاثة. حقيقة أن تطبيقات Macintosh تنشر "[[قاموس|قواميس]]" للكائنات والعمليات القابلة للتوجيه;ضروري جداً حتى يتمكن أبل سكربت من تأدية وظائفه.


يحتوي AppleScript على بعض عناصر [[برمجة إجرائية|البرمجة الإجرائية]] ، وال[[برمجة كائنية التوجه|برمجة الموجهة للكائنات]] (خاصة في إنشاء كائنات النص البرمجي) ، واتجاهات برمجة [[لغة طبيعية|اللغة الطبيعية]] في تركيبها ، ولكنها لا تتوافق تمامًا مع أي من نماذج البرمجة هذه.<ref name="enwiki">https://en.wikipedia.org/wiki/AppleScript</ref>
يحتوي AppleScript على بعض عناصر [[برمجة إجرائية|البرمجة الإجرائية]] ، وال[[برمجة كائنية التوجه|برمجة الموجهة للكائنات]] (خاصة في إنشاء كائنات النص البرمجي) ، واتجاهات برمجة [[لغة طبيعية|اللغة الطبيعية]] في تركيبها ، ولكنها لا تتوافق تمامًا مع أي من نماذج البرمجة هذه.<ref name="enwiki">https://en.wikipedia.org/wiki/AppleScript {{Webarchive|url=https://web.archive.org/web/20221118030445/https://en.wikipedia.org/wiki/AppleScript|date=2022-11-18}}</ref>
== تاريخ ==
== تاريخ ==
في أواخر الثمانينيات من القرن الماضي ، اعتبرت [[أبل|شركة أبل]] استخدام لغة البرمجة HyperTalk الخاصة بـ HyperCard كلغة تطوير قياسية للمستخدم النهائي، عبر الشركة وضمن نظام تشغيل Mac OS الكلاسيكي ، وكذلك لتمكين التواصل بين [[عملية (حوسبة)|العمليات]] الخاصة بمنتجات Apple مع [[عملية (حوسبة)|عمليات]] المنتجات الأخرى. يمكن للمبتدئين استخدام HyperTalk لبرمجة مكدس HyperCard. أدرك مهندسو [[أبل]] أنه يمكن تصميم لغة برمجة نصية مماثلة ، ولكن أكثر توجهاً للكائنات ، لاستخدامها مع أي تطبيق ، وقد وُلد مشروع AppleScript كبرنامج منبثق عن جهد بحثي لتحديث نظام Macintosh ككل وأصبح أخيرًا جزءًا من النظام 7 (Mac OS 7).<ref>https://books.google.com/books?id=_40AkCe9nOUC</ref>
في أواخر الثمانينيات من القرن الماضي ، اعتبرت [[أبل|شركة أبل]] استخدام لغة البرمجة HyperTalk الخاصة بـ HyperCard كلغة تطوير قياسية للمستخدم النهائي، عبر الشركة وضمن نظام تشغيل Mac OS الكلاسيكي ، وكذلك لتمكين التواصل بين [[عملية (حوسبة)|العمليات]] الخاصة بمنتجات Apple مع [[عملية (حوسبة)|عمليات]] المنتجات الأخرى. يمكن للمبتدئين استخدام HyperTalk لبرمجة مكدس HyperCard. أدرك مهندسو [[أبل]] أنه يمكن تصميم لغة برمجة نصية مماثلة ، ولكن أكثر توجهاً للكائنات ، لاستخدامها مع أي تطبيق ، وقد وُلد مشروع AppleScript كبرنامج منبثق عن جهد بحثي لتحديث نظام Macintosh ككل وأصبح أخيرًا جزءًا من النظام 7 (Mac OS 7).<ref>https://books.google.com/books?id=_40AkCe9nOUC {{Webarchive|url=https://web.archive.org/web/20200726075210/https://books.google.com/books?id=_40AkCe9nOUC|date=2020-07-26}}</ref>


تم إصدار AppleScript في أكتوبر 1993 كجزء من نظام 7.1.1 (نظام ماك 7 Pro ، أول ترقية رئيسية للنظام 7). كان QuarkXPress (الإصدار 3.2) من أوائل التطبيقات البرمجية الرئيسية التي دعمت AppleScript. أدى هذا بدوره إلى اعتماد AppleScript على نطاق واسع في عالم النشر وما قبل الطباعة ، وغالبًا ما يربط معًا مهام سير العمل المعقدة. كان هذا عاملاً رئيسيًا في الحفاظ على موقع [[ماكنتوش|Macintosh]] المهيمن في النشر وما قبل الطباعة ، حتى بعد نقل QuarkXpress وتطبيقات النشر الأخرى إلى [[مايكروسوفت ويندوز|Microsoft Windows]].<ref name="enwiki"></ref>
تم إصدار AppleScript في أكتوبر 1993 كجزء من نظام 7.1.1 (نظام ماك 7 Pro ، أول ترقية رئيسية للنظام 7). كان QuarkXPress (الإصدار 3.2) من أوائل التطبيقات البرمجية الرئيسية التي دعمت AppleScript. أدى هذا بدوره إلى اعتماد AppleScript على نطاق واسع في عالم النشر وما قبل الطباعة ، وغالبًا ما يربط معًا مهام سير العمل المعقدة. كان هذا عاملاً رئيسيًا في الحفاظ على موقع [[ماكنتوش|Macintosh]] المهيمن في النشر وما قبل الطباعة ، حتى بعد نقل QuarkXpress وتطبيقات النشر الأخرى إلى [[مايكروسوفت ويندوز|Microsoft Windows]].<ref name="enwiki"/>


بعد بعض الشكوك بشأن مستقبل AppleScript في الجيل التالي من نظام التشغيل من [[أبل]] ، أدى الانتقال إلى [[ماك أو إس إكس 10.0|Mac OS X]] (حوالي 2002) وأطر عمل Cocoa إلى زيادة فائدة ومرونة AppleScript بشكل كبير. تتيح تطبيقات Cocoa لمطوري التطبيقات تنفيذ قابلية البرمجة الأساسية لتطبيقاتهم بأقل جهد ممكن ، مما يؤدي إلى زيادة عدد التطبيقات القابلة للبرمجة مباشرة. في الوقت نفسه ، أتاح التحول إلى أسس [[يونكس]] وقدرة AppleScript على تشغيل [[أوامر يونكس|أوامر Unix]] مباشرة ، باستخدام الأمر <code>do shell script</code> لأبل سكريبت تحكم أكبر بكثير في نظام التشغيل نفسه.
بعد بعض الشكوك بشأن مستقبل AppleScript في الجيل التالي من نظام التشغيل من [[أبل]] ، أدى الانتقال إلى [[ماك أو إس إكس 10.0|Mac OS X]] (حوالي 2002) وأطر عمل Cocoa إلى زيادة فائدة ومرونة AppleScript بشكل كبير. تتيح تطبيقات Cocoa لمطوري التطبيقات تنفيذ قابلية البرمجة الأساسية لتطبيقاتهم بأقل جهد ممكن ، مما يؤدي إلى زيادة عدد التطبيقات القابلة للبرمجة مباشرة. في الوقت نفسه ، أتاح التحول إلى أسس [[يونكس]] وقدرة AppleScript على تشغيل [[أوامر يونكس|أوامر Unix]] مباشرة ، باستخدام الأمر <code>do shell script</code> لأبل سكريبت تحكم أكبر بكثير في نظام التشغيل نفسه.
''AppleScript Studio'' ، تم إصداره مع نظام التشغيل Mac OS X 10.2 كجزء من Xcode ، وإطار عمل AppleScriptObjC الأحدث ، الذي تم إصداره في نظام التشغيل Mac OS X 10.6 ، سمح للمستخدمين بإنشاء تطبيقات Cocoa باستخدام AppleScript. <ref name="enwiki"></ref>
''AppleScript Studio'' ، تم إصداره مع نظام التشغيل Mac OS X 10.2 كجزء من Xcode ، وإطار عمل AppleScriptObjC الأحدث ، الذي تم إصداره في نظام التشغيل Mac OS X 10.6 ، سمح للمستخدمين بإنشاء تطبيقات Cocoa باستخدام AppleScript. <ref name="enwiki"/>


في أكتوبر 2016 ، غادر سال سوجويان ، مدير منتج AppleScript ومبشر الأتمتة ، شركة [[أبل]] عندما تم إلغاء منصبه "لأسباب تتعلق بالعمل". استجاب قدامى المحاربين في مجتمع Mac مثل [[John Gruber]] و Andy Ihnatko بشكل عام بقلق ، وشككوا في التزام [[أبل]] تجاه مجتمع [[مطور برمجيات|المطورين]] والمستخدمين المحترفين. رد نائب الرئيس الأول لهندسة البرمجيات في [[أبل]] ، كريج فيديريغي ، في رسالة بريد إلكتروني قائلاً: "''لدينا كل النية لمواصلة دعمنا لتقنيات الأتمتة العظيمة في macOS!''" ، على الرغم من أن جيف جاميت في Mac Observer رأى أن ذلك لم يفعل شيئًا يذكر لتهدئة شكوكه حول مستقبل أتمتة Apple بشكل عام و AppleScript بشكل خاص. في الوقت الحالي ، تظل AppleScript أحد مكونات تقنيات [[أتمتة العمليات الآلية|أتمتة]] macOS ، جنبًا إلى جنب مع [[Automator]] و Shortcuts و Services و shell scripting.
في أكتوبر 2016 ، غادر سال سوجويان ، مدير منتج AppleScript ومبشر الأتمتة ، شركة [[أبل]] عندما تم إلغاء منصبه "لأسباب تتعلق بالعمل". استجاب قدامى المحاربين في مجتمع Mac مثل [[John Gruber]] و Andy Ihnatko بشكل عام بقلق ، وشككوا في التزام [[أبل]] تجاه مجتمع [[مطور برمجيات|المطورين]] والمستخدمين المحترفين. رد نائب الرئيس الأول لهندسة البرمجيات في [[أبل]] ، كريج فيديريغي ، في رسالة بريد إلكتروني قائلاً: "''لدينا كل النية لمواصلة دعمنا لتقنيات الأتمتة العظيمة في macOS!''" ، على الرغم من أن جيف جاميت في Mac Observer رأى أن ذلك لم يفعل شيئًا يذكر لتهدئة شكوكه حول مستقبل أتمتة Apple بشكل عام و AppleScript بشكل خاص. في الوقت الحالي ، تظل AppleScript أحد مكونات تقنيات [[أتمتة العمليات الآلية|أتمتة]] macOS ، جنبًا إلى جنب مع [[Automator]] و Shortcuts و Services و shell scripting.
<ref name="enwiki"></ref>
<ref name="enwiki"/>
==مفاهيم أساسية==
== مفاهيم أساسية ==
== التعليقات برمجياً ==
== التعليقات برمجياً ==
يمكن عمل التعليقات بطرق متعددة. يمكن أن يبدأ التعليق المكون من سطر واحد بشرطتين (--). في AppleScript 2.0 ، الذي تم إصداره لأول مرة في نظام التشغيل Mac OS X Leopard ، قد يبدأ أيضًا بعلامة الرقم (#). يسمح هذا بتخزين برنامج نصي AppleScript قائم بذاته كملف نصي قابل للتنفيذ يبدأ بسطر <code>#!/usr/bin/osascript</code> مثال:
يمكن عمل التعليقات بطرق متعددة. يمكن أن يبدأ التعليق المكون من سطر واحد بشرطتين (--). في AppleScript 2.0 ، الذي تم إصداره لأول مرة في نظام التشغيل Mac OS X Leopard ، قد يبدأ أيضًا بعلامة الرقم (#). يسمح هذا بتخزين برنامج نصي AppleScript قائم بذاته كملف نصي قابل للتنفيذ يبدأ بسطر <code>#!/usr/bin/osascript</code> مثال:
سطر 37: سطر 37:


== برنامج أهلا بالعالم ==
== برنامج أهلا بالعالم ==
في AppleScript ، يمكن كتابة البرنامج التقليدي ''أهلا بالعالم''(!Hello World) في عدة أشكال مختلفة ، بما في ذلك:
في AppleScript ، يمكن كتابة البرنامج التقليدي ''أهلا بالعالم''(!Hello World) في عدة أشكال مختلفة ، بما في ذلك:


<syntaxhighlight lang="applescript">
<syntaxhighlight lang="applescript">
سطر 94: سطر 94:
end if
end if
</syntaxhighlight>
</syntaxhighlight>
<ref name="enwiki"></ref>
<ref name="enwiki"/>
==استعارات اللغة الطبيعية==
== استعارات اللغة الطبيعية ==
في حين أن [[أحداث أبل]] هي وسيلة لإرسال الرسائل إلى [[تطبيق|التطبيقات]] ، فإن AppleScript هي لغة معينة مصممة لإرسال [[أحداث أبل]].
في حين أن [[أحداث أبل]] هي وسيلة لإرسال الرسائل إلى [[تطبيق|التطبيقات]] ، فإن AppleScript هي لغة معينة مصممة لإرسال [[أحداث أبل]].
تماشياً مع هدف سهولة الاستخدام للمبتدئين ، تم تصميم لغة AppleScript على استعارة اللغة الطبيعية ، تمامًا كما تم تصميم واجهة المستخدم الرسومية على استعارة سطح المكتب. يجب أن يكون AppleScript المكتوب جيدًا واضحًا بما يكفي ليقرأه ويفهمه أي شخص ، كما يجب تحريره بسهولة. تعتمد اللغة إلى حد كبير على لغة HyperTalk التابعة لـ HyperCard ، والتي امتدت لتشير ليس فقط إلى عالم HyperCard للبطاقات والمكدسات ، ولكن أيضًا من الناحية النظرية إلى أي [[مستند]]. تحقيقًا لهذه الغاية ، قدم فريق AppleScript [[أحداث أبل|نموذج كائن حدث أبل]] (AEOM) ، والذي يحدد الكائنات التي "يعرفها" أي تطبيق معين.<ref name="enwiki"></ref>
تماشياً مع هدف سهولة الاستخدام للمبتدئين ، تم تصميم لغة AppleScript على استعارة اللغة الطبيعية ، تمامًا كما تم تصميم واجهة المستخدم الرسومية على استعارة سطح المكتب. يجب أن يكون AppleScript المكتوب جيدًا واضحًا بما يكفي ليقرأه ويفهمه أي شخص ، كما يجب تحريره بسهولة. تعتمد اللغة إلى حد كبير على لغة HyperTalk التابعة لـ HyperCard ، والتي امتدت لتشير ليس فقط إلى عالم HyperCard للبطاقات والمكدسات ، ولكن أيضًا من الناحية النظرية إلى أي [[مستند]]. تحقيقًا لهذه الغاية ، قدم فريق AppleScript [[أحداث أبل|نموذج كائن حدث أبل]] (AEOM) ، والذي يحدد الكائنات التي "يعرفها" أي تطبيق معين.<ref name="enwiki"/>


جوهر لغة AppleScript هو استخدام المصطلحات التي تعمل كأسماء وأفعال يمكن دمجها. على سبيل المثال ، بدلاً من فعل مختلف لطباعة صفحة أو مستند أو نطاق من الصفحات (مثل printPage و printDocument و printRange) ، تستخدم AppleScript فعل "print" واحد يمكن دمجه مع [[كائن (حوسبة)|كائن]] ، مثل صفحة أو وثيقة أو مجموعة من الصفحات.<ref name="enwiki"></ref>
جوهر لغة AppleScript هو استخدام المصطلحات التي تعمل كأسماء وأفعال يمكن دمجها. على سبيل المثال ، بدلاً من فعل مختلف لطباعة صفحة أو مستند أو نطاق من الصفحات (مثل printPage و printDocument و printRange) ، تستخدم AppleScript فعل "print" واحد يمكن دمجه مع [[كائن (حوسبة)|كائن]] ، مثل صفحة أو وثيقة أو مجموعة من الصفحات.<ref name="enwiki"/>


<syntaxhighlight lang="AppleScript">
<syntaxhighlight lang="AppleScript">
سطر 109: سطر 109:
</syntaxhighlight>
</syntaxhighlight>


بشكل عام ، تحدد AEOM عددًا من الكائنات - مثل مستند "document" أو فقرة "paragraph" - والإجراءات المقابلة - مثل "cut" و "close". يحدد النظام أيضًا طرقًا للإشارة إلى خصائص الكائنات ، بحيث يمكن للمرء الرجوع إلى "الفقرة الثالثة من المستند" يوم جيد "--"third paragraph of the document 'Good Day'"، أو" لون الكلمة الأخيرة من النافذة الأمامية "--"color of the last word of the front window". يستخدم AEOM تطبيق القاموس''dictionary''" لربط [[أحداث أبل]] بمصطلحات يمكن للبشر قراءتها ، مما يسمح بالترجمة ذهابًا وإيابًا بين أحداث AppleScript القابلة للقراءة البشرية و[[أحداث أبل]] ذات الرمز الثانوي. لاكتشاف عناصر البرنامج القابلة للبرمجة ، يمكن عرض قواميس التطبيقات المدعومة. (في تطبيقي Xcode و Script Editor ، يوجد هذا ضمن File → Open Dictionary.)<ref name="enwiki"></ref>
بشكل عام ، تحدد AEOM عددًا من الكائنات - مثل مستند "document" أو فقرة "paragraph" - والإجراءات المقابلة - مثل "cut" و "close". يحدد النظام أيضًا طرقًا للإشارة إلى خصائص الكائنات ، بحيث يمكن للمرء الرجوع إلى "الفقرة الثالثة من المستند" يوم جيد "--"third paragraph of the document 'Good Day'"، أو" لون الكلمة الأخيرة من النافذة الأمامية "--"color of the last word of the front window". يستخدم AEOM تطبيق القاموس''dictionary''" لربط [[أحداث أبل]] بمصطلحات يمكن للبشر قراءتها ، مما يسمح بالترجمة ذهابًا وإيابًا بين أحداث AppleScript القابلة للقراءة البشرية و[[أحداث أبل]] ذات الرمز الثانوي. لاكتشاف عناصر البرنامج القابلة للبرمجة ، يمكن عرض قواميس التطبيقات المدعومة. (في تطبيقي Xcode و Script Editor ، يوجد هذا ضمن File → Open Dictionary.)<ref name="enwiki"/>


لتحديد التطبيق المقصود أن يكون هدفًا لمثل هذه الرسالة ، تستخدم AppleScript بنية "tell":
لتحديد التطبيق المقصود أن يكون هدفًا لمثل هذه الرسالة ، تستخدم AppleScript بنية "tell":
سطر 217: سطر 217:
end tell
end tell
</syntaxhighlight>
</syntaxhighlight>
<ref name="enwiki"></ref>
<ref name="enwiki"/>
==ادوات التطوير==
== ادوات التطوير ==
==موارد آبل اسكربت==
== موارد آبل اسكربت ==
==أساسيات اللغة==
== أساسيات اللغة ==
==أسلوب البرمجة النصية المفتوح==
== أسلوب البرمجة النصية المفتوح ==
أحد الجوانب المهمة لتطبيق AppleScript هو '''Open Scripting Architecture (OSA)'''. توفر '''Apple OSA''' للغات البرمجة النصية الأخرى ومنتجات البرمجة النصية / الأتمتة التابعة لجهات خارجية مثل QuicKeys و UserLand Frontier ، للعمل في حالة متساوية مع AppleScript. تم تنفيذ AppleScript كمكون برمجة نصية ، وكانت المواصفات الأساسية لربط هذه المكونات بـ OSA عامة ، مما يسمح للمطورين الآخرين بإضافة مكونات البرمجة النصية الخاصة بهم إلى النظام. ستعمل واجهات برمجة التطبيقات الخاصة بالعميل العام لتحميل النصوص البرمجية وحفظها وتجميعها بنفس الطريقة لجميع هذه المكونات ، مما يعني أيضًا أن التطبيقات الصغيرة والقطيرات يمكنها الاحتفاظ بنصوص برمجية في أي من لغات البرمجة النصية هذه.<ref name="enwiki"></ref>
أحد الجوانب المهمة لتطبيق AppleScript هو '''Open Scripting Architecture (OSA)'''. توفر '''Apple OSA''' للغات البرمجة النصية الأخرى ومنتجات البرمجة النصية / الأتمتة التابعة لجهات خارجية مثل QuicKeys و UserLand Frontier ، للعمل في حالة متساوية مع AppleScript. تم تنفيذ AppleScript كمكون برمجة نصية ، وكانت المواصفات الأساسية لربط هذه المكونات بـ OSA عامة ، مما يسمح للمطورين الآخرين بإضافة مكونات البرمجة النصية الخاصة بهم إلى النظام. ستعمل واجهات برمجة التطبيقات الخاصة بالعميل العام لتحميل النصوص البرمجية وحفظها وتجميعها بنفس الطريقة لجميع هذه المكونات ، مما يعني أيضًا أن التطبيقات الصغيرة والقطيرات يمكنها الاحتفاظ بنصوص برمجية في أي من لغات البرمجة النصية هذه.<ref name="enwiki"/>


إحدى ميزات OSA هي إضافات البرمجة النصية ، أو OSAX لـ Open Scripting Architecture eXtension ، المستوحاة من أوامر HyperCard الخارجية.
إحدى ميزات OSA هي إضافات البرمجة النصية ، أو OSAX لـ Open Scripting Architecture eXtension ، المستوحاة من أوامر HyperCard الخارجية.
إضافات البرمجة النصية هي مكتبات تسمح للمبرمجين بتوسيع وظيفة AppleScript. الأوامر المضمنة كإضافات نصية متاحة على مستوى النظام ، ولا تعتمد على أحد التطبيقات . محرر AppleScript قادر أيضًا على تحرير وتشغيل بعض لغات OSA مباشرة.<ref name="enwiki"></ref>
إضافات البرمجة النصية هي مكتبات تسمح للمبرمجين بتوسيع وظيفة AppleScript. الأوامر المضمنة كإضافات نصية متاحة على مستوى النظام ، ولا تعتمد على أحد التطبيقات . محرر AppleScript قادر أيضًا على تحرير وتشغيل بعض لغات OSA مباشرة.<ref name="enwiki"></ref>


'''جافا سكريبت للأتمتة'''
'''جافا سكريبت للأتمتة'''
ضمن OS X Yosemite والإصدارات الأحدث من [[أنظمة تشغيل ماكينتوش|ماك او اس]] ، يظل مكون '''JavaScript for Automation (JXA)''' هو لغة OSA الوحيدة الجادة البديلة لـ AppleScript ، على الرغم من أن إصدارات [[ماكنتوش|Macintosh]] من [[Perl]] و [[Python]] و [[Ruby]] و [[تي سي إل|Tcl]] تدعم جميعها وسائل العمل الأصلية مع [[أحداث أبل]] دون أن تكون مكونات OSA. <ref name="enwiki"></ref>
ضمن OS X Yosemite والإصدارات الأحدث من [[أنظمة تشغيل ماكينتوش|ماك او اس]] ، يظل مكون '''JavaScript for Automation (JXA)''' هو لغة OSA الوحيدة الجادة البديلة لـ AppleScript ، على الرغم من أن إصدارات [[ماكنتوش|Macintosh]] من [[Perl]] و[[Python]] و[[Ruby]] و[[تي سي إل|Tcl]] تدعم جميعها وسائل العمل الأصلية مع [[أحداث أبل]] دون أن تكون مكونات OSA. <ref name="enwiki"/>


توفر JXA أيضًا واجهة لغة أجنبية [[سي-الكائنية|Objective-C]] (ولغة C). نظرًا لكونها بيئة تعتمد على محرك JavaScriptCore الخاص بـ [[ويب كيت|WebKit]] ، فإن مجموعة ميزات [[جافا سكريبت|JavaScript]] متزامنة مع محرك متصفح [[سفاري (متصفح ويب)|Safari]] الخاص بالنظام. توفر JXA نظام وحدة JavaScript ويمكن أيضًا استخدام وحدات [[كومون جي إس|CommonJS]] عبر browserify.<ref name="enwiki"></ref>
توفر JXA أيضًا واجهة لغة أجنبية [[سي-الكائنية|Objective-C]] (ولغة C). نظرًا لكونها بيئة تعتمد على محرك JavaScriptCore الخاص بـ [[ويب كيت|WebKit]] ، فإن مجموعة ميزات [[جافا سكريبت|JavaScript]] متزامنة مع محرك متصفح [[سفاري (متصفح ويب)|Safari]] الخاص بالنظام. توفر JXA نظام وحدة JavaScript ويمكن أيضًا استخدام وحدات [[كومون جي إس|CommonJS]] عبر browserify.<ref name="enwiki"/>
== مراجع ==
== مراجع ==
{{مراجع}}
{{مراجع}}

نسخة 23:17، 26 نوفمبر 2022

آبل اسكربت (بالإنجليزية: AppleScript)‏ هي لغة برمجة نصية أنشأتها شركة آبل، وتم دمجها في نظام التشغيل ماك أو إس، و تهدف إلى العمل بالتوازي مع واجهة المستخدم الرسومية.[2]

نظرة عامة

AppleScript هي لغة برمجة نصية تم تطويرها بواسطة أبل لإجراء اتصالات بين التطبيقات (IAC) باستخدام أحداث أبل. ترتبط AppleScript بأحداث أبل ولكنها تختلف عنها. تم تصميم أحداث أبل لتبادل البيانات والتحكم في التطبيقات الأخرى من أجل أتمتة المهام المتكررة.

تمتلك AppleScript بعض قدرات المعالجة الخاصة بها ، بالإضافة إلى إرسال واستقبال أحداث أبل إلى التطبيقات. يمكن لـ AppleScript إجراء العمليات الحسابية الأساسية ومعالجة النصوص ، وهي قابلة للتوسيع ، مما يسمح باستخدام إضافات البرمجة النصية التي تضيف وظائف جديدة إلى اللغة. ومع ذلك ، تعتمد AppleScript بشكل أساسي على وظائف التطبيقات والعمليات للتعامل مع المهام المعقدة. كلغة أوامر منظمة ، يمكن مقارنة AppleScript بشل يونكس أو Microsoft Windows Script Host أو IBM REXX ولكنها تختلف عن الثلاثة. حقيقة أن تطبيقات Macintosh تنشر "قواميس" للكائنات والعمليات القابلة للتوجيه;ضروري جداً حتى يتمكن أبل سكربت من تأدية وظائفه.

يحتوي AppleScript على بعض عناصر البرمجة الإجرائية ، والبرمجة الموجهة للكائنات (خاصة في إنشاء كائنات النص البرمجي) ، واتجاهات برمجة اللغة الطبيعية في تركيبها ، ولكنها لا تتوافق تمامًا مع أي من نماذج البرمجة هذه.[3]

تاريخ

في أواخر الثمانينيات من القرن الماضي ، اعتبرت شركة أبل استخدام لغة البرمجة HyperTalk الخاصة بـ HyperCard كلغة تطوير قياسية للمستخدم النهائي، عبر الشركة وضمن نظام تشغيل Mac OS الكلاسيكي ، وكذلك لتمكين التواصل بين العمليات الخاصة بمنتجات Apple مع عمليات المنتجات الأخرى. يمكن للمبتدئين استخدام HyperTalk لبرمجة مكدس HyperCard. أدرك مهندسو أبل أنه يمكن تصميم لغة برمجة نصية مماثلة ، ولكن أكثر توجهاً للكائنات ، لاستخدامها مع أي تطبيق ، وقد وُلد مشروع AppleScript كبرنامج منبثق عن جهد بحثي لتحديث نظام Macintosh ككل وأصبح أخيرًا جزءًا من النظام 7 (Mac OS 7).[4]

تم إصدار AppleScript في أكتوبر 1993 كجزء من نظام 7.1.1 (نظام ماك 7 Pro ، أول ترقية رئيسية للنظام 7). كان QuarkXPress (الإصدار 3.2) من أوائل التطبيقات البرمجية الرئيسية التي دعمت AppleScript. أدى هذا بدوره إلى اعتماد AppleScript على نطاق واسع في عالم النشر وما قبل الطباعة ، وغالبًا ما يربط معًا مهام سير العمل المعقدة. كان هذا عاملاً رئيسيًا في الحفاظ على موقع Macintosh المهيمن في النشر وما قبل الطباعة ، حتى بعد نقل QuarkXpress وتطبيقات النشر الأخرى إلى Microsoft Windows.[3]

بعد بعض الشكوك بشأن مستقبل AppleScript في الجيل التالي من نظام التشغيل من أبل ، أدى الانتقال إلى Mac OS X (حوالي 2002) وأطر عمل Cocoa إلى زيادة فائدة ومرونة AppleScript بشكل كبير. تتيح تطبيقات Cocoa لمطوري التطبيقات تنفيذ قابلية البرمجة الأساسية لتطبيقاتهم بأقل جهد ممكن ، مما يؤدي إلى زيادة عدد التطبيقات القابلة للبرمجة مباشرة. في الوقت نفسه ، أتاح التحول إلى أسس يونكس وقدرة AppleScript على تشغيل أوامر Unix مباشرة ، باستخدام الأمر do shell script لأبل سكريبت تحكم أكبر بكثير في نظام التشغيل نفسه. AppleScript Studio ، تم إصداره مع نظام التشغيل Mac OS X 10.2 كجزء من Xcode ، وإطار عمل AppleScriptObjC الأحدث ، الذي تم إصداره في نظام التشغيل Mac OS X 10.6 ، سمح للمستخدمين بإنشاء تطبيقات Cocoa باستخدام AppleScript. [3]

في أكتوبر 2016 ، غادر سال سوجويان ، مدير منتج AppleScript ومبشر الأتمتة ، شركة أبل عندما تم إلغاء منصبه "لأسباب تتعلق بالعمل". استجاب قدامى المحاربين في مجتمع Mac مثل John Gruber و Andy Ihnatko بشكل عام بقلق ، وشككوا في التزام أبل تجاه مجتمع المطورين والمستخدمين المحترفين. رد نائب الرئيس الأول لهندسة البرمجيات في أبل ، كريج فيديريغي ، في رسالة بريد إلكتروني قائلاً: "لدينا كل النية لمواصلة دعمنا لتقنيات الأتمتة العظيمة في macOS!" ، على الرغم من أن جيف جاميت في Mac Observer رأى أن ذلك لم يفعل شيئًا يذكر لتهدئة شكوكه حول مستقبل أتمتة Apple بشكل عام و AppleScript بشكل خاص. في الوقت الحالي ، تظل AppleScript أحد مكونات تقنيات أتمتة macOS ، جنبًا إلى جنب مع Automator و Shortcuts و Services و shell scripting. [3]

مفاهيم أساسية

التعليقات برمجياً

يمكن عمل التعليقات بطرق متعددة. يمكن أن يبدأ التعليق المكون من سطر واحد بشرطتين (--). في AppleScript 2.0 ، الذي تم إصداره لأول مرة في نظام التشغيل Mac OS X Leopard ، قد يبدأ أيضًا بعلامة الرقم (#). يسمح هذا بتخزين برنامج نصي AppleScript قائم بذاته كملف نصي قابل للتنفيذ يبدأ بسطر #!/usr/bin/osascript مثال:

- هذا تعليق من سطر واحد
# وايضاً هذا! (في Mac OS X Leopard أو أحدث)

بالنسبة إلى التعليقات التي تشغل سطورًا متعددة ، تستخدم AppleScript أقواسًا بداخلها علامات نجمية. مثال:

(* هذا 
تعليق
متعدد
السطور *)

برنامج أهلا بالعالم

في AppleScript ، يمكن كتابة البرنامج التقليدي أهلا بالعالم(!Hello World) في عدة أشكال مختلفة ، بما في ذلك:

display dialog "Hello, world!" -- نافذة منبثقة بها زران "موافق" و "إلغاء"
-- أو
display alert "Hello, world!" --نافذة منبثقة بها زر واحد "موافق" وأيقونة تمثل التطبيق الذي يعرض التنبيه
-- أو
say "Hello, world!" -- رسالة صوتية باستخدام صوت الكمبيوتر المركب
-- أو
return "Hello, world!"

يحتوي AppleScript على العديد من خيارات واجهة المستخدم ، بما في ذلك الحوارات والتنبيهات وقائمة الاختيارات. (يشير الرمز ¬ ، الناتج عن كتابة option+return في Script Editor ، إلى استمرار جملة واحدة عبر عدة أسطر.)

-- نافذة حوار
set dialogReply to display dialog ¬
	"حوار نصي" default answer ¬
	"أجابة نصية" hidden answer false ¬
	buttons {"تخطي", "نعم", "إلغاء"} ¬
	default button ¬
	"نعم" cancel button ¬
	"تخطي" with title ¬
	"عنوان النافذة" with icon note ¬
	giving up after 15
-- أختيار من قائمة
set chosenListItem to choose from list {"A", "B", "3"} ¬
	with title "List Title" ¬
	with prompt "Prompt Text" ¬
	default items "B" ¬
	OK button name "Looks Good!" ¬
	cancel button name "Nope, try again" ¬
	multiple selections allowed false ¬
	with empty selection allowed
 
-- أظهار تنبية
set resultAlertReply to display alert "Alert Text" ¬
	as warning ¬
	buttons {"تخطي", "موافق", "إلغاء"} ¬
	default button 2 ¬
	cancel button 1 ¬
	giving up after 2

يمكن لكل طريقة تفاعل للمستخدم إرجاع قيم الأزرار التي تم النقر عليها أو العناصر المختارة أو النص الذي تم إدخاله لمزيد من المعالجة. فمثلا:

display alert "Hello, world!" buttons {"رفض", "قبول"}
set theAnswer to button returned of the result
if theAnswer is "قبول" then
	beep 5
else
	say "عفواً!"
end if

[3]

استعارات اللغة الطبيعية

في حين أن أحداث أبل هي وسيلة لإرسال الرسائل إلى التطبيقات ، فإن AppleScript هي لغة معينة مصممة لإرسال أحداث أبل. تماشياً مع هدف سهولة الاستخدام للمبتدئين ، تم تصميم لغة AppleScript على استعارة اللغة الطبيعية ، تمامًا كما تم تصميم واجهة المستخدم الرسومية على استعارة سطح المكتب. يجب أن يكون AppleScript المكتوب جيدًا واضحًا بما يكفي ليقرأه ويفهمه أي شخص ، كما يجب تحريره بسهولة. تعتمد اللغة إلى حد كبير على لغة HyperTalk التابعة لـ HyperCard ، والتي امتدت لتشير ليس فقط إلى عالم HyperCard للبطاقات والمكدسات ، ولكن أيضًا من الناحية النظرية إلى أي مستند. تحقيقًا لهذه الغاية ، قدم فريق AppleScript نموذج كائن حدث أبل (AEOM) ، والذي يحدد الكائنات التي "يعرفها" أي تطبيق معين.[3]

جوهر لغة AppleScript هو استخدام المصطلحات التي تعمل كأسماء وأفعال يمكن دمجها. على سبيل المثال ، بدلاً من فعل مختلف لطباعة صفحة أو مستند أو نطاق من الصفحات (مثل printPage و printDocument و printRange) ، تستخدم AppleScript فعل "print" واحد يمكن دمجه مع كائن ، مثل صفحة أو وثيقة أو مجموعة من الصفحات.[3]

print page 1

print document 2

print pages 1 thru 5 of document 2

بشكل عام ، تحدد AEOM عددًا من الكائنات - مثل مستند "document" أو فقرة "paragraph" - والإجراءات المقابلة - مثل "cut" و "close". يحدد النظام أيضًا طرقًا للإشارة إلى خصائص الكائنات ، بحيث يمكن للمرء الرجوع إلى "الفقرة الثالثة من المستند" يوم جيد "--"third paragraph of the document 'Good Day'"، أو" لون الكلمة الأخيرة من النافذة الأمامية "--"color of the last word of the front window". يستخدم AEOM تطبيق القاموسdictionary" لربط أحداث أبل بمصطلحات يمكن للبشر قراءتها ، مما يسمح بالترجمة ذهابًا وإيابًا بين أحداث AppleScript القابلة للقراءة البشرية وأحداث أبل ذات الرمز الثانوي. لاكتشاف عناصر البرنامج القابلة للبرمجة ، يمكن عرض قواميس التطبيقات المدعومة. (في تطبيقي Xcode و Script Editor ، يوجد هذا ضمن File → Open Dictionary.)[3]

لتحديد التطبيق المقصود أن يكون هدفًا لمثل هذه الرسالة ، تستخدم AppleScript بنية "tell":

tell application "Microsoft Word"
  quit
end tell

بدلاً من ذلك ، يمكن التعبير عن tell في سطر واحد باستخدام المصدر:

tell application "Microsoft Word" to quit

بالنسبة للأحداث في (activate و open و reopen و close و print و quit) ، قد يتم ألحاق التطبيق ككائن مباشر لأوامر متعدية:

quit application "Microsoft Word"


يمكن التعبير عن مفهوم التسلسل الهرمي للكائن باستخدام الكتل المتداخلة:

tell application "QuarkXPress"
  tell document 1
    tell page 2
      tell text box 1
        set word 5 to "Apple"
      end tell
    end tell
  end tell
end tell

يمكن أيضًا التعبير عن مفهوم التسلسل الهرمي للكائن باستخدام عبارات الجر المتداخلة:

pixel 7 of row 3 of TIFF image "my bitmap"

والتي يمكن التعبير عنها بلغة برمجة أخرى على أنها استدعاءات طريقة متسلسلة ، كما هو الحال في هذا الكود المزيف (للفهم فقط):

getTIFF("my bitmap").getRow(3).getPixel(7);

يتضمن AppleScript بناء الجملة للعد الترتيبي ، مثلاً: 'الفقرة الأولى' "the first paragraph" ، وكذلك الأساسي ،مثلاً:'الفقرة واحد' "paragraph one". وبالمثل ، يمكن الإشارة إلى الأرقام نفسها على أنها نص أو رقميًا ، "five"و "fifth" و "5" كلها مدعومة ؛ هم مرادفات في AppleScript. أيضًا ، يمكن استخدام كلمة "the" قانونيًا في أي مكان في البرنامج النصي من أجل تعزيز إمكانية القراءة: ليس لها أي تأثير على وظائف البرنامج النصي.

أمثلة

حاسبة أمنة من الفشل:

tell application "Finder"
	-- Set variables
	set the1 to text returned of (display dialog "1st" default answer "Number here" buttons {"Continue"} default button 1)
	set the2 to text returned of (display dialog "2nd" default answer "Number here" buttons {"Continue"} default button 1)
	try
		set the1 to the1 as integer
		set the2 to the2 as integer
	on error
		display dialog "You may only input numbers into a calculator." with title "ERROR" buttons {"OK"} default button 1
		return
	end try
	
	-- Add?
	if the button returned of (display dialog "Add?" buttons {"No", "Yes"} default button 2) is "Yes" then
		set ans to (the1 + the2)
		display dialog ans with title "Answer" buttons {"OK"} default button 1
		say ans
	-- Subtract?	
	else if the button returned of (display dialog "Subtract?" buttons {"No", "Yes"} default button 2) is "Yes" then
		set ans to (the1 - the2)
		display dialog ans with title "Answer" buttons {"OK"} default button 1
		say ans
	-- Multiply?	
	else if the button returned of (display dialog "Multiply?" buttons {"No", "Yes"} default button 2) is "Yes" then
		set ans to (the1 * the2)
		display dialog ans with title "Answer" buttons {"OK"} default button 1
		say ans
	-- Divide?	
	else if the button returned of (display dialog "Divide?" buttons {"No", "Yes"} default button 2) is "Yes" then
		set ans to (the1 / the2)
		display dialog ans with title "Answer" buttons {"OK"} default button 1
		say ans
	else
		delay 1
		say "You haven't selected a function. The operation has cancelled."
	end if
	
end tell

تسلسل بسيط لمربع حوار اسم المستخدم و كلمة المرور. هنا ، اسم المستخدم هو احمد وكلمة المرور app123:

tell application "Finder"
	set passAns to "app123"
	set userAns to "احمد"
	if the text returned of (display dialog "Username" default answer "") is userAns then
		display dialog "Correct" buttons {"Continue"} default button 1
		if the text returned of (display dialog "Username : John" & return & "Password" default answer "" buttons {"Continue"} default button 1 with hidden answer) is passAns then
			display dialog "Access granted" buttons {"OK"} default button 1
		else
			display dialog "Incorrect password" buttons {"OK"} default button 1
		end if
	else
		display dialog "Incorrect username" buttons {"OK"} default button 1
	end if
end tell

[3]

ادوات التطوير

موارد آبل اسكربت

أساسيات اللغة

أسلوب البرمجة النصية المفتوح

أحد الجوانب المهمة لتطبيق AppleScript هو Open Scripting Architecture (OSA). توفر Apple OSA للغات البرمجة النصية الأخرى ومنتجات البرمجة النصية / الأتمتة التابعة لجهات خارجية مثل QuicKeys و UserLand Frontier ، للعمل في حالة متساوية مع AppleScript. تم تنفيذ AppleScript كمكون برمجة نصية ، وكانت المواصفات الأساسية لربط هذه المكونات بـ OSA عامة ، مما يسمح للمطورين الآخرين بإضافة مكونات البرمجة النصية الخاصة بهم إلى النظام. ستعمل واجهات برمجة التطبيقات الخاصة بالعميل العام لتحميل النصوص البرمجية وحفظها وتجميعها بنفس الطريقة لجميع هذه المكونات ، مما يعني أيضًا أن التطبيقات الصغيرة والقطيرات يمكنها الاحتفاظ بنصوص برمجية في أي من لغات البرمجة النصية هذه.[3]

إحدى ميزات OSA هي إضافات البرمجة النصية ، أو OSAX لـ Open Scripting Architecture eXtension ، المستوحاة من أوامر HyperCard الخارجية.

إضافات البرمجة النصية هي مكتبات تسمح للمبرمجين بتوسيع وظيفة AppleScript. الأوامر المضمنة كإضافات نصية متاحة على مستوى النظام ، ولا تعتمد على أحد التطبيقات . محرر AppleScript قادر أيضًا على تحرير وتشغيل بعض لغات OSA مباشرة.[3]

جافا سكريبت للأتمتة ضمن OS X Yosemite والإصدارات الأحدث من ماك او اس ، يظل مكون JavaScript for Automation (JXA) هو لغة OSA الوحيدة الجادة البديلة لـ AppleScript ، على الرغم من أن إصدارات Macintosh من Perl وPython وRuby وTcl تدعم جميعها وسائل العمل الأصلية مع أحداث أبل دون أن تكون مكونات OSA. [3]

توفر JXA أيضًا واجهة لغة أجنبية Objective-C (ولغة C). نظرًا لكونها بيئة تعتمد على محرك JavaScriptCore الخاص بـ WebKit ، فإن مجموعة ميزات JavaScript متزامنة مع محرك متصفح Safari الخاص بالنظام. توفر JXA نظام وحدة JavaScript ويمكن أيضًا استخدام وحدات CommonJS عبر browserify.[3]

مراجع

  1. ^ أ ب "Mac Automation Scripting Guide". مطورو آبل (بالإنجليزية). أبل. Archived from the original on 2022-07-20. Retrieved 2022-11-11. The core fundamentals of AppleScript are described in AppleScript Language Guide, as well as in numerous third-party books.{{استشهاد ويب}}: صيانة الاستشهاد: لغة غير مدعومة (link)
  2. ^ "معلومات عن آبل اسكربت على موقع id.loc.gov". id.loc.gov. مؤرشف من الأصل في 2020-04-08.
  3. ^ أ ب ت ث ج ح خ د ذ ر ز س ش https://en.wikipedia.org/wiki/AppleScript نسخة محفوظة 2022-11-18 على موقع واي باك مشين.
  4. ^ https://books.google.com/books?id=_40AkCe9nOUC نسخة محفوظة 2020-07-26 على موقع واي باك مشين.