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