בהלכות מצוות שופר של ראש השנה כותב הרמב"ם:
ייצוג החצוצרות.
עד כה נמצא רק תיעוד אחד שלהן, בתבליט המפורסם בשער טיטוס ברומא. על פי התבליט שעל שער טיטוס, שוחזרו במוזיאון למוזיקה בחיפה שתי חצוצרות הכסף. חצוצרות אלה היו שונות משתי החצוצרות המוטבעות במטבעות בר כוכבא, שהן קצרות ועבות כחצוצרות צבאיות.
מארני (סרט)
מארני (באנגלית: Marnie) הוא סרט קולנוע מסוגת מותחן פסיכולוגי בבימויו של אלפרד היצ'קוק. תסריט הסרט מבוסס על ספר בעל אותו שם של וינסטון גרהם. בסרט משחקים טיפי הדרן ושון קונרי בתפקידים ראשיים.
אד מקביין החל לכתוב את תסריט הסרט, אך במהלך הפקת הסרט הוא הוחלף על ידי ג'יי פטרסון אלן. פסקול הסרט הולחן על ידי ברנרד הרמן.
עלילה.
מרגרט "מארני" אדגר (טיפי הדרן) היא אישה אשר יש לה פחד וחוסר אמון בגברים, נרתעת ממגעם (פריג'ידית), מהצבע אדום ומסערות וברקים. בנוסף, היא סובלת מקלפטומניה. בתחילת הסרט אנו נחשפים ליחסים המורכבים בין אמה של מארני, ברניס לבינה. באחד ממקרי הגנבה שלה, אמה של מארני שואלת אותה מדוע יש לה כל כך הרבה כסף, והיא עדיין לבד. בתגובה שואלת אותה מארני למה היא לא אוהבת אותה.
מארק רוטלנד (שון קונרי), אלמן שבבעלותו חברת פרסום בפילדלפיה, קורבן הגנבה האחרונה של מארני מצליח לעלות על עקבותיה. וסוחט אותה להינשא לו כדי שלא ילשין עליה למשטרה (החוק בארצות הברית אוסר על בעל להעיד על אשתו, או על אישה להעיד על בעלה). טרם החתונה מארק נפגש עם ספק, שהוא אחד מלקוחותיו העיקריים ואשר בעצמו נפל קורבן לגנבה של מארני. מארק מספר לו שהוא מתחתן עם האישה שגנבה מהחברה שלו כסף. אומר לו שבכוונתו להביא לשיקומה ומזהיר אותו, שאם יסגיר אותה למשטרה, הוא יאבד אותו כלקוח. הספק עונה לו : "אני מבין שזה מה שנקרא "הגישה המודרנית", אבל מה יהיה כשאתה תיפול קורבן להתנהלות שלה?" הזוג יוצא לירח דבש על ספינה ובמהלכו מארני חשה דחייה מכל קשר גופני. מארק מכבד בתחילה את רצונה אך לאחר מכן אונס אותה. למחרת בבוקר היא מנסה להתאבד בבריכת השחייה של הספינה, אך מארק מציל אותה.
כשהם חוזרים לביתם, מארק מציג למארני לביאת מחמד שהוא מגדל ומספר לה, שהיא הייתה חיה טורפת בעבר, אולם הוא לימד אותה לאהוב ולבטוח בו. מארני מנסה לגנוב במהלך הלילה כסף מהכספת, אולם מארק ממתין לה שם ואומר לה שהיא רשאית לקחת את הכסף, שכן בתור אשתו, הכסף שלו שייך גם לה. אחייניתו של מארק שמתגוררת עמו, חשה שמשהו אינו כשורה בנישואיו החדשים. בין השאר היא מגלה אצלו ספר שעוסק במיניות של עבריינים. בפעם אחרת היא יוצאת לרכיבה עם מארני והסוס עליו היא רוכבת נפצע. האחיינית קוראת למישהו מהעובדים שיהרוג את הסוס ומבחינה בתגובתה הקשה של מארני לסיטואציה. בלילה של סערת גשמים מארני סובלת מהתקף חרדה, מארק מנחם אותה והשניים מבלים לראשונה את הלילה יחדיו.
למרות התנגדותה של מארני, הזוג הולך לבולטימור, מרילנד, לבקר את אמה. שם מארק מעמת אותה עם עברה, עוד כשעסקה בזנות (מה שעומד בניגוד לחזותה הסולידית). הוא מאלץ אותה לספר למארני את האמת והאם אומרת למארני שכאשר הייתה בת שש, אחד מלקוחותיה (מלח שיכור בגילומו של ברוס דרן) ניסה להרגיע אותה כשהיא נבהלה מרעמים, כשהוא מנשק ומלטף אותה. ברניס חשבה שהמלח מבצע בבתה מעשה מגונה, ולכן היא תקפה והרגה אותו באמצעות הטחת כד גדול במפרקת שלו. האם נאסרה בגין זאת וכשהשתחררה מהכלא ושבה לביתה גילתה שזו אינה זוכרת כלום מאותו לילה. עם זאת שפיכות הדמים הובילה לחוסר האמון של הילדה בגברים והפחד מהצבע האדום.
ברגע שמקור פחדיה מתגלה לה, מארני עוברת תיקון.
מחסנית קריאות
במדעי המחשב, מחסנית קריאות (באנגלית: call stack) היא מבנה נתונים מסוג מחסנית, המשמש לאחסון מידע אודות השגרות הפעילות של תוכנית מחשב. סוג זה של מחסנית נקרא גם execution stack (מחסנית ביצוע), control stack (מחסנית שליטה), run-time stack (מחסנית זמן ריצה) או machine stack (מחסנית מכונה), ובדרך כלל קוראים לה בקיצור פשוט "המחסנית" (the stack). אף על פי שתחזוקת מחסנית הקריאות חשובה לתפקודן התקין של מרבית התוכנות, בדרך כלל הפרטים שלה מוסתרים מהמתכנת והטיפול במחסנית מבוצע באופן אוטומטי בשפות תכנות עיליות.
מחסנית קריאות משרתת מספר מטרות קשורות, אבל הסיבה העיקרית לשימוש בה היא לצורך מעקב אחר הנקודה שאליה כל שגרה אמורה להחזיר את השליטה כאשר הביצוע שלה הסתיים. שגרה פעילה היא שגרה שנקראה אבל עדיין לא סיימה את הריצה שלה, שלאחריה השליטה אמורה להיות מועברת חזרה לנקודה שממנה נקראה השגרה. הפעלות כאלו של שגרות יכולות להיות מקוננות (קריאה לשגרה מתוך שגרה, כאשר קריאה רקורסיבית היא מקרה פרטי לכך), ולכן נעשה השימוש במבנה של מחסנית. לדוגמה, אם שגרה בשם codice_1 (צייר ריבוע) קוראת לשגרה codice_2 (צייר קו) מארבעה מקומות שונים, השגרה codice_2 אמורה לדעת לאיזו נקודה לחזור בכל פעם שהביצוע שלה מסתיים. על מנת לעשות זאת, הכתובת בזיכרון יחד עם הוראת הקריאה – "כתובת החזרה" (return address), מתווספת על גבי המחסנית עם כל קריאה.
בנוסף, רוב שיטות הקריאה הרשמיות משתמשות במחסנית לצורכי העברת פרמטרים בין הקוד הקורא לפונקציה הנקראת.
תיאור.
מאחר שמחסנית הקריאות בנויה כמחסנית, הקורא (מי שקרא לשגרה) דוחף (push) למחסנית את כתובת החזרה, והשגרה שנקראה, כאשר סיימה לרוץ, שולפת (pop) את כתובת החזרה מהמחסנית ומחזירה את השליטה לאותה כתובת. אם השגרה שנקראה קוראת לשגרה נוספת, היא תדחוף עוד כתובת חזרה על גבי מחסנית הקריאות, וכך הלאה - מידע מצטבר על המחסנית ומרוקן ממנה בהתאם למה שמכתיבה התוכנית. אם הכתיבות למחסנית מנצלות את כל שטח הזיכרון שהוקצה עבור מחסנית הקריאות, מתרחשת שגיאה שנקראת גלישת מחסנית (stack overflow), אשר בדרך כלל גורמת להתרסקות התוכנית. באנגלית, הוספת רשומה של שגרה למחסנית הקריאות לעיתים נקראת winding (ליפוף), ואילו הסרת רשומות נקראת unwinding.
בדרך כלל יש מחסנית קריאות אחת המשויכת לכל תוכנית רצה (או ליתר דיוק, לכל משימה (task) או תהליכון בתהליך), אך יכול להיות שמחסניות נוספות ייווצרו לצורך טיפול בסיגנלים או לריבוי משימות שיתופי. מכיוון שבהקשר זה בכל זאת תמיד יש רק מחסנית עיקרית אחת, ניתן לקרוא לה "המחסנית" (של ה-task).
בשפות תכנות עיליות, פרטי מחסנית הקריאות בדרך כלל מוסתרים מהמתכנת, אשר מקבל גישה רק לסט פונקציות מוגדרות מראש, ולא לזיכרון שעל המחסנית עצמה. זה נקרא אבסטרקציה. לעומת זאת, רוב שפות הסף דורשות מהמתכנת להיות מעורב בניהול המחסנית. פרטי המימוש של המחסנית בכל שפת תכנות תלויים בסוג המהדר, במערכת ההפעלה ובסט הפקודות הזמין.
שימושים.
מחסנית קריאות טיפוסית משמשת לאחסון כתובת חזרה, משתנים מקומיים ופרמטרים, אשר יחד מכונים "מסגרת קריאה" (call frame). בסביבות שונות, מחסנית הקריאות יכולה לשמש יותר או פחות פונקציות. כפי שצוין למעלה, השימוש העיקרי במחסנית הקריאות הוא לצורך:
כאשר שגרה נקראת, המקום (הכתובת) של ההוראה שממנה תמשיך הריצה לאחר סיום השגרה צריך להישמר היכנשהו. לשימוש במחסנית לצורך שמירת כתובת החזרה ישנם יתרונות חשובים על פני האלטרנטיבות. אחד היתרונות הוא בכך שלכל משימה (task) יש מחסנית משלה, וכך השגרה יכולה להיות מרובת כניסות (reentrant), כלומר ניתן להפעיל אותה בו זמנית מתוך משימות שונות שעושות דברים שונים. יתרון נוסף הוא שרקורסיה נתמכת באופן אוטומטי. כאשר פונקציה קוראת לעצמה רקורסיבית, יש לשמור את כתובת החזרה עבור כל הפעלה של הפונקציה, כך שמאוחר יותר ניתן יהיה להשתמש בכתובת החזרה כדי לחזור מתוך הקריאה לפונקציה. היכולת הזאת מתאפשרת אוטומטית בשימוש במחסנית.
מחסנית קריאות עשויה לשרת פונקציות נוספות, כתלות בסוג שפת התכנות, מערכת ההפעלה וסביבת המכונה. ביניהן:
לעיתים קרובות שגרות זקוקות לשטח בזיכרון לצורך אחסון הערכים של משתנים מקומיים – המשתנים אשר מוכרים רק במסגרת השגרה הפעילה ולא שומרים ערכים לאחר סיום הריצה של השגרה. בדרך כלל נוח להקצות שטח בזיכרון למטרה זו פשוט על ידי הזזת הקצה העליון של המחסנית על מנת לספק את השטח הנדרש. פעולה כזאת היא מהירה מאוד בהשוואה להקצאת זיכרון על גבי ה-heap. כל הפעלה נפרדת של שגרה מקבלת שטח נפרד משלה במחסנית עבור המשתנים המקומיים.
לעיתים קרובות שגרות דורשות שהקוד שקורא להן יספק ערכים לפרמטרים, ולעיתים קרובות השטח בזיכרון לצורך פרמטרים אלו מוקצה על גבי מחסנית הקריאות. בדרך כלל, אם ישנם רק כמה פרמטרים קטנים, יעשה שימוש באוגרי המעבד לצורך העברת הערכים, אבל אם מספר הפרמטרים גדול ואינו מאפשר לטפל בהם בצורה כזאת, יידרש מקום בזיכרון. מחסנית הקריאות פועלת היטב כמקום עבור פרמטרים אלו, בייחוד מאחר שכל קריאה לשגרה, שיכולה להכיל ערכים שונים עבור הפרמטרים, תקבל מקום נפרד עבור ערכים אלו על גבי מחסנית הקריאות.
אופרנדים (ראו: אופרטור) עבור פעולות אריתמטיות או לוגיות בדרך כלל מאוחסנים באוגרים ושם מבוצעות עליהם הפעולות. עם זאת, ישנם מקרים בהם האופרנדים נערמים לעומק בלתי מוגבל, ובמקרה כזה האוגרים לא יספיקו (מצב הנקרא register spilling). המחסנית שמשמשת לאחסון אופרנדים כאלו, בדומה למחסנית המשמשת לחישוב בכתיב פולני הפוך, נקראת מחסנית הערכות (evaluation stack), והיא עשויה לתפוס מקום במחסנית הקריאות.
בחלק משפות התכנות מונחות-העצמים (לדוגמה, ++C), בזמן קריאה למתודות, המצביע ל-codice_4 מאוחסן במחסנית הקריאות ביחד עם הפרמטרים לפונקציות. המצביע ל-codice_4 מצביע למופע האובייקט לו שייכת המתודה הנקראת.