Pawn (שפת תכנות)

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

Pawn
פרדיגמות תכנות פרוצדורלי
תאריך השקה 1999 עריכת הנתון בוויקינתונים
מפתח חברת CompuPhase
גרסה אחרונה 4.0.5749 (18 октября 2017) עריכת הנתון בוויקינתונים
טיפוסיות חסרת טיפוסים
הושפעה על ידי Small-C, C
רישיון רישיון zlib עריכת הנתון בוויקינתונים
סיומת pwn, inc, p, amx עריכת הנתון בוויקינתונים
www.compuphase.com
לעריכה בוויקינתונים שמשמש מקור לחלק מהמידע בתבנית

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

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

מקור השם

עריכה

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

מבנה ותכונות

עריכה

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

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

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

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

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

#include <a_samp>
main()
{
    print("Hello World");
}

קישורים חיצוניים

עריכה
  מדיה וקבצים בנושא Pawn בוויקישיתוף