שפת מחשב
מראה
שפת מחשב היא שפה שבאמצעותה האדם נותן הנחיות פעולה למחשב. לכל שפת מחשב יש אוצר מילים משלה, בדומה למאפיין של השפה הטבעית. אך בניגוד לשפות טבעיות, לשפות מחשב יש לרוב מבנה נוקשה ומוגדרת בהן משמעות יחידה לכל ביטוי.
בשימוש הנפוץ במושג "שפת מחשב", לעיתים הכוונה היא לשפת תכנות או לשפת מכונה. במשמעות הרחבה יותר, מושג זה כולל בנוסף לשפות תכנות, גם שפות כגון HTML, XML או CSS, שאינן בגדר שפות תכנות, אף שהן שפות בעלות אוצר מילים המשמשות למתן הנחיות למחשב. ההבדל הוא שבשפת תכנות יש לוגיקה שבדרך כלל מתבטאת בקיומן של פקודות לבקרת זרימה, כגון פקודת if, או כלים אחרים ליצירת לוגיקה. כלים ליצירת לוגיקה אינם קיימים בשפת תגיות (markup language) כגון HTML ו-XML.
סוגים של שפות מחשב
[עריכת קוד מקור | עריכה]ישנם מספר סוגים מובחנים או "משפחות" של שפות מחשב, לפי מטרותיהן:
- שפות מכונה (machine languages): שפת מחשב בסיסית ביותר אשר אליה מותמרות בסופו של דבר, כל שפות המחשב האחרות לאחר הרצה של הקוד שלהן בשכבה נתונה.
- שפות סף (assembly): שפת תכנות (ראו בהמשך) הקרובה ביותר לשפת מכונה.
- שפות תפעול (operating languages): שפות המשמשות לתפעל ממחשב בממשק שורת פקודה, דרך קונסולת הפקודות של מערכת ההפעלה הנתונה (אם המערכת כוללת ממשק משתמש גרפי הרי שניתן להשתמש בשפה זו גם דרך "מדמה מסוף" – terminal emulator).
- שפות תכנות (programming languages): כל שפת תכנות שאיננה מוגדרת כ"שפת סף". עם שפה זו מגדירים לרוב את ההתנהגות של תוכנה ובפרט של פרטי מבנה שלה (ראו בהמשך "שפות סימון ממשק").
- שפות תשאול (querying languages): שפה המשמשת להגיש שאילתאות (בקשות מידע) מבסיס נתונים. אם לבסיס הנתונים המידע, ככלל הוא ישיב למשתמש את המידע כ"תשובה חיובית" לשאילתא.
- שפות ביטויים רגולריים (Regex languages) שפות המשמשות ליצירת תבניות חיפוש (search pattern) המורכבות מביטויים רגולריים ותווי מטא. מטרת תבניות אלה היא להתאים (match) לסטרים מסוים של מידע (אוסף כללי של תווים). ניתן להשתמש בתבנית חיפוש באופן מלא או חלקי (במקרה של שימוש חלקי, נאחזר רק חלק מתוך ההתאמה, אבל רק בהתאם להתאמה המדויקת, זה נעשה למטרת נוחות).
- שפות ייצוג אובייקטים (data serialization languages): שפות כמו JSON או YAML המשמשות לייצג מידע (לרוב בזוגות של תכונה-ערך). מידע מאוחזר לעיתים בשפות אלה לאחר שנוצר אוטומטית בהתאם לשאילתא שהוגשה אל בסיס הנתונים של תוכנה מסוימת.
- שפות סימון ממשק (markup languages): שפות המשמשות לפיתוח קווי המתאר של ממשק ("סימון") חלקים אלה. דוגמאות לכך הן השפות HTML ו-שפת Wiki.
- שפות עיצוב ממשק (stylesheet languages): שפות המשמשות לתת עיצוב גרפי לממשק – שאינו תמונה. דוגמה לכך היא שפת CSS.
- שפות תיבנות (theming languages): מעין שילוב בין שפת סימון ממשק (markup) ושפת תכנות המשמשת ליצירת תבניות כלליות של חלקים ברורים (כגון סוגי עמודים או סוגים של דפי אינטרנט באתר אינטרנט).
- שפות סימון רכיבי מסמך (markdown languages): שפות כגון השפה Markdown המשמשת לתבנת מסמך המיועד לקריאה ואינטראקציה מינימלית (לרוב מדובר על קובצי חוברת לתוכנות מסוימות).