Pawn (שפת תכנות)

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
Pawn
פרדיגמות תכנות פרוצדורלי
מפתח חברת CompuPhase
גרסה אחרונה 3.3.4127 (3 ביולי 2009)
טיפוסיות חסרת טיפוסים
הושפעה על ידי Small-C, C
אתר www.compuphase.com

Pawn (בעבר Small C) היא שפת תכנות המפותחת כקוד פתוח ומיועדת לשימוש כשפת תסריט להתאמה אישית של תוכניות. זו שפה חסרת טיפוסים שפותחה על בסיס שפת Small-C, ולה תחביר דומה לשל שפת C.

קוד בשפה מהודר ל P-Code, בדומה לשפת Java, ומורץ על ידי מכונה וירטואלית. ניתן להשתמש גם במפרש לצורך כך.

שפה זו היא השפה העיקרית, יחד עם C++‎ בשרתי Grand Theft Auto: San Andreas, ומשמשת בשרתי משחקים רבי-משתתפים נוספים כגון Counter-Strike.

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

השפה פותחה על בסיס שפת Small C, שבפני עצמה הייתה דומה מאוד לשפת C. עם זאת, השינויים שבוצעו בשפה, ובהם הסרת הטיפוסים והפיכת המצביעים להתייחסויות (references), היו מהותיים כל כך שלא היה טעם להשאיר את האות C בשם השפה, ולכן החליטו לקרוא לה פשוט Small. שכיחותה של המילה Small באינטרנט הפריעה לחפש מידע אודותיה, ולכן הוחלט לשנות את שמה, ולקרוא לה Pawn.

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

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

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

השפה מאפשרת מספר תחבירים שונים, וכל מתכנת המשתמש בשפה יכול לבחור ביניהם תחביר לפי טעמו.

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

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

הקוד המשתמש להדפיס "Hello World" בשפת הPAWN ובשפת C דומה מאוד:

#include <console>
main()
    printf "Hello World"

או‏[1]:

#include <console>
main()
{
    printf("Hello World");
}

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

הערות שוליים[עריכת קוד מקור | עריכה]

  1. ^ על פי המדריך לשפה, עמוד 4