פוסטסקריפט

שפת תכנות
יש להשלים ערך זה: בערך זה חסר תוכן מהותי. ייתכן שתמצאו פירוט בדף השיחה.
הנכם מוזמנים להשלים את החלקים החסרים ולהסיר הודעה זו. שקלו ליצור כותרות לפרקים הדורשים השלמה, ולהעביר את התבנית אליהם.

פוסטסקריפטאנגלית: PostScript) היא שפת מחשב לתיאור מסמכים, המשמשת בעיקר בתחום הוצאה לאור שולחנית.

פוסטסקריפט
PostScript
פרדיגמות תכנות מונחה מחסנית, תכנות פרוצדורלי, תכנות מרובה פרדיגמות, concatenative programming עריכת הנתון בוויקינתונים
תאריך השקה 1982 עריכת הנתון בוויקינתונים
מתכנן ג'ון וארנוק עריכת הנתון בוויקינתונים
מפתח אדובי מערכות עריכת הנתון בוויקינתונים
הושפעה על ידי Forth, Interpress, LISP עריכת הנתון בוויקינתונים
סיומת ps עריכת הנתון בוויקינתונים
לעריכה בוויקינתונים שמשמש מקור לחלק מהמידע בתבנית

היסטוריה עריכה

את השפה יצרו בשנת 1982 מייסדי חברת אדובי, ג'ון וורנוק וצ'אק ג'שקה (לפנים ממרכז המחקר זירוקס פארק), כגרסה פשוטה יותר של שפת InterPress. מייסד אפל, סטיב ג'ובס, פגש את וורנוק וג'שקה בשנת 1984 והפציר בהם להתאים את פוסטסקריפט למדפסת הלייזר החדשה של חברת קנון. בשנת 1985 הייתה מדפסת ה-LaserWriter של אפל למדפסת הראשונה ששווקה כשהיא תומכת בשפת פוסטסקריפט. תוך זמן קצר הפכה השפה לתקן דה פקטו להעברת מסמכים לדפוס.

מאחר שתיאור מסמך בפוסטסקריפט הוא למעשה תוכנית מחשב, ישנו קושי להעריך, בהינתן קובץ פוסטסקריפט מסוים, כמה זמן תארך הדפסתו (דוגמה קיצונית היא הכנסת לולאה אינסופית לתוכנית הפוסטסקריפט, דבר שיגרום לכך שתוכנית זו לא תסתיים ולמעשה תשתק את המדפסת). חיסרון נוסף של פורמט הפוסטקריפט, הנובע מהיותו גם שפת תכנות, הוא העובדה שלא ניתן לייצר תוכנה לעריכת קובצי פוסטקריפט כלליים. הרצון ליצור פורמט שיאפשר גם העברה איכותית של קבצים גרפיים וגם יכולת לערוך אותם, הביא את חברת אדובי לפתח את פורמט PDF, שלמעשה מכיל את כל האלמנטים הגרפיים של שפת הפוסטקריפט אולם ללא היכולות התכנותיות. כיום משמש פורמט ה-PDF כפורמט הפצת המסמכים הנפוץ ביותר, אולם עדיין רוב המדפסות הגרפיות והתקני הקדם-דפוס (כמו תווין פילם ופלטות וכן מדפסות דיגיטליות) כוללות מפרש פוסטקריפט. לאחרונה הכריזה חברת אדובי על תוכנה למדפסת שמסוגלת לקבל כקלט מסמכים בפורמט PDF.

השפה עריכה

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

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

השפה התפתחה משפת FORTH ומכילה מלבד פעולות חשבוניות, מבני בקרה תכנותיים כלולאות או משפטי אם-אז (IF-THEN) גם מבני נתונים. מעבר למבני הנתונים הפשוטים כמספרים ומחרוזות, שפת פוסטסקריפט בנויה סביב מבנה נתונים חשוב ומרכזי בשפה - מילון ערכים (Dictionary). המילון מורכב מזוגות של מפתחות וערכים, כאשר הן כמפתח והן כערך יכול לשמש כל מבנה נתונים בשפה. בין היתר גם מבנה נתונים של מילון יכול להוות ערך של מפתח במילון אחר. בצורה זו ניתן לבנות מבני נתונים עשירים למדי.

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

מעבר למרכיבים התכנותיים בשפה, שפת פוסטסקריפט מכילה אובייקטים ופעולות גרפיות בדו-ממד. בעזרת פעולות אלה ניתן למקם על הדף המודפס עצמים וקטוריים (רבועים, קשתות, מסלולים, פוליגונים וכדומה) בגדלים שונים, טקסט בגופנים שונים, וגם תמונות דיגיטליות בפורמט של מפת סיביות (תמונות המורכבות מפיקסלים).

על מנת לאפשר הגדרות גרפיות שאינן תלויות במדפסת מסוימת, שפת פוסטסקריפט מאפשרת למתכנת להגדיר את הצורות הגרפיות במונחי מערכת צירים של המשתמש (User Coordinate System) כאשר פנימית, מפרש הפוסטסקריפט מחזיק במטריצת המרה המגדירה את היחס בין מערכת הצירים של המשתמש להתקן ההדפסה. מטריצה זו מכונה Current Transformation Matrix, או בקיצור CTM והיא מהווה חלק מהמצב הגרפי שאותו שומר מפרש הפוסטסקריפט.

על ידי פעולות על מטריצת ההמרה (CTM), ניתן לסובב, לשנות את הגודל ולעוות צורות שונות. למשל, הכפלת המטריצה במטריצת סיבוב יוצרת סיבוב של מערכת הצירים של המשתמש, והפעלת אופרטורים גרפיים תגרום הופעתם מסובבים על התקן הפלט (בדרך כלל על הדף המודפס).

מאפיינים אחרים של המצב הגרפי הם עובי הקווים, הפונט הנוכחי, הצבע הנוכחי, והאזור על הדף עליו ניתן לצייר (Clipping Path).

ראו גם עריכה

קישורים חיצוניים עריכה