שלום לקוראים, בפוסט הזה אתן הסבר קצר על שפות התכנות השונות ואחלק אותן לקטגוריות.
במחשבים הראשונים, התוכניות נכתבו בשפת המכונה (0-1) ופקודה נראתה כך: 100100111 - פשוט רצף של אחד או אפס. גם כיום כשקיימות שפות תכנות מורכבות, הכל בסופו של דבר מתורגם לשפת המכונה.
שפת המכונה
ראשית יש להבין כי המחשב בבסיסו מסוגל להבין להבין רק "אחדים" או "אפסים". כמו נורה שנדלקת או נכבית.במחשבים הראשונים, התוכניות נכתבו בשפת המכונה (0-1) ופקודה נראתה כך: 100100111 - פשוט רצף של אחד או אפס. גם כיום כשקיימות שפות תכנות מורכבות, הכל בסופו של דבר מתורגם לשפת המכונה.
שפות הסף
שפות הסף או Asm (קיצור של Assembly ) הינה קבוצה של שפות הקרובות מאוד לשפת המכונה, אך בכל זאת לוקחות את התכנות שלב אחד קדימה. בASM כבר כותבים באנגלית מקוצרת, וכל שורה בתוכנית מורכבת בד"כ מ-3 איברים. בשפה זו משתמשים בזיכרון הכונן הקשיח, וישירות באוגרי זיכרון מהיר (AX BX DX וכו'...). גודל האוגרים תלוי במספר הביטים של המחשב: 32, 64 וכדומה.
לדוגמה השורה: MOV AX, BX
מעבירה את התוכן של האוגר BX לאוגר AX. הפקודה MOV הינה קיצור של המילה האנגלית move. וכך ע"י פקודות קצרות ניתן לכתוב תוכניות בשפה היותר דומה לאנגלית לעומת שפת המכונה, ובכך להקל על המתכנת.
אבל אמרנו קודם שהמחשב מבין רק 1 או 0, אז איך הוא יבין את שפות הסף? זה פשוט מאוד. קוד הASM עובר תהליך של פיענוך ישיר לשפת מכונה בתוכנה שנקראת Assembler. לאחר התרגום, המחשב יוכל להבין את התוכנית. דוגמת קוד בASM:
השפות העליות
השפות העיליות הינה קבוצה גדולה של שפות תכנות שקרובות מאוד לאנגלית - ורחוקות יחסית משפת המכונה.
את קבוצת השפות העליות אחלק לשתי תת קדגוריות:
שפות עליות "מתקמפלות"
בקבוצה זו נמצאות שפות כמו: C, C++, Fortran, Basic ועוד. שפות אלו מכיוון שמתמשות בתחביר מורכב יחסית, הן צריכות לעבור תהליך שנקרא "הידור" או "קומפילציה". תהליך זה מבוצע ע"י המהדר או "הקומפיילר" והוא מתרגם את השפה לשפת סף או לשפת מכונה. קומפיילר מפורסם ל-C הוא Gcc.
השפות העליות מקילות מאוד על המתכנת ונותנות לו תחביר נוח לכתיבת תוכניות מורכבות.
קטע הקוד הבא בשפת ++C, מדפיס את הספרה 8:
int number = 6;
number = number + 2;
cout << number;
תהליך יצירת התוכנית בשפות העליות המתקמפלות, מורכב מעוד שלבים פרט לשלב ההידור, אך לא אסביר אותם בפוסט הזה. מה שחשוב להבין הוא שהתוכנית עוברת את התהליך פעם אחת, ואז ניתן להריץ אותה (מקובץ ההרצה שהמהדר יצר). דוגמת קוד בC++:
שפות עליות "לא מתקמפלות" - שפות סקריפט (תסריט)
בקבוצה זו נמצאות שפות כמו: PHP, Perl, Python, Bash ועוד. שפות אילו מצטיינות בתחביר מפותח ולחקלן מטרות מאוד ספציפיות, וחלקן מטרות כלליות ביותר.
ההבדל המשמעותי ביותר בין שפות אלו לשפות המתקמפלות הוא תהליך ההידור. בשפות האלה תהליך ההידור חסר, ופיענוך הקוד מתבצע On -fly - תוך כדי הרצה. תוכנה שנקראת "מפרש" (לרוב נכתב בשפה מתקמפלת) מפרשת את הסקריפט (שפת תסריט) והקוד מתורגם לשפת מכונה שורה אחר שורה, כמו תסריט. בגלל זה נוח מאוד לתכנת בשפות סקריפט. אין צורך לעבור הידור בכל פעם שמבצעים שינוי קטן בקוד, אלא ישר ניתן להריצו.
כמו שאמרתי, לשפות התסריט תפקידים שונים ומגוונים. PHP למשל נוסדה במיוחד כדי לתפעל שרתי HTTP (אתרי אינטרנט) .
כמו שאמרתי, לשפות התסריט תפקידים שונים ומגוונים. PHP למשל נוסדה במיוחד כדי לתפעל שרתי HTTP (אתרי אינטרנט) .
דוגמת קוד PHP:
את שפות התכנות ניתן היה לחלק גם לפי פרדיגמות תכנות שונות (ולא לפי החלקוה שנעשתה כאן), אך את זה כבר לא אכתוב בפוסט הזה, והייתי שמח להפנות אתכם לוויקיפדיה: פרדיגמות תכנות
והנה עוד קישורים שיסבירו כל פרדיגמה:
פרוצדורלי (שפת C)
מונחה עצמים (C++)
פונקציונאלי (LISP)
והנה עוד קישורים שיסבירו כל פרדיגמה:
פרוצדורלי (שפת C)
מונחה עצמים (C++)
פונקציונאלי (LISP)



