AppleScript

מתוך ויקיפדיה, האנציקלופדיה החופשית
יש לערוך ערך זה. ייתכן שהערך סובל מבעיות ניסוח, סגנון טעון שיפור או צורך בהגהה, או שיש לעצב אותו, או מפגמים טכניים כגון מיעוט קישורים פנימיים.
אתם מוזמנים לסייע ולערוך את הערך. אם לדעתכם אין צורך בעריכת הערך, ניתן להסיר את התבנית.
יש לערוך ערך זה. ייתכן שהערך סובל מבעיות ניסוח, סגנון טעון שיפור או צורך בהגהה, או שיש לעצב אותו, או מפגמים טכניים כגון מיעוט קישורים פנימיים.
אתם מוזמנים לסייע ולערוך את הערך. אם לדעתכם אין צורך בעריכת הערך, ניתן להסיר את התבנית.
AppleScript
פרדיגמות Natural Language Programming, Scripting
תאריך השקה 1993 עריכת הנתון בוויקינתונים
מפתח Apple
גרסה אחרונה 2.7 עריכת הנתון בוויקינתונים
טיפוסיות חלשה, דינמית
הושפעה על ידי HyperTalk
רישיון פרטי ( Proprietary) ( חלקים מסוימים תחת רישיון APSL )
סיומת

.scpt .scptd

.applescript
האתר הרשמי
לעריכה בוויקינתונים שמשמש מקור לחלק מהמידע בתבנית

AppleScript (אַפֶּלְ-סְקְרִיפְּט) היא שפת תכנות תסריטית, אשר פותחה על ידי חברת אפל ושוחררה לראשונה בשנת 1993. AppleScript מסייעת באוטומציה של אפליקציות ובייחוד בתקשורת ביניהן באמצעות אירועים (Events) במערכת ההפעלה MacOS (החל מגרסה 7), ומצורפת באופן אוטומטי למערכת ההפעלה כחלק מחבילה של כלים לאוטומציה. השם "AppleScript" עלול להתייחס גם לסקריפט אשר נכתב בשפה ולסביבת Open Scripting Architecture במערכת ההפעלה MacOS (בקיצור: OSA) עליה השפה מבוססת. לשפה טיפוסיות דינמית וחלשה, והתחביר שלה דומה לכתיבת משפטים באנגלית. לפיכך נוטים לשייך אותה לפרדיגמת התכנות Natural Language Programming (כתיבת קוד אשר מזכיר שפה טבעית של בני אדם) (אנ').

סקירת השפה[עריכת קוד מקור | עריכה]

AppleScript היא שפת סקריפטים אשר פותחה על ידי אפל על מנת לבצע תקשורת בין אפליקציות (Inter Process Communication, IPC (אנ')) באמצעות Apple Events - מכניזם תקשורת בין תהליכים אשר מטפל באירועים. Apple Events תוכנן על מנת להחליף מידע ולשלוט באפליקציות אחרות על מנת להפוך משימות רפטטיביות (אשר חוזרות על עצמן) לאוטומטיות. ל-AppleScript יש יכולות עיבוד משלה, מעבר לשליחה וקבלה של אירועים בין אפליקציות.

AppleScript מכילה מספר אלמנטים של תכנות פרוצדורלי (חלוקה של התוכנית לתתי תוכנית), תכנות מונחה עצמים, ו-Natural Language Programming (כתיבת קוד אשר מזכיר שפה טבעית של בני אדם) (אנ')), אך היא אינה משויכת אליהן באופן מלא.

היסטוריה[עריכת קוד מקור | עריכה]

בשנות ה-80 המאוחרות, אפל שקלה להשתמש בשפת התכנות התסריטית HyperTalk של HyperCard (אנ')- תוכנה וערכת פיתוח למחשבי מקינטוש, בתור השפה הסטנדרטית לEnd-User Development (תכנות על ידי אנשים שאינם מפתחי תוכנה מקצועיים) ברחבי החברה ובמערכת ההפעלה מקינטוש, וכן בשביל תקשורת בין תהליכים (Interprocess Communication) בין מכשירים מתוצרת אפל לבין מכשירים שאינם מתוצרת אפל. מפתחי התוכנה באפל שמו לב כי ניתן לתכנן שפת תכנות תסריטית דומה ל-HyperTalk, אשר תומכת יותר בתכנות מונחה עצמים. אפל החלה בפיתוח של שפה זו (לימים AppleScript).

AppleScript שוחחרה לראשונה באוקטובר, 1993 כחלק מגרסה System 7.1.1 של מערכת ההפעלה MacOS מבית אפל. QuarkXPress (בגרסה 3.2) הייתה מהתוכנות הראשונות אשר תמכו ב-AppleScript.

לאחר אי ודאות מסוימת לעתידה של AppleScript במחשבי הדורות הבאים של אפל, שחרור גרסה MacOS X ב-2002, שאליו נלווה ממשק תכנות היישומים Cocoa הגדיל את היעילות ואת הגמישות של AppleScript.

כתיבת קוד[עריכת קוד מקור | עריכה]

כתיבת הערות[עריכת קוד מקור | עריכה]

הערות של שורה אחת:

על מנת לסמן הערה של שורה אחת ב-AppleScript, יש לכתוב את ההערה לאחר שני מקפים (--), כפי שמודגם בשורה הראשונה בדוגמה לעיל. בנוסף, בגרסת Mac OS X Leopard של מערכת ההפעלה MacOS ניתן לכתוב את ההערה לאחר סולמית (#), בדומה לשפת התכנות פייתון.

--This is a one line comment
# So is this! (in Mac OS X Leopard or later)

הערות של מספר שורות: הערות של מספר שורות יכתבו בין התווים הפותחים *) לתווים הסוגרים *(.

(* This is a
multiple
line
comment *)

תוכנית "Hello World" : ב-AppleScript ניתן לכתוב את תוכנית בסיסית זו במספר דרכים, מפני שניתן להציב את הטקסט על מספר ממשקים שונים, כגון דיאלוגים (Dialogs) - בהם מחכים בדרך כלל לקלט של המשתמש, התראות (Alerts), שמטרתן להודיע למשתמש דבר מסוים, ורשימה של אופציות (Lists Of Choices). ניתן גם לבצע הודעה קולית למשתמש באמצעות הפקודה say.

display dialog "Hello, world!" -- a modal window with "OK" and "Cancel" buttons
-- or
display alert "Hello, world!" -- a modal window with a single "OK" button and an icon representing the app displaying the alert
-- or
say "Hello, world!" -- an audio message using a synthesized computer voice

עקרונות בסיסיים[עריכת קוד מקור | עריכה]

AppleScript תוכננה על מנת להיות שפת תכנות תסריטית בעלת תחביר דמוי שפה טבעית, להציע למשתמשים מכניזם אשר שולט בפעולותיהן של אפליקציות וכן לגשת ולשנות מידע ומסמכים. AppleScript משתמשת ב- Apple Events - מכניזם שבאמצעותו תהליכים חולקים מידע ביניהם (Interprocess Communication) אשר זמין החל מגרסה System 7 של מערכת ההפעלה MacOS של אפל. Apple Event מאפשרים לסקריפט לעבוד בו זמנית עם מספר אפליקציות ולהעביר מידע ביניהן ללא התערבות אנושית. לדוגמה, סקריפט ב-AppleScript שמטרתו ליצור גלריה באתר יבצע את השלבים הבאים:

  1. פתיחת תמונה באפליקצית עריכת תמונות - באמצעות שליחה של Apple Event מסוג Open File אליה.
  2. יש להורות לתוכנת עריכת התמונות לבצע מניפולציות על התמונה, כגון הוספת גבולות, חיתוך, וכיוצא בזאת.
  3. יש להורות לתוכנת עריכת התמונות לשמור את התמונה שנערכה כקובץ בתיקייה מסוימת, באמצעות שליחה של Apple Event מסוג Save and\or Close Event .
  4. יש לשלוח באמצעות Apple Event את הכתובת של הקובץ המכיל את התמונה לעורך טקסט או עורך web מסוים.
  5. יש להורות לתוכנת העורך לשלב בתוך קובץ HTML (קובץ האתר) לינק לתמונה.
  6. יש לחזור על התהליך על תיקיות או תמונות רבות (למשל מאות, או אלפי תמונות).
  7. העלאת קובץ ה-HTML המכיל את התמונות באמצעות Apple Events.

הרצת סקריפט אשר מבצע תהליכים אלו יכולה לחסוך מאות או אלפי תהליכים שהמתכנת היה נדרש לבצע ידנית. ישנם סקריפטים מסובכים וגדולים בהם רק ריצה אחת נדרשת ואילו סקריפטים אחרים משומשים פעמים רבות.

כלי פיתוח[עריכת קוד מקור | עריכה]

עורכי סקריפטים[עריכת קוד מקור | עריכה]

עורכי סקריפטים מספקים סביבת פיתוח מאוחדת עבור סקריפטים ב-AppleScript, ומספקים כלים רבים להדרה, ריצה, דיבוג, סיווג טקסט באמצעות צבעים שונים (Syntax Highlighting, (אנ')) וכו׳.

מבית אפל[עריכת קוד מקור | עריכה]

  • AppleScript Editor
  • Xcode

לא מבית אפל[עריכת קוד מקור | עריכה]

  • Script Debugger, מבית Late Night Software.
  • Smile ו-SmileLab
  • ASObjC Explorer 4, מבית Shane Stanley
  • FaceSpan, מבית Late Night Software.

קישורים חיצוניים[עריכת קוד מקור | עריכה]