INTERCAL – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
כרוז (שיחה | תרומות)
אין תקציר עריכה
כרוז (שיחה | תרומות)
אין תקציר עריכה
שורה 12:
המדריך של INTERCAL נותן שמות לא רגילים לכל תווי ה-[[ASCII]] שלא אלפאנומריים (היוצא דופן הוא ה[[אמפרסנד]]): גרש יחיד וגרשיים הם "ניצוץ" ו-"אוזני ארנב" בהתאמה. אופרטור ההצבה, שמיוצג בשפות תכנות אחרות בסימן שווה ("חצי רשת"), מיוצג ב-INTERCAL ע"י חץ שמצביע לשמאל, ->, שנקרא "מקבל" והוא נוצר מחיבור של "זוית" ו"תולעת".
 
הביצוע המקורי של השפה השתמש בכרטיסים מחוררים ומערך התווים [[EBCDIC]]. כדי ש-INTERCAL יוכל לרוץ על מחשבים שמשתמשים ב[[ASCII]], היה צריך לעשות תחליפים ל-2 תווים: ¢ הוחלף ב-$ בשביל אופרטור הערבוב, "מתאר את עליית המחיר של התוכנות ביחס לחומרות", וכן ∀ הוחלף ב-? לייצוג פעולת [[XOR]] יונארית, בשביל "לבטא בצורה נכונה את התגובה של האדם הממוצע כשהוא רואה בפעם הראשונה פעולת [[XOR]]".
הביצוע המקורי של השפה השתמש בכרטיסים מחוררים ומערך התווים [[EBCDIC]].
 
אף על פי הסירבול של השפה, INTERCAL היא בכל זאת [[מכונת טיורינג|שלמה טיורינג]]: אם יש מספיק זיכרון, INTERCAL יכולה לפתור כל בעיה ש[[מכונת טיורינג]] יכולה לפתור. אבל רוב היישומים של INTERCAL עושים זאת לאט מאוד: כמה תכניות שמבצעות את [[הנפה של ארטוסתנס]] עד 65535 נבדקו על מחשב Sun SPARCStation-1. התוכנית שנכתבה ב[[שפת C]] רצה בפחות מחצי שנייה, אותה התוכנית ב-INTERCAL רצה ביותר מ-17 שעות.