أبل سكريبت

AppleScript هي لغة برمجة نصية طورتها شركة Apple Inc.، تُسهّل التحكم الآلي بتطبيقات Mac . ظهرت لأول مرة في نظام التشغيل System 7 ، وهي مُضمنة حاليًا في macOS ضمن حزمة أدوات التشغيل الآلي. قد يُشير مصطلح AppleScript إلى لغة البرمجة النصية نفسها، أو إلى نص برمجي مكتوب بها، أو إلى بنية البرمجة النصية المفتوحة (Open Scripting Architecture) لنظام macOS التي تُشكّل أساس هذه اللغة. [ 4 ] [ 5 ]

تُعدّ AppleScript آليةً أساسيةً لتشغيل أحداث Apple ، وهي تقنية اتصال بين التطبيقات (IAC) تتبادل البيانات بين التطبيقات وتتحكم بها. [ 4 ] [ 5 ] بالإضافة إلى ذلك، تدعم AppleScript العمليات الحسابية الأساسية ومعالجة النصوص، وهي قابلة للتوسيع عبر إضافات برمجية تُضيف وظائف جديدة إلى اللغة .

ترتبط لغة AppleScript ارتباطًا وثيقًا ببيئة نظام Mac، تمامًا كما يرتبط Windows Script Host ببيئة نظام Windows. بعبارة أخرى، AppleScript ليست لغة برمجة نصية عامة الأغراض مثل Python . ومن أوجه ارتباط AppleScript بالجوانب الفريدة لبيئتها اعتمادها على التطبيقات لنشر قواميس الكائنات والعمليات القابلة للعنونة.

كما هو معتاد في لغات الأوامر، فإن لغة AppleScript غير مصممة لإجراء عمليات معالجة مكثفة بشكل مباشر. على سبيل المثال، لا يمكن لبرنامج نصي أن يُجري عمليات حسابية مكثفة أو معالجة نصوص معقدة بكفاءة. مع ذلك، يمكن استخدام AppleScript بالتزامن مع أدوات وتقنيات أخرى، مما يسمح لها بالاستفادة من سياقات برمجة أكثر كفاءة.

تتضمن اللغة جوانب من البرمجة الهيكلية والإجرائية والموجهة للكائنات والبرمجة بلغة طبيعية ، لكنها لا تلتزم التزامًا تامًا بأي من هذه النماذج . [ 5 ] : 26

تاريخ

في أواخر ثمانينيات القرن الماضي، فكرت شركة آبل في استخدام لغة البرمجة النصية HyperTalk الخاصة ببرنامج HyperCard كلغة قياسية لتطوير البرامج للمستخدمين النهائيين في جميع أنحاء الشركة وضمن نظام التشغيل Mac OS الكلاسيكي ، وللتواصل بين العمليات بين منتجات آبل وغير آبل. [ 6 ] كان بإمكان المبتدئين استخدام HyperTalk لبرمجة حزمة HyperCard. أدرك مهندسو آبل أنه يمكن تصميم لغة برمجة نصية مماثلة، ولكنها أكثر توجهاً نحو الكائنات، لاستخدامها مع أي تطبيق ، ومن هنا وُلد مشروع AppleScript كفرع من جهد بحثي لتحديث جهاز ماكنتوش ككل، وأصبح في النهاية جزءًا من النظام 7. [ 1 ]

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

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

في مقال نُشر عام 2006، أدرجت مجلة Macworld برنامج AppleScript ضمن تصنيفاتها لأهم 30 منتجًا لشركة Apple حتى الآن، ووضعته في المرتبة 17. [ 8 ]

In a 2013 article for Macworld, veteran Mac software developer and commentator John Gruber concluded his reflection on "the unlikely persistence of AppleScript" by noting: "In theory, AppleScript could be much better; in practice, though, it's the best thing we have that works. It exemplifies the Mac's advantages over iOS for tinkerers and advanced users."[9]

In October 2016, longtime AppleScript product manager and automation evangelist Sal Soghoian left Apple when his position was eliminated "for business reasons".[10] Veterans in the Mac community such as John Gruber and Andy Ihnatko generally responded with concern, questioning Apple's commitment to the developer community and pro users.[11] Apple senior vice president of software engineering Craig Federighi responded in an email saying that "We have every intent to continue our support for the great automation technologies in macOS!", though Jeff Gamet at The Mac Observer opined that it did little to assuage his doubt about the future of Apple automation in general and AppleScript in particular.[12] For the time being, AppleScript remains one component of macOS automation technologies, along with Automator, Shortcuts, Services, and shell scripting.

Intent

AppleScript was designed to be used as an accessible end-user scripting language, offering users an intelligent mechanism to control applications, and to access and modify data and documents. AppleScript uses Apple events, a set of standardized data formats that the Macintosh operating system uses to send information to applications, roughly analogous to sending XPath queries over XML-RPC in the world of web services.[5]:xxvi Apple events allow a script to work with multiple applications simultaneously, passing data between them so that complex tasks can be accomplished without human interaction.[4] For example, an AppleScript to create a simple web gallery might do the following:

  1. Open a photo in a photo-editing application (by sending that application an Open File Apple event).
  2. Tell the photo-editing application to manipulate the image (e.g. reduce its resolution, add a border, add a photo credit)
  3. أخبر تطبيق تحرير الصور بحفظ الصورة المعدلة في ملف في مجلد مختلف (عن طريق إرسال حدث Apple للحفظ و/أو الإغلاق إلى هذا التطبيق).
  4. أرسل مسار الملف الجديد (عبر حدث آخر من أحداث Apple) إلى محرر نصوص أو تطبيق محرر ويب.
  5. أخبر تطبيق التحرير هذا بكتابة رابط للصورة في ملف HTML.
  6. كرر الخطوات المذكورة أعلاه لمجلد كامل من الصور (مئات أو حتى آلاف الصور).
  7. قم بتحميل ملف HTML ومجلد الصور المعدلة إلى موقع ويب، عن طريق إرسال أحداث Apple إلى عميل FTP رسومي ، أو باستخدام أوامر AppleScript المدمجة، أو عن طريق إرسال أحداث Apple إلى أدوات FTP الخاصة بنظام Unix.

بالنسبة للمستخدم، تم اختصار مئات أو آلاف الخطوات في تطبيقات متعددة إلى عملية واحدة تتمثل في تشغيل البرنامج النصي، ويتم إنجاز المهمة في وقت أقل بكثير وبدون أي احتمال للخطأ البشري العشوائي. يمكن تطوير برنامج نصي كبير ومعقد ليتم تشغيله مرة واحدة فقط، بينما يتم استخدام برامج نصية أخرى مرارًا وتكرارًا.

تظهر عناصر البرمجة النصية للتطبيق في قاموس البرمجة النصية الخاص به (الموزع كجزء من التطبيق)، والذي يمكن عرضه في أي محرر نصوص برمجية . تُصنف العناصر عادةً في مجموعات، وفقًا لعلاقات وظيفية عامة بينها. يوجد نوعان أساسيان من العناصر في أي مجموعة: الفئات والأوامر.

  • الفئات هي كائنات قابلة للبرمجة - على سبيل المثال، من المؤكد تقريبًا أن تطبيق تحرير النصوص سيحتوي على فئات للنوافذ والمستندات والنصوص - وستحتوي هذه الفئات على خصائص يمكن تغييرها (حجم النافذة، لون خلفية المستند، حجم خط النص، وما إلى ذلك)، وقد تحتوي على فئات أخرى (ستحتوي النافذة على مستند واحد أو أكثر، وسيحتوي المستند على نص، وسيحتوي كائن النص على فقرات وكلمات وأحرف).
  • أما الأوامر ، على النقيض من ذلك، فهي تعليمات يمكن إعطاؤها للكائنات القابلة للبرمجة. ويتمثل الشكل العام لكتلة من لغة AppleScript في إخبار كائن قابل للبرمجة بتنفيذ أمر معين.

تشترك جميع التطبيقات القابلة للبرمجة في عدد قليل من الأوامر والكائنات الأساسية، والتي تُعرف عادةً باسم "المجموعة القياسية" - وهي أوامر لفتح الملفات وإغلاقها وحفظها، وطباعة البيانات، والخروج من التطبيق، وتعيين البيانات للمتغيرات - بالإضافة إلى كائن التطبيق الأساسي الذي يمنح التطبيق نفسه خصائص البرمجة. تحتوي العديد من التطبيقات على مجموعات متعددة قادرة على أداء أي مهمة يمكن للتطبيق نفسه القيام بها. في حالات استثنائية، قد تدعم التطبيقات إضافات تتضمن قواميس برمجة خاصة بها.

صُممت لغة AppleScript لتتيح إنشاء البرامج النصية بسهولة من خلال تسجيل إجراءات المستخدم. يجب تضمين هذه الميزة في التطبيق نفسه، أي أن يدعم أحداث Apple وتسجيل AppleScript؛ [ 13 ] وبما أن Finder يدعم تسجيل AppleScript، فإنه يُعد مرجعًا مفيدًا. عند فتح محرر AppleScript (محرر البرامج النصية) والنقر على زر التسجيل، تُحوّل إجراءات المستخدم للتطبيقات القابلة للتسجيل إلى أوامر AppleScript المكافئة لها، وتُعرض في نافذة محرر البرامج النصية. يمكن حفظ البرنامج النصي الناتج وإعادة تشغيله لتكرار الإجراءات الأصلية، أو تعديله ليكون أكثر فائدة بشكل عام.

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

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

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

اطبع الصفحة 1اطبع المستند 2اطبع الصفحات من 1 إلى 5 من المستند 2

بشكل عام، يُعرّف نظام AEOM عددًا من الكائنات، مثل "المستند" أو "الفقرة"، والإجراءات المقابلة لها، مثل "القص" و"الإغلاق". كما يُعرّف النظام طرقًا للإشارة إلى خصائص الكائنات، بحيث يُمكن الإشارة إلى "الفقرة الثالثة من المستند 'يوم سعيد'"، أو "لون الكلمة الأخيرة في النافذة الأمامية". يستخدم AEOM قاموسًا للتطبيقات لربط أحداث Apple بمصطلحات مفهومة، مما يسمح بالترجمة ذهابًا وإيابًا بين AppleScript وأحداث Apple المكتوبة بلغة البايت كود . لمعرفة عناصر البرنامج القابلة للبرمجة، يُمكن الاطلاع على قواميس التطبيقات المدعومة. (في تطبيقات Xcode ومحرر البرامج النصية ، يُمكن الوصول إلى ذلك من خلال ملف ← فتح قاموس ).

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

أخبر تطبيق "Microsoft Word" بالخروج، ثم أنهِ الأمر.

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

اطلب من تطبيق " Microsoft Word" الخروج

بالنسبة للأحداث في "المجموعة الأساسية" (التنشيط، الفتح، إعادة الفتح، الإغلاق، الطباعة، والخروج)، يمكن توفير التطبيق ككائن مباشر للأوامر المتعدية:

إغلاق تطبيق "Microsoft Word"

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

أخبر تطبيق "QuarkXPress" أخبر المستند 1 أخبر الصفحة 2 أخبر مربع النص 1 اضبط الكلمة 5 على "Apple" نهاية الأمر نهاية الأمر نهاية الأمر نهاية الأمر

يمكن أيضًا التعبير عن مفهوم التسلسل الهرمي للأشياء باستخدام عبارات حرف جر متداخلة أو سلسلة من صيغ الملكية:

البكسل السابع من الصف الثالث لصورة TIFF " my bitmap" البكسل السابع من الصف الثالث لصورة TIFF "my bitmap"

والتي قد تُعبّر عنها في لغة برمجة أخرى على شكل استدعاءات متسلسلة للأساليب ، كما هو موضح في هذا الكود الزائف :

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

تتضمن لغة AppleScript صيغةً للعدّ الترتيبي، مثل "الفقرة الأولى"، وكذلك للعدّ الأصلي، مثل "الفقرة الأولى". وبالمثل، يمكن الإشارة إلى الأرقام نفسها نصيًا أو رقميًا، فـ"خمسة" و"الخامس" و"5" كلها مدعومة؛ وهي مترادفات في AppleScript. كما يمكن استخدام كلمة "the" في أي مكان في البرنامج النصي لتحسين سهولة القراءة، إذ لا يؤثر ذلك على وظائف البرنامج.

أمثلة

مرحبا بالعالم!

يمكن كتابة برنامج "مرحباً بالعالم!" في سطر واحد. لعرض نافذة منبثقة تحتوي على زري "موافق" و"إلغاء":

عرض مربع حوار "مرحباً بالعالم!"

لعرض نافذة منبثقة تحتوي على زر "موافق" وأيقونة تنبيه:

عرض تنبيه "مرحباً بالعالم!"

لإخراج الصوت باستخدام صوت مُركّب:

قل "مرحباً أيها العالم!"

آلة حاسبة آمنة ضد الأعطال

أخبر تطبيق "الباحث"-- تعيين المتغيراتقم بتعيين the1 إلى النص المُعاد من ( عرض مربع الحوار "الأول" الإجابة الافتراضية "رقم هنا" الأزرار { "متابعة" } الزر الافتراضي 1 )قم بتعيين the2 إلى النص المُعاد من ( عرض مربع الحوار "الثاني" الإجابة الافتراضية "رقم هنا" الأزرار { "متابعة" } الزر الافتراضي 1 )يحاولقم بتعيين قيمة the1 إلى the1 كعدد صحيحقم بتعيين قيمة the2 إلى the2 كعدد صحيحفي حالة الخطأعرض مربع حوار "لا يمكنك إدخال سوى الأرقام في الآلة الحاسبة." بعنوان "خطأ" أزرار { "موافق " } الزر الافتراضي 1يعودمحاولة إنهاء-- يضيف؟إذا كانت نتيجة الزر المُعاد من ( عرض مربع حوار "إضافة؟" أزرار { "لا" ، "نعم" } الزر الافتراضي 2 ) هي "نعم"اجعل قيمة الإجابة ( الأول + الثاني )عرض مربع حوار الإجابة بعنوان "الإجابة" مع زر " موافق" { الزر الافتراضي 1قل الإجابة— طرح؟ وإلا إذا كانت نتيجة الزر المُعاد من ( عرض مربع حوار "طرح؟" أزرار { "لا" ، "نعم" } الزر الافتراضي 2 ) هي "نعم"اجعل الإجابة ( the1 - the2 )عرض مربع حوار الإجابة بعنوان "الإجابة" مع زر " موافق" { الزر الافتراضي 1قل الإجابة-- الضرب؟ وإلا إذا كانت نتيجة الزر المُعاد من ( عرض مربع حوار "الضرب؟" أزرار { "لا" ، "نعم" } الزر الافتراضي 2 ) هي "نعم"اجعل الإجابة ( the1 * the2 )عرض مربع حوار الإجابة بعنوان "الإجابة" مع زر " موافق" { الزر الافتراضي 1قل الإجابة-- تقسيم؟ وإلا إذا كانت نتيجة الزر المُعاد من ( عرض مربع حوار "تقسيم؟" أزرار { "لا" ، "نعم" } الزر الافتراضي 2 ) هي "نعم"اجعل الإجابة ( the1 / the2 )عرض مربع حوار الإجابة بعنوان "الإجابة" مع زر " موافق" { الزر الافتراضي 1قل الإجابةآخرالتأخير 1قل "لم تقم بتحديد وظيفة. تم إلغاء العملية."نهاية الشرطنهاية الكلام

تسجيل الدخول إلى Drive

يتحكم هذا البرنامج النصي في تطبيق Finder لتسجيل الدخول باستخدام اسم المستخدم "John" وكلمة المرور "app123":

أخبر تطبيق "الباحث"قم بتعيين passAns إلى "app123"قم بتعيين قيمة userAns إلى "John"إذا كان النص المُعاد من ( عرض مربع حوار "اسم المستخدم" الإجابة الافتراضية "" ) هو userAns ،عرض مربع حوار "صحيح" أزرار { "متابعة" } الزر الافتراضي 1إذا كانت القيمة المُعادة من ( عرض مربع حوار "اسم المستخدم: جون" & إرجاع & "كلمة المرور" الإجابة الافتراضية "" أزرار { "متابعة" } الزر الافتراضي 1 مع إجابة مخفية ) هي passAns ،عرض مربع حوار "تم منح الوصول" أزرار { "موافق" } الزر الافتراضي 1آخرعرض مربع حوار "كلمة مرور غير صحيحة" أزرار { "موافق" } الزر الافتراضي 1نهاية الشرطآخرعرض مربع حوار "اسم المستخدم غير صحيح" أزرار { "موافق" } الزر الافتراضي 1نهاية الشرطنهاية الكلام

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

محررو النصوص

توفر أدوات التطوير المذكورة أدناه بيئة برمجة لكتابة البرامج النصية باستخدام AppleScript ، حيث تدعم إنشاء البرامج النصية والتحقق من صحتها وتجميعها وتشغيلها وتصحيح أخطائها. كما توفر بعضها إمكانية عرض قواميس AppleScript، وحفظ البرامج النصية بصيغ متعددة، وتمييز بناء الجملة ، وإدراج مقتطفات من التعليمات البرمجية.

محرر AppleScript
محرر نصوص من Apple مُضمّن مع نظام macOS، يُسمى AppleScript Editor في نظام Mac OS X Snow Leopard (10.6) حتى OS X Mavericks (10.9)، ويُسمى Script Editor في جميع الإصدارات السابقة واللاحقة من macOS. تُكتب النصوص البرمجية في نوافذ تحرير المستندات حيث يمكن تجميعها وتشغيلها، وتحتوي هذه النوافذ على أجزاء مختلفة تعرض معلومات مُسجلة ونتائج التنفيذ ومعلومات أخرى لأغراض تصحيح الأخطاء. يُمكن الوصول إلى قواميس النصوص البرمجية ومقتطفات التعليمات البرمجية الجاهزة من خلال قوائم التطبيق. منذ نظام OS X Yosemite (10.10)، يدعم Script Editor الكتابة بلغة AppleScript و JavaScript . [ 14 ]
Xcode
مجموعة أدوات من شركة Apple لتطوير التطبيقات مع ميزات لتحرير النصوص البرمجية وإنشاء تطبيقات مستقلة مكتوبة بلغة AppleScript.
مصحح الأخطاء البرمجية
يُعدّ Script Debugger بيئة تطوير متكاملة تجارية من شركة Late Night Software ، وهي بيئة AppleScript متقدمة نسبيًا تُمكّن كاتب البرامج النصية من تصحيح أخطاء AppleScript عبر التتبع خطوة بخطوة ، ونقاط التوقف ، والتنقل بين الدوال/الإجراءات الفرعية، وتتبع المتغيرات، وغيرها. كما يحتوي Script Debugger على متصفح قاموس متقدم يسمح للمستخدم برؤية القاموس قيد الاستخدام في مواقف واقعية. أي أنه بدلًا من مجرد عرض قائمة بمحتويات القاموس، يُمكن للمستخدم فتح مستند في Pages ، على سبيل المثال، ورؤية كيفية تطبيق مصطلحات القاموس على ذلك المستند، مما يُسهّل تحديد أجزاء القاموس المناسبة للاستخدام. لم يُصمم Script Debugger لإنشاء برامج نصية بواجهة رسومية، باستثناء التنبيهات والحوارات الأساسية، بل يركز بشكل أكبر على كتابة البرامج النصية وتصحيح أخطائها.
ابتسم وابتسامة لاب
بيئة تطوير متكاملة (IDE) مجانية/تجارية تابعة لجهة خارجية للغة AppleScript، مكتوبة بالكامل بلغة AppleScript. [ 15 ] برنامج Smile مجاني، ومصمم أساسًا لتطوير تطبيقات AppleScript. أما SmileLab فهو برنامج تجاري مزود بإضافات واسعة النطاق للتحليل العددي، والرسم البياني، وأتمتة الآلات، وتطوير مواقع الويب. يستخدم كل من Smile وSmileLab مجموعة متنوعة من النوافذ المختلفة: نوافذ AppleScript لتشغيل وحفظ البرامج النصية الكاملة، ومحطات AppleScript الطرفية لاختبار التعليمات البرمجية سطرًا بسطر، ونوافذ Unicode للعمل مع النصوص وXML. يمكن للمستخدمين إنشاء واجهات معقدة - تُسمى مربعات حوار - للحالات التي لا تكفي فيها مربعات الحوار المدمجة في AppleScript.
مستكشف ASObjC 4
بيئة تطوير متكاملة تجارية متوقفة من شين ستانلي، مخصصة للغة AppleScript، وخاصةً AppleScriptObjC . [ 16 ] تتمثل الميزة الرئيسية في تسجيل أحداث وكائنات Cocoa ، وتصحيح الأخطاء، وإكمال التعليمات البرمجية. يمكن للمستخدمين قراءة أحداث وكائنات Cocoa كما هو الحال في التطبيقات البرمجية الأخرى. صُممت هذه الأداة في الأصل لمكتبات AppleScript (المتوفرة في نظام التشغيل OS X Mavericks ). تهدف مكتبات AppleScript إلى توفير مكونات AppleScript قابلة لإعادة الاستخدام، وتدعم قاموس AppleScript المدمج (sdef). يمكن أيضًا استخدام ASObjC Explorer 4 كمحرر نصوص برمجي خارجي لـ Xcode.
مدى الوجه
بيئة تطوير متكاملة تجارية متوقفة من شركة Late Night Software لإنشاء تطبيقات AppleScript بواجهات مستخدم رسومية. [ 17 ]

مشغلات البرامج النصية

لأغراض التطوير والسيناريوهات المؤقتة، يمكن تشغيل البرنامج النصي من محرر البرامج النصية، ولكن لدعم التشغيل الآلي، يجب تشغيل البرنامج النصي دون فتح تطبيق آخر. وهناك عدة خيارات لتحقيق ذلك:

تطبيقات صغيرة
يمكن حفظ نصوص AppleScript من محرر النصوص البرمجية كتطبيقات (تُسمى تطبيقات صغيرة ، أو قطرات عند قبولها الإدخال عبر السحب والإفلات ). [ 5 ] : 69 يمكن تشغيل التطبيقات الصغيرة من Dock ، أو من شريط أدوات نوافذ Finder ، أو من Spotlight ، أو من مشغلات تطبيقات خارجية ، أو من أي مكان آخر يمكن تشغيل التطبيقات منه.
إجراءات المجلد
باستخدام إجراءات مجلدات AppleScript، يمكن تشغيل البرامج النصية عند حدوث تغييرات محددة في المجلدات (مثل إضافة ملفات أو إزالتها). [ 18 ] يمكن تعيين إجراءات المجلدات بالنقر على مجلد واختيار " إعداد إجراءات المجلدات..." من القائمة السياقية؛ ويختلف موقع هذا الأمر قليلاً في نظام التشغيل Mac OS X 10.6.x عن الإصدارات السابقة. ويمكن تنفيذ الإجراء نفسه باستخدام أدوات خارجية مثل Hazel. [ 19 ]
مشغلات مفاتيح الاختصار
يمكن تعيين اختصارات لوحة المفاتيح لبرامج AppleScript في قائمة البرامج النصية باستخدام لوحة تفضيلات إعدادات لوحة المفاتيح والماوس في تفضيلات النظام . بالإضافة إلى ذلك، تتوفر العديد من الأدوات المساعدة الخارجية - Alfred ، [ 20 ] FastScripts، [ 21 ] Keyboard Maestro ، [ 22 ] QuicKeys، [ 23 ] Quicksilver ، [ 24 ] TextExpander [ 25 ] - والتي يمكنها تشغيل برامج AppleScript عند الطلب باستخدام مجموعات المفاتيح.
قائمة البرامج النصية
تتيح هذه القائمة العامة للنظام الوصول إلى AppleScripts من شريط قوائم macOS، وهي ظاهرة بغض النظر عن التطبيق قيد التشغيل. [ 26 ] (بالإضافة إلى ذلك، توفر العديد من تطبيقات Apple، وبعض تطبيقات الطرف الثالث، وبعض الإضافات قوائم نصوص برمجية خاصة بها. قد يتم تفعيل هذه القوائم بطرق مختلفة، ولكنها جميعًا تعمل بنفس الطريقة تقريبًا). يؤدي تحديد نص برمجي من قائمة النصوص البرمجية إلى تشغيله. منذ نظام التشغيل Mac OS X 10.6.x، يمكن تفعيل قائمة النصوص البرمجية العامة للنظام من تفضيلات محرر النصوص البرمجية ؛ في الإصدارات السابقة من Mac OS X، كان من الممكن تفعيلها من تطبيق AppleScript Utility. عند التفعيل لأول مرة، تعرض قائمة النصوص البرمجية مكتبة افتراضية من نصوص AppleScripts العامة والوظيفية، والتي يمكن أيضًا فتحها في محرر النصوص البرمجية واستخدامها كأمثلة لتعلم AppleScript. يمكن تنظيم النصوص البرمجية بحيث تظهر في القائمة فقط عندما تكون تطبيقات معينة في المقدمة.
سطر أوامر يونكس و launchd
يمكن تشغيل AppleScripts من سطر أوامر Unix، أو من launchd للمهام المجدولة، [ 5 ] : 716 باستخدام أداة سطر الأوامر osascript. [ 27 ] تستطيع أداة osascript تشغيل البرامج النصية المُجمّعة (ملفات .scpt) وملفات النصوص العادية (ملفات .applescript - تُجمّع هذه الملفات بواسطة الأداة أثناء التشغيل). يمكن تشغيل تطبيقات البرامج النصية باستخدام أمر open في Unix.

موارد

مكتبات AppleScript

وحدات AppleScript قابلة لإعادة الاستخدام (متوفرة منذ نظام التشغيل OS X Mavericks )، مكتوبة بلغة AppleScript أو AppleScriptObjC ومحفوظة كملفات برمجية أو حزم في مواقع محددة، [ 28 ] ويمكن استدعاؤها من نصوص برمجية أخرى. عند حفظها كحزمة، يمكن أن تتضمن المكتبة ملف قاموس AppleScript (sdef)، [ 29 ] وبالتالي تعمل كإضافة برمجية ولكنها مكتوبة بلغة AppleScript أو AppleScriptObjC.

استوديو AppleScript

إطار عمل لربط واجهات Cocoa بتطبيقات AppleScript، وهو جزء من حزمة Xcode في نظامي التشغيل Mac OS X 10.4 و10.5، وقد تم إيقاف استخدامه لصالح AppleScriptObjC. [ 30 ] : 438

AppleScriptObject

إطار عمل برمجي لتطوير تطبيقات Cocoa ، يُعرف أيضًا باسم AppleScript/Objective-C أو ASOC، [ 31 ] وهو جزء من حزمة Xcode منذ نظام التشغيل Mac OS X Snow Leopard . [ 32 ] يسمح AppleScriptObjC لبرامج AppleScript باستخدام فئات Cocoa وأساليبها مباشرةً. [ 33 ] يوضح الجدول التالي مدى توفر AppleScriptObjC في إصدارات macOS المختلفة: [ 34 ]

أين يمكن استخدام AppleScriptObjC في كل إصدار من macOS
إصدار نظام التشغيلفي Xcodeفي التطبيقات المصغرةفي مكتبات AppleScriptفي محرر النصوص
10.6نعم
10.7نعمنعم
10.8نعمنعم
10.9نعمنعمنعم
10.10نعمنعمنعمنعم

يمكن استخدام AppleScriptObjC في جميع إصدارات Mac OS X اللاحقة.

أوتوماتور

بيئة تحرير رسومية معيارية تُبنى فيها سير العمل من خلال الإجراءات . وهي مصممة لتكرار العديد من وظائف AppleScript دون الحاجة إلى معرفة برمجية. يحتوي Automator على إجراء مصمم خصيصًا لاحتواء وتشغيل AppleScripts، وذلك للمهام المعقدة للغاية بالنسبة لإطار عمل Automator المبسط. [ 35 ]

تطبيقات النظام الأساسية القابلة للبرمجة

تُستخدم هذه التطبيقات التي تعمل في الخلفية فقط، والمُضمّنة مع نظام macOS، لتمكين AppleScript من الوصول إلى ميزات لا يُمكن برمجتها عادةً. ابتداءً من نظام Mac OS X 10.6.3، تشمل هذه التطبيقات القابلة للبرمجة ما يلي:

  • VoiceOver (حزمة قارئ الشاشة السمعي والبرايل القابلة للبرمجة)
  • أحداث النظام (التحكم في التطبيقات غير القابلة للبرمجة والوصول إلى وظائف نظام معينة وعمليات الملفات الأساسية)
  • أداة إعداد الطابعة (أداة قابلة للبرمجة للتعامل مع مهام الطباعة)
  • أحداث الصور (معالجة الصور الأساسية)
  • برنامج HelpViewer (أداة قابلة للبرمجة لعرض شاشات المساعدة)
  • أحداث قاعدة البيانات (واجهة قاعدة بيانات SQLite3 بسيطة)
  • أداة AppleScript (لكتابة بعض التفضيلات المتعلقة بـ AppleScript)

إضافات البرمجة النصية (OSAX)

إضافات AppleScript التي طورتها Apple أو جهات خارجية. [ 36 ] صُممت هذه الإضافات لتوسيع مجموعة الأوامر المدمجة، مما يُعزز ميزات AppleScript ويجعله أقل اعتمادًا على الوظائف التي توفرها التطبيقات. يتضمن نظام macOS مجموعة من إضافات البرمجة النصية تُعرف باسم Standard Additions ( StandardAdditions.osax )، والتي تُضيف مجموعة من الأوامر والفئات التي لا تُعد جزءًا من الميزات الأساسية لـ AppleScript، بما في ذلك مربعات حوار تفاعل المستخدم، وقراءة الملفات وكتابتها، وأوامر نظام الملفات، ووظائف التاريخ، وعمليات النصوص والرياضيات؛ وبدون هذه الإضافات، لن يكون لدى AppleScript القدرة على تنفيذ العديد من الإجراءات الأساسية التي لا يوفرها التطبيق مباشرةً.

لغة

الكتابة

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

-- أنشئ متغيرًا صحيحًا يُسمى variable1قم بتعيين قيمة المتغير 1 إلى 1-- أنشئ متغيرًا نصيًا باسم variable2قم بتعيين المتغير الثاني إلى "مرحباً"-- أنشئ متغير قائمة باسم variable3انسخ { 17 , "doubleday" } إلى المتغير 3-- انسخ عناصر القائمة من المتغير 3 إلى متغيرين منفصلين هما المتغير 4 والمتغير 5قم بتعيين { المتغير 4 ، المتغير 5 } إلى المتغير 3-- تعيين متغير لنسخة من نص برمجيقم بتعيين المتغير 6 إلى البرنامج النصي myScript

نطاق

لا يمكن استدعاء الإجراءات الفرعية مباشرةً من كتلة إخبار التطبيق. يلزم استخدام myأو .of me

أخبر تطبيق "Finder" أن يُعيّن قيمة x إلى myHandler () -- أو أن يُعيّن قيمة x إلى myHandler () الخاص بي. انتهى الأمر .on myHandler () --commands end myHandler

إن استخدام نفس الأسلوب لكتابة أوامر الإضافة يمكن أن يقلل الأخطاء ويحسن الأداء.

أخبر تطبيق "Finder" أن يُعيّن أي رقم عشوائي ( من 5 إلى 50) إلى رقمي ( رقم عشوائي من 5 إلى 50 ) .

الأنواع والكائنات

يمكن للبرنامج النصي تعريف أنواع بيانات مخصصة، أو استخدام أحد الفئات والكائنات المدمجة العديدة التي توفرها اللغة والتي عادةً ما تتعرف عليها التطبيقات القابلة للبرمجة. ومن أبرز أنواع البيانات والكائنات المدمجة ما يلي:

الكائنات الأساسية
  • التطبيق : يُستخدم في الغالب كمحدد لعبارات tell ( tell application "Finder" …)
  • البرنامج النصي : كائنات البرنامج النصي هي حاويات للبرامج النصية؛ كل برنامج نصي من AppleScript يُنشئ كائن برنامج نصي عند تشغيله، ويمكن إنشاء كائنات البرنامج النصي داخل برامج AppleScript.
  • الفئة : كائن وصفي يحدد نوع الكائنات الأخرى
  • المرجع : كائن يغلف مُحدد كائن غير مُقيَّم، قد يُشير أو لا يُشير إلى كائن صالح؛ ويمكن تقييمه عند الطلب من خلال الوصول إلى خاصيته contents.
كائنات البيانات القياسية
  • الثابت : قيمة ثابتة ؛ تشمل الثوابت المُعرَّفة في اللغة pi، tabوlinefeed
  • منطقي : قيمة منطقية (صواب/خطأ)؛ فئة فرعية منconstant
  • الرقم : فئة أساسية مجردة من و ؛ نادرًا ما يُستخدم بشكل مباشرintegerreal
  • عدد صحيح : عدد صحيح ؛ يمكن التعامل معه باستخدام عوامل التشغيل الرياضية المدمجة
  • حقيقي : عدد ذو فاصلة عائمة ( حقيقي )؛ يمكن التعامل معه باستخدام عوامل رياضية مدمجة
  • التاريخ : التاريخ والوقت
  • النص : قبل AppleScript 2.0 (Mac OS X 10.4 وما دونه) textكانت الفئة متميزة عن stringو Unicode text، وكانت الثلاثة تتصرف بشكل مختلف إلى حد ما؛ في الإصدار 2.0 (10.5) وما بعده، أصبحت جميعها مترادفات ويتم التعامل مع جميع النصوص على أنها UTF-16 [ 37 ]
حاويات
  • القائمة : قائمة مرتبة من الكائنات؛ يمكن أن تحتوي على أي فئة، بما في ذلك القوائم الأخرى والفئات التي تحددها التطبيقات
  • السجل : قائمة مفهرسة من الكائنات؛ تشبه القائمة، إلا أنها مُهيكلة على شكل أزواج مفتاح-قيمة ؛ الوصول المفهرس في وقت التشغيل غير مدعوم؛ يجب أن تكون جميع المفاتيح مُعرّفات ثابتة في وقت الترجمة.
نظام الملفات
  • الاسم المستعار : مرجع إلى كائن موجود في نظام الملفات (ملف أو مجلد)؛ ويحافظ على الارتباط بكائن نظام الملفات في حالة نقله أو إعادة تسميته.
  • ملف : مرجع إلى كائن في نظام الملفات؛ يمكن أن يشير إلى كائن غير موجود
  • ملف POSIX : مرجع إلى كائن نظام الملفات، بنص عادي، باستخدام تدوين الشرطة المائلة (/) على نمط Unix ( POSIX )؛ ليس نوع بيانات حقيقي، حيث يقوم AppleScript تلقائيًا بتحويل ملف POSIX إلى ملف عادي [ 38 ]
متنوع
  • لون RGB : يحدد ثلاثية RGB ( بتنسيق ألوان عالي 16 بت )، لاستخدامها في الأوامر والكائنات التي تعمل مع الألوان
  • أنواع الوحدات : التحويل بين الوحدات القياسية؛ على سبيل المثال، يمكن تعريف قيمة ما على أنها square yards، ثم تحويلها إلى square feetعن طريق التحويل بين أنواع الوحدات باستخدام asالمعامل

حاجز

يدعم AppleScript بنية التعليمات البرمجية المركبة باستخدام صيغة السطر الواحد أو صيغ الأسطر المتعددة. في صيغة الأسطر المتعددة، تُنهي كتلة التعليمات البرمجية بعبارة مثل ` where keyword` ، حيث `keyword` هي الكلمة المفتاحية للتعليمات البرمجية في بداية الكتلة. على سبيل المثال:end keyword

-- نموذج بسيط لإعلام تطبيق "سفاري" بالتفعيل-- تطبيق "MyApp" المركب -- أوامر التطبيق end tell

نص

كائن البرنامج النصي هو كائن كامل ، يغلف الطرق والبيانات، ويرث البيانات والسلوك من البرنامج النصي الأصلي. يمكن لكائنات البرنامج النصي استخدام نفس بنى "tell" المستخدمة لكائنات التطبيق، ويمكن تحميلها من الملفات وحفظها فيها. يمكن تحسين أداء وقت التشغيل في بعض الحالات باستخدام كائنات البرنامج النصي. يُعرَّف كائن البرنامج النصي على النحو التالي:

script scriptName -- الأوامر والمعالجات الخاصة بالبرنامج النصي end script

حلقة

تتضمن بنية الحلقة عدة أشكال، جميعها تستخدم الكلمة المفتاحية repeat . ويمكن الخروج من الحلقة باستخدام exit repeat .

غير مشروط
كرر -- الأوامر المراد تكرارها نهاية التكرار
كرر ذلك عدة مرات
كرر 10 مرات -- الأوامر المراد تكرارها نهاية التكرار
شرطي

في حلقة التكرار "repeat while" ، يتم تنفيذ الكتلة طالما أن الشرط صحيح. أما في حلقة التكرار "repeat until" ، فالأمر مماثل باستثناء أن الكتلة تُنفذ طالما أن الشرط خاطئ.

اجعل قيمة x تساوي كرر ذلك طالما أن x > اجعل قيمة x تساوي x - انتهى التكراراجعل قيمة x تساوي كرر العملية حتى تصبح x 0، ثم اجعل قيمة x تساوي x - ثم أنهِ التكرار.
مع متغير

يتم تهيئة المتغير بقيمة معينة، وبعد كل تنفيذ للكتلة، يتم زيادة قيمة المتغير بمقدار قيمة الخطوة؛ 1 إذا لم يتم تحديدها.

-- كرر الكتلة 2000 مرة، حيث يحصل i على جميع القيم من 1 إلى 2000، كرر مع i من 1 إلى 2000 -- الأوامر المراد تكرارها نهاية التكراركرر الكتلة 4 مرات، تأخذ i القيم 100، 75، 50، و25. كرر مع i من 100 إلى 25 بمقدار -25 . -- الأوامر المراد تكرارها. نهاية التكرار.
تعداد

يحتوي المتغير على قيمة كل عنصر من عناصر القائمة مع تقدم الحلقة.

اجعل المجموع يساوي صفرًا. كرر العملية مع متغير الحلقة في { 1 ، 2 ، 3 ، 4 ، 5 }. اجعل المجموع يساوي المجموع + متغير الحلقة. انتهى التكرار.

المعالج

يُعرّف المعالج ، وهو أحد أشكال بنية الكتلة، روتينًا فرعيًا.

معالج الوظائف
on myFunction ( parameters ...)-- أوامر الروتين الفرعينهاية الدالة
كتلة إجراءات المجلد
عند إضافة عناصر المجلد إلى هذا المجلد بعد استلام هذه العناصر-- أوامر لتطبيقها على المجلد أو العناصر إنهاء إضافة عناصر المجلد إلى
تشغيل المعالج
أثناء الجري-- الأوامرحيلة يراد بها التملص

يمكن أيضًا تعريف المعالجات باستخدام "to" بدلاً من "on" ويمكن كتابتها لقبول المعلمات المصنفة، غير المحاطة بأقواس.

معالج ذو معلمات مُصنّفة
عند تشغيل الأمر "rock around the clock" ، يتم عرض مربع حوار ( الساعة كسلسلة نصية ) ثم يتم إنهاء العملية. يتم استدعاء الأمر " rock around the current date " باستخدام الأمر " rock around the current date".
معالج يستخدم "إلى" والمعلمات المصنفة
للتحقق من رقمك من الأسفل إلى الأعلى ، إذا كان الجزء السفلي رقمك ورقمك الجزء العلوي ، فاعرض مربع حوار "تهانينا! لقد سجلتَ هدفًا." نهاية الشرط نهاية التحقق -- تم استدعاؤه مع: التحقق من الرقم 8 من 7 إلى 10

يوجد أربعة أنواع من المعالجات المحددة مسبقًا في AppleScript - التشغيل، والفتح، والخمول، والخروج - يتم إنشاء كل منها بنفس طريقة معالج التشغيل الموضح أعلاه.

تشغيل المعالج
يُحدد هذا الجزء الكود الرئيسي للبرنامج النصي، والذي يُستدعى عند تشغيل البرنامج. تُعدّ كتل معالجة التشغيل اختيارية، إلا إذا تم تمرير وسائط إلى البرنامج النصي. في حال حذف كتلة معالجة تشغيل صريحة، فسيتم تنفيذ جميع التعليمات البرمجية غير الموجودة داخل كتل المعالجة كما لو كانت ضمن معالجة تشغيل ضمنية.
معالج الفتح
تم تعريفها باستخدام "on open theItems".
عند فتح العناصر، كرر العملية مع هذا العنصر في العناصر، وأخبر تطبيق "Finder" بتحديث هذا العنصر . انتهى التكرار. انتهى الفتح.

عند حفظ نص برمجي يحتوي على "معالج فتح" كتطبيق مصغر، يتحول التطبيق المصغر إلى قطرة. يمكن التعرف على القطرة في Finder من خلال أيقونتها التي تتضمن سهمًا، مما يشير إلى إمكانية سحب وإفلات العناصر عليها. يتم تنفيذ معالج الفتح الخاص بالقطرة عند سحب وإفلات الملفات أو المجلدات على أيقونتها. تُمرر مراجع العناصر المسحوبة إلى نص القطرة البرمجي كمعامل لمعالج الفتح. يمكن أيضًا تشغيل القطرة بنفس طريقة تشغيل التطبيق المصغر العادي، وذلك بتنفيذ معالج التشغيل الخاص بها.

معالج الخمول
روتين فرعي يتم تشغيله دوريًا بواسطة النظام عندما يكون التطبيق في وضع الخمول.
عند الخمول -- الكود المراد تنفيذه عند اكتمال تنفيذ البرنامج النصي. إرجاع 60 -- عدد الثواني للتوقف مؤقتًا قبل إعادة تنفيذ معالج الخمول. إنهاء الخمول

يمكن استخدام معالج الخمول في التطبيقات المصغّرة أو التطبيقات المصغّرة المحفوظة كتطبيقات مصغّرة دائمة التشغيل، وهو مفيد للبرامج النصية التي تراقب بيانات أو أحداثًا معينة. يبلغ طول فترة الخمول 30 ثانية افتراضيًا، [ 39 ] ولكن يمكن تغييرها بإضافة عبارة "return x" في نهاية البرنامج الفرعي، حيث يمثل x عدد الثواني التي يجب أن ينتظرها النظام قبل إعادة تشغيل المعالج.

معالج الإخلاء
معالج يتم تشغيله عندما يتلقى التطبيق المصغر طلب إنهاء. يمكن استخدام هذا المعالج لحفظ البيانات أو القيام بمهام إنهاء أخرى قبل الإنهاء.
عند الخروج -- الأوامر المراد تنفيذها قبل خروج البرنامج النصي، استمر في الخروج -- مطلوب لخروج البرنامج النصي فعليًا، أنهِ الخروج

تعليق

يمكن تنسيق التعليقات بطرقٍ مختلفة. يبدأ التعليق السطري بـ `<script>` ، أو-- بدلاً من ذلك، في الإصدارات اللاحقة (AppleScript 2.0، التي صدرت لأول مرة في نظام التشغيل Mac OS X Leopard ) بـ ` <script> #`. يسمح هذا الأخير بتشغيل سكربت AppleScript كملف تنفيذي إذا بدأ بسطر shebang#!/usr/bin/osascript . على سبيل المثال:

هذا تعليق سطري # وكذلك هذا! (في الإصدارات اللاحقة)

يتم تحديد التعليق المطول (الذي قد يتكون من عدة أسطر) بواسطة علامتي فاصلة (- (*) و *). على سبيل المثال:

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

تفاعل المستخدم

تتضمن لغة AppleScript العديد من خيارات واجهة المستخدم، بما في ذلك مربعات الحوار والتنبيهات وقوائم الخيارات. (يشير الرمز +، الناتج عن كتابة ⌥ Option+return في محرر النصوص البرمجية، إلى استمرار عبارة واحدة عبر عدة أسطر.)

-- ضبط مربع الحوار dialogReply لعرض مربع الحوار "نص الحوار" الإجابة الافتراضية "إجابة نصية" الإجابة المخفية false الأزرار { "تخطي" ، " موافق" ، "إلغاء" } الزر الافتراضي "موافق" زر الإلغاء "تخطي" مع العنوان "عنوان نافذة الحوار" مع أيقونة ملاحظة الاستسلام بعد 15
-- اختر من القائمة ...
-- اضبط خاصية resultAlertReply لعرض تنبيه " نص التنبيه" كأزرار تحذير { "تخطي" ، "موافق" ، "إلغاء" الزر الافتراضي 2 ، زر الإلغاء 1 ، التوقف بعد 2

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

اعرض تنبيهًا " مرحبًا بالعالم!" ، ثم ضع زرين: "رفض بفظاظة" و "قبول بكل سرور" . عيّن الإجابة للزر المُعاد من النتيجة . إذا كانت الإجابة "قبول بكل سرور"، فأصدر صوت تنبيه وإلا قل "هراء!". انتهى الشرط.

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

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

إحدى ميزات بنية البرمجة المفتوحة (OSA) هي إضافات البرمجة النصية ، أو OSAX اختصارًا لـ Open Scripting Architecture eXtension ، [ 36 ] والتي استُلهمت من الأوامر الخارجية في برنامج HyperCard . إضافات البرمجة النصية عبارة عن مكتبات تُمكّن المبرمجين من توسيع وظائف AppleScript. تتوفر الأوامر المُضمنة كإضافات برمجة نصية على مستوى النظام، ولا تعتمد على أي تطبيق (انظر أيضًا قسم  مكتبات AppleScript ). كما يُمكن لمحرر AppleScript تحرير وتشغيل بعض لغات OSA مباشرةً.

جافا سكريبت للأتمتة

في نظام التشغيل OS X Yosemite والإصدارات اللاحقة من macOS، يظل مكون JavaScript for Automation ( JXA ) البديل الجاد الوحيد للغة AppleScript في أنظمة التشغيل الآلية (OSA)، [ 14 ] على الرغم من أن إصدارات ماكنتوش من لغات Perl و Python و Ruby و Tcl تدعم جميعها وسائل أصلية للتعامل مع أحداث Apple دون أن تكون مكونات لأنظمة التشغيل الآلية. [ 30 ] : 516

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

انظر أيضاً

  • ARexx – مترجم لغة Rexx على جهاز كمبيوتر Amiga 

مراجع

  1. 1 2 3 كوك، ويليام (2007). "أبل سكريبت" (ملف PDF) . وقائع المؤتمر الثالث لجمعية آلات الحوسبة SIGPLAN حول تاريخ لغات البرمجة . جمعية آلات الحوسبة . الصفحات 1-21 . doi : 10.1145/1238844.1238845 . ISBN  9781595937667. S2CID 220938191 . 
  2. شركة آبل (2022). محرر النصوص البرمجية (الإصدار 2.11). تم الاطلاع عليه بتاريخ 11 نوفمبر 2022.
  3. "تاريخ إصدار نظام التشغيل OS X 10.10 Yosemite" . 16 أكتوبر 2014. تم الاطلاع عليه في 16 نوفمبر 2014 .
  4. 1 2 3 غولدشتاين، آدم (2005). AppleScript: الدليل المفقود . سيباستوبول، كاليفورنيا: أورايلي ميديا . ISBN 0596008503. OCLC 56912218 . 
  5. 1 2 3 4 5 6 7 8 ساندرسون، هاميش؛ روزنتال، حنان (2009). "التفاعل مع سطر أوامر يونكس". تعلم AppleScript ( الطبعة الثالثة). بيركلي: Apress . الصفحات 863-896 . doi : 10.1007/978-1-4302-2362-7_27 . ISBN   9781430223610. OCLC 308193726 . 
  6. فلين، لوري (27 فبراير 1989). "أبل تفكر في توحيد لغة هايبر توك" . إنفوورلد . المجلد 11، العدد 9. ص 31.   
  7. "دليل أوامر لغة AppleScript: كتابة سكريبت شل" . developer.apple.com . تم الاطلاع عليه بتاريخ 15 سبتمبر 2019 .
  8. "أبرز إنجازات أبل: 30 منتجًا هامًا" . macworld.com . تم الاطلاع عليه بتاريخ 12 سبتمبر 2019 .
  9. غروبر، جون (مارس 2013). "الاستمرار غير المتوقع لـ AppleScript" . ماك وورلد . 30 (3): 100.
  10. لوفجوي، بن (17 نوفمبر 2016). "سال سوغويان يقول 'اسألوا آبل' عن مستقبل أتمتة مستخدمي ماك مع إلغاء الشركة لهذا المنصب" . 9to5mac.com . تم الاطلاع عليه في 8 مايو 2017 .
  11. إيفانز، جوني (17 نوفمبر 2016). "هل تريد آبل حقًا القضاء على Automator وAppleScript؟ إنهاء خدمة أحد أبرز مطوري آبل يُحدث صدمة في مجتمع مستخدمي ماك" . Computerworld.com . تاريخ الاطلاع: 8 مايو 2017 .
  12. جاميت، جيف (23 نوفمبر 2016). "نية آبل لا تعني التزامها بأتمتة نظام ماك" . macobserver.com . تاريخ الاطلاع: 8 مايو 2017 .
  13. "التطبيقات القابلة للبرمجة" . developer.apple.com . تم الاطلاع عليه بتاريخ 26 يوليو 2018 .
  14. 1 2 3 سيراكوزا، جون (16 أكتوبر 2014). "نظام التشغيل OS X 10.10 Yosemite: مراجعة آرس تكنيكا: أتمتة جافا سكريبت" . آرس تكنيكا . تم الاطلاع عليه في 8 مايو 2017 .
  15. "الصفحة الرئيسية لـ Smile و SmileLab" . satimage.fr . تم الاطلاع عليه بتاريخ 8 مايو 2017 .
  16. "إيقاف دعم ASObjC Explorer 4" . macosxautomation.com . مؤرشف من الأصل بتاريخ 21 يونيو 2017. تم الاطلاع عليه بتاريخ 8 مايو 2017 .
  17. "مدونة مارك ألدريت » فيس سبان" . blog.latenightsw.com . تم الاطلاع عليه بتاريخ 8 مايو 2017 . 
  18. "دليل لغة AppleScript: مرجع إجراءات المجلدات" . developer.apple.com . تم الاطلاع عليه بتاريخ 8 مايو 2017 .
  19. ميلر، دان (22 ديسمبر 2010). "مراجعة موجزة: هازل 2.3" . Macworld.com . تم الاطلاع عليه في 8 مايو 2017 .
  20. بيم، برايان (10 فبراير 2015). "مراجعة ألفريد: يستمر مشغل تطبيقات ماك هذا في التألق، لكن ألفريد ريموت لا يرقى إلى المستوى المطلوب" . Macworld.com . تم الاطلاع عليه في 10 مايو 2017 .
  21. فراكس، دان (2 يونيو 2011). "مراجعة موجزة: FastScripts 2.5" . Macworld.com . تم الاطلاع عليه في 8 مايو 2017 .
  22. برين، كريستوفر (4 يونيو 2013). "جواهر ماك: برنامج Keyboard Maestro 6 عبقري في المهام المتكررة" . Macworld.com . تم الاطلاع عليه في 10 مايو 2017 .
  23. برين، كريستوفر (7 مايو 2010). "مراجعة الكبسولة: كويك كيز 4" . Macworld.com . تم الاطلاع عليه في 8 مايو 2017 .
  24. "AppleScripts – Quicksilver Wiki" . qsapp.com . تم الاطلاع عليه بتاريخ 10 مايو 2017 .
  25. فليشمان، جلين (12 يونيو 2015). "مراجعة TextExpander 5" . Macworld.com . تم الاطلاع عليه في 8 مايو 2017 .
  26. "دليل برمجة أتمتة نظام ماك: استخدام قائمة البرامج النصية على مستوى النظام" . developer.apple.com . تم الاطلاع عليه بتاريخ 8 مايو 2017 .
  27. "osascript(1) صفحة دليل نظام التشغيل Mac OS X" . www.unix.com . تم الاطلاع عليه في 23 يوليو 2024 .
  28. "مكتبات AppleScript" . macosautomation.com . مؤرشف من الأصل في 26 يوليو 2020. تم الاطلاع عليه في 8 مايو 2017 .
  29. "الجلسة 416 من مؤتمر WWDC 2013: تقديم مكتبات AppleScript" . asciiwwdc.com . تم الاطلاع عليه بتاريخ 8 مايو 2017 .
  30. 1 2 نيوبورغ، مات (2006). AppleScript: الدليل الشامل ( الطبعة الثانية). بكين: أورايلي ميديا . ISBN  0596102119. OCLC 68694976 . 
  31. تساي، مايكل (29 سبتمبر 2014). "أبل سكريبت ويوسيميتي" . mjtsai.com . تم الاطلاع عليه في 9 مايو 2017 .
  32. "ملاحظات إصدار AppleScriptObjC" . ​​developer.apple.com . تم الاطلاع عليه بتاريخ 8 مايو 2017 .
  33. والدي، بن (6 سبتمبر 2012). "بناء تطبيق AppleScriptObjC (Cocoa-AppleScript) أساسي باستخدام Xcode" . peachpit.com . تم الاطلاع عليه في 9 مايو 2017 .
  34. الجدول مقتبس من: ناغانويا، تاكاكي. "دليل برمجة ASObjCExtras" (ملف PDF) . piyocast.com . مؤرشف (ملف PDF) من الأصل في 9 أكتوبر 2022. تم الاطلاع عليه في 9 مايو 2017 .
  35. "مقدمة إلى برنامج تعليمي حول إجراءات AppleScript في Automator" . developer.apple.com . تم الاطلاع عليه بتاريخ 8 مايو 2017 .
  36. 1 2 "ملاحظة فنية TN1164: إضافات البرمجة النصية لنظام التشغيل Mac OS X" . developer.apple.com . تم الاطلاع عليه بتاريخ 8 مايو 2017 .
  37. "ملاحظات إصدار AppleScript: تغييرات الإصدار 10.5" . developer.apple.com . تم الاطلاع عليه بتاريخ 8 مايو 2017 .
  38. "ملف POSIX - مرجع الفئة - دليل لغة AppleScript" . developer.apple.com . تم الاطلاع عليه في 8 يناير 2018 .
  39. "دليل لغة AppleScript: المعالجات في تطبيقات البرمجة النصية" . developer.apple.com . تم الاطلاع عليه في 21 يوليو 2013 .
  40. "نظرة عامة على AppleScript: بنية البرمجة النصية المفتوحة" . developer.apple.com . تم الاطلاع عليه بتاريخ 8 مايو 2017 .
  41. "استيراد البرامج النصية" . جيت هاب . دليل استخدام JXA. 6 ديسمبر 2019. تم الاطلاع عليه في 9 ديسمبر 2019 .

للمزيد من القراءة