موضوع مقاله: اپل اسکریپت | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # اپل اسکریپت | مقدمه: اپل اسکریپت یک زبان اسکریپت نویسی است که توسط شرکت اپل ساخته شده‌است و در مک اواس از زمان system 7 استفاده می‌شود. | ## بخش 1: اپل اسکریپت | کلمهٔ " اپل اسکریپت " ممکن است به خود سیستم ویرایشگری یا یک متن منحصر به فرد نوشته شده با زبان اپل اسکریپت اشاره کند. اپل اسکریپت محاسبات ابتدایی و پردازش‌های متنی پیچیده‌ای را می‌تواند انجام دهد و این‌ها قابل گسترش هستند به‌طوری‌که می‌توان کارکردهای ویرایشی متن را به خود زبان اضافه کرد. هرچند اساساً اپل اسکریپت به کارکرد برنامه‌ها و پردازش‌ها برای کنترل عملیات پیچیده متکی است. اساسی‌ترین کارکرد آن این است که برنامه‌های مکینتاش، دیکشنری‌هایی را با اشیاء و عملیاتی آدرس دار عرضه دهند. اپل اسکریپت یکسری المان‌های برنامه‌نویسی شیءگرا، به خصوص در ساختمان اشیای متنی و گرایش‌هایی از برنامه‌نویسی زبان طبیعی در نحو را دارد اما به‌طور مستقیم از هیچ‌کدام از این دو دسته پیروی نمی‌کند. هایپرکارد شامل یک زبان اسکریپتیِ مبتنی بر زبان انگلیسی به نام هایپرتاک بود که برای برنامه‌نویسی یک پشته هایپرکارد استفاده می‌شد. مهندسان کمپانی اپل متوجه شدند که یک زبان ویرایشگر مشابه به منظور استفاده در هر نوع برنامه‌ای می‌تواند طراحی شود و بنابراین پروژهٔ اپل اسکریپت به عنوان بخشی از سیستم هفت متولد شد. اپل اسکریپت در ماه اکتبر سال ۱۹۹۳ به عنوان بخشی از سیستم ۷٫۱٫۱ (اولین به روزرسانی اصلی سیستم ۷) به بازار عرضه شد. کوارک اکسپرس (ورژن ۳٫۲) یکی از اولین و اصلی‌ترین نرم‌افزارهایی بود که اپل اسکریپت را پشتیبانی می‌کرد. این مهم‌ترین عاملی بود در حفظ جایگاه مکینتش در پابلیشینگ، حتی بعداً کوارک اکسپرس و سایر برنامه‌ها به ویندوزِ مایکروسافت رو کردند. بعد از مقداری شک در مورد آیندهٔ اپل اسکریپت روی نسل بعدی سیستم عامل‌های اپل، انتقال آن به اواس ده مک (حدود سال ۲۰۰۲) و رابط برنامه‌نویسی کوکوِ یِ آن، قابلیت استفاده و انعطاف اپل اسکریپت را به مقدار زیادی افزایش داد. برنامه‌های کوکو این اجازه را به برنامه نویسان می‌دهد که با تلاش کم، قابلیت‌های اسکریپتی ابتدایی را برای برنامه‌شان، با زیاد کردن تعداد برنامه‌هایی که مستقیماً متنی شدنی هستند، پیاده‌سازی کنند. به‌طور همزمان، جابجایی به زیربنای یونیکس و توانایی اپل اسکریپت برای اجرای مستقیم دستورهای یونیکس، کنترل اپل اسکریپت را روی خود سیستم عامل افزود. اپل اسکریپت از Apple Eventها استفاده می‌کند که یک سری مدل داده‌های استاندارد شده هستند که سیستم عامل مکینتاش برای فرستادن اطلاعات به برنامه‌ها استفاده می‌کند. Apple Eventها می‌گذارند تا یک متن بتواند با چند برنامه هم‌زمان کار کند و داده‌ها بین آن‌ها رفت‌وآمد کنند تا عملیات پیچیده بدون دخالت انسان انجام شوند. برای کاربر، صدها یا هزاران قدم در چندین برنامه به تنها عمل اجرا کردن یک متن کاهش یافته‌است و عملیات در زمان بسیار کمتری بدون هیچگونه خطای انسانی صورت می‌گیرد. یک متن بزرگ و پیچیده فقط یکبار اجرا می‌شود درحالیکه متن‌های دیگر بارها استفاده می‌شوند. بخش‌های اپل اسکریپتِ یک برنامه داخل لغتنامهٔ اسکریپتی آن برنامه قابل رویتهستند که داخل هرگونه ویرایشگر متنی قابل دیدن‌اند. | ## بخش 2: اپل اسکریپت | برای مثال، یک برنامهٔ ویرایش متن یکسری کلاسهایی برای پنجره‌ها، سندها و متن‌ها دارد و این کلاس‌ها یک سری ویژگی‌ها دارند(property) که قابل تغییرند (سایز پنجره، پس زمینهٔ سند، سایز خطوط متن و ...) یا ممکن است کلاسهایی دیگر را هم شامل شوند (یک پنجره یک یا چند سند دارد، یک سند متن دارد، یک شی متن پاراگراف‌ها و کلمات و کاراکترهایی دارد). به‌طور متضاد، «دستورها»، دستورهایی هستند که می‌تواند به اشیای متن شدنی داده شوند. فرم کلی یک بلوک اپل اسکریپت این‌گونه است که به یک شی متن شدنی گفته می‌شود که یک دستور را اجرا کند. دستورهایی برای بازکردن، بستن یا ذخیره یک فایل، برای چاپ کردن چیزی، برای خروج، برای اختصاص داده‌ها به متغیرها. بسیاری از برنامه‌ها تعدادی زیادی از توابعی با کارکردهای تقریباً مشابه را دارند که با اجرای هر عملی که خود برنامه می‌تواند انجام دهد همخوانی دارند. در موارد استثنایی، برنامه‌ها ممکن است یک سری plugin که داخل لغتنامهٔ اسکریپتی خودشان است را پشتیبانی کنند. اپل اسکریپت با توانایی در ساخت یک متن به وسیله درک مستقیم و ضبط حرکات کاربر، طراحی شد. هنگمی که ویرایشگر اپل اسکریپت باز است و دکمهٔ رکورد زده شده‌است، هر عملِ کاربر روی کامپیوتر در هر برنامه‌ای که AppleEvents و ضبط اپل اسکریپت را پشتیبانی می‌کند، به دستورهای مربوطه آن‌ها داخل اپل اسکریپت تبدیل شده و روی پنجرهٔ ویرایش متن قرار می‌گیرد. متن نهایی می‌تواند ذخیره یا دوباره اجرا شود تا اعمال اصلی تکرار شوند یا تغییر داده شوند تا به‌طور کلی قابل استفاده باشند. برای پیروی از سنت سیستم عامل مک در راحتی استفاده، زبان اپل اسکریپت بر اساس زبان طبیعی طراحی شده‌است. یک برنامهٔ خوب نوشته شدهٔ اپل اسکریپت باید به اندازهٔ کافی تمیز و خوانا و قابل درک برای عموم باشد و به راحتی قابل ویرایش باشد. عمدتاً این زبان بر پایهٔ زبان هایپرتاکِ هایپرکارد است که گسترش یافتهٔ آن نه تنها به دنیای کارت‌ها و پشته‌های هایپرکارد، بلکه به صورت نظری به هر سندی اشاره دارد. قلب زبان اپل اسکریپت استفادهٔ کلماتیست که چون اسامی و تفعال عمل می‌کنند و قابل ترکیب هستند. برای شناخت بخش‌هایی از برنامه که متن شدنی اند باید لغتنامه‌هایی که آن برنامه‌ها پشتیبانی می‌کنند، ملاحظه شوند. همین‌طور اعداد هم می‌توانند متن یا رقم به حساب بیایند ."five " , "fifth" و "۵" همگی پشتیبانی می‌شوند و معادل دارند. همین‌طور کلمهٔ "the " می‌تواند هرجای متن برای بهبود خوانایی استفاده شود و هیچ اثری بر عملکرد ندارد. اسکریپت‌ها داخل پنجره‌های سند ویرایش نوشته می‌شوند و در آنجا کامپایل و اجرا می‌شوند و این پنجره‌ها محیط‌های مختلفی برای وارد کردن اطلاعات دارند همین‌طور برای به اجرا درآوردن نتیجه‌ها و بقیهٔ اطلاعات نیز برای اهداف debug کردن فراهم است. دسترسی به لغتنامه‌های اسکریپتی و کدهای از پیش نوشته شده داخل منوهای برنامه موجود است. | ## بخش 3: اپل اسکریپت | Xcode, از شرکت اپلیک دسته از ابزارهایی با ویژگی‌های نزدیک به هم برای توسعه دادن برنامه‌هایی با قابلیت‌هایی برای ویرایش اپل اسکریپت‌ها یا درست کردن برنامه‌های تکامل یافتهٔ نوشته شده در زبان اپل اسکریپت. smileLab هم یک نرم‌افزار تبلیغاتی با امکانات اضافی برای آنالیز عددی، کارهای گرافی، اتوماسیون ماشین و کارهای وب است. پنجره‌های اپل اسکریپت برای اجرا کردن و ذخیره فول اسکریپت‌ها و پایانه‌های اپل اسکریپت برای آزمایش خط به خط کد و پنجره‌های یونی-کد برای کار با متون و XML. کاربران می‌توانند واسط‌های پیچیده، به نام دیالوگ‌ها را برای موقعیت‌هایی که دیالوگ‌های خود اپل اسکریپت به کارشان نمیاد، درست کنند. این فرا تر از فقط لیست کردن چیزهایی است که لغتنامه می‌پوشاند بلکه یک نفر می‌تواند یک سند را داخل Pages باز کند و ببیند که چگونه لغات داخل لغتنامه برای آن سند صدق می‌کنند و این کار را برای فهم اینکه چه بخش‌های لغتنامه را استفاده کند، مفید است.Script Debugger برای ساختن اسکریپت‌هایی با واسط گرافیکی کاربر ساخته نشده‌است، علاوه بر توانایی ساخت alertها و دیالوگ ای ابتدایی، بیشتر روی کد زدن و debug کردن آن‌ها متمرکز است. تعدادی از انتخاب‌ها برای این گونه عمل کردن: Script Menuمنو ی این سیستم گسترده دسترسی به اپل اسکریپت‌ها را از دروت منوبارِ کامپیوتر mac os X فراهم می‌کند بدون اینکه مهم باشد که چه برنامه‌هایی در حال اجرا هستند. وقتی اولین بار فعال می‌شود، منوی اسکریپت یک کتابخانهٔ پیش‌فرض نسبتاً عام و اپل اسکریپت‌های کارکردی که از ویرایشگر اسکریپت هم قابل بازشدن اند و مثال‌هایی برای درک بهتر اپل اسکریپت اند را، نمایش می‌دهد. اسکریپت‌ها می‌توانند سازمان دهی شوند به‌طوری‌که فقط وقتی در منو ظاهر شوند که یک برنامهٔ مشخص در پس زمینه فعال است. این‌ها از چندین راه قابل فعال شدن اند اما تمتمی توابع اولیهٔ آن‌ها از یک جنس است. قصد این است که بدون نیاز به دانش برنامه نویسی، بسیاری از توابع اپل اسکریپت را تکرار کنیم. هستهٔ سیستم برنامه‌های اسکریپت شدنیاین برنامه‌ها که فقط در پس زمینه اجرا می‌شوند و داخل mac os x اند، برای دسترسی دادن اپل اسکریپت به ویژگی‌هایی که به صورت معمول اسکریپت شدنی نیستند. آن‌ها برای گسترش دستورهای خود اپل اسکریپت و گسترش ویژگی‌های آن برای کم کردن وابستگی آن به کارکرد برنامه‌های دیگر، طراحی شده‌اند. بدون OSAX اپل اسکریپت توانایی نمایش دیالوگ‌ها یا سرویس‌های مسیریابی و اجرای یک برنامه، تولید شده به‌طور غیرمستقیم از برنامه‌ای دیگر را نداشت. نکات اساسی زبان کلاسها (نوع داده‌ها) اپل اسکریپت تعدادی کلاس تعریف شده (یا همان data type)در خودش دارد؛ و قطعاً یک برنامه هم می‌تواند که انواع دادهٔ نیازش را اضافه کند. نام مستعار ارتباطش را با شئ حتی اگر آن شئ حذف یا تغییر اسم داده شود، حفظ خواهد کرد. این یک مراجعهٔ ایستا است و می‌تواند به یک شئ که در حال، وجود ندارد هم اشاره کند. طول زمان درجا بودن برنامه، به صورت پیشفرض ۳۰ ثانیه است اما می‌تواند با برگرداندن مقداری دیگر در انتهای زیرروال، تغییر کند. آن‌ها می‌توانند متدهای کلاسهایشان را پیاده کنند و داده و توابع را از یک پدر به ارث ببرند. | ## جمع‌بندی | اپل اسکریپت به عنوان یک بخش اسکریپتی پیاده‌سازی شد و خصوصیات پایهٔ آن برای وساطت با چنین بخشی، برای OSA عمومی بود و به بقیهٔ توسعه دهندگان اجازه می‌داد تا بخش‌های اسکریپتی خود را به سیستم اضافه کنند.