דצמ' 01 2009
תכנות ++C: המצרכים
זהו הפוסט הראשון בבלוג. על הבלוג ניתן לקרוא בדף האודות. כפי שכתוב שם, אני מתעתד לעסוק בנושאים שונים הקשורים לתכנות בכל הרמות. על פי רוב אני מתכוון להדגים את הדברים בשפת ++C. כד לתכנת אנו זקוקים לכלי עבודה. כלי עבודה אלו הם תוכנות פיתוח או סביבות פיתוח מלאות (IDE).
רגע, מה זה סביבת פיתוח? מה עושים איתה?
נכון. מצטער. נחזור כמה צעדים לאחור:
מה זו תוכנית מחשב?
תוכנית מחשב היא אוסף הוראות למעבד על מנת לבצע פעולות מסויימות. מעבד המחשב, עליו ארחיב בעתיד, הוא "המח" של המחשב. הוא היחידה החומרתית שמבצעת את ההוראות ומחשבת חישובים.
המעבד מבין הוראות מאוד מדוייקות ומאוד קצרות. הדרישה הפשוטה c = a + b שיכולה להופיע בתוכנת ++C סטנדרטית, מתפרקת להוראות מאוד בסיסיות דוגמת "קח את התוכן של a", "קח את התוכן של b", "חבר את מה שיש בa עם מה שיש בb" ואז "קח את תוצאת החיבור ושים בc".
ההוראות הללו מאוגדות בקובץ שהוא התוכנה. בסביבת חלונות, לקבצים כאלו יש סיומת exe. יש להעיר שהדברים הם בדרך כלל מסובכים ומורכבים יותר, ואני מנסה לשמור על פשטות כדי שהדברים יהיו ברורים.
שפת ++C היא שפה עילית. שפות עיליות נותנות לנו רמה מסויימת של הפשטה ואינן דורשות מהמתכנת לתת הוראות כל כך מדוייקות למעבד. הדבר דומה מעט למתן הוראות לילד. נניח שאנחנו רוצים שהילד ילך לישון. אם הילד ממש צעיר, אנחנו נגיד לו "הכנס לחדר האמבטיה", "הורד את החולצה", "הורד את המכנסיים", "סבן את הבטן" וכך הלאה. לילד יותר גדול נגיד "תתפשט", או "תסתבן". לילד עוד יותר גדול נאמר פשוט: "קדימה, מקלחת ולישון".
המעבד כאמור, לא מסוגל להבין הוראות של שפה עילית ויש לתרגם עבורו לשפה שהוא מבין. לתהליך הזה קוראים "קוֹמְפִילַצְיַה" בלעז או "הִידוּר" בעברית. לתוכנה שמהדרת קוראים "קומפיילר" או "מהדר". השם העברי לא נחל הצלחה רבה ולא נכנס ללבבות המתכנתים ולפיהם, ואנו נשארנו עם הקומפיילר שלנו בעזרתו אנו מקמפלים במקום להדר.
אז כדי ליצור תוכנה, אנחנו צריכים קומפיילר.
איפה כותבים?
התוכנה שאנו כותבים בשפה עילית נשמרת בקבצים שנקראים "קבצי מקור" והתוכנה בשפה עילית שכתובה בהם נקראת "קוד מקור". קובץ מקור הוא קובץ טקסט פשוט עם סיומת מאפיינת שנעסוק בה בפוסט הבא. קבצי טקסט הם קבצים שמכילים אותיות, מספרים ותווים בלבד, ללא עיצוב וללא תוספות: טקסט טהור. קבצים כאלו היו מקובלים מאוד בעבר והיום אין להם שימוש רב למשתמש הממוצע במחשב, ולכן זו נקודה שיש להתעכב עליה: לא כותבים תוכנה במעבד תמלילים כגון word. מעבד תמלילים יוצר קבצים שמכילים עוד המון מידע פרט לטקסט עצמו. הקומפיילר יודע לקרוא אך ורק קבצי טקסט ולכן אין טעם לכתוב בשום מקום אחר.
ישנן תוכנות רבות בהן ניתן לכתוב קבצי טקסט. המפורסמת ביותר היא פנקס הרשימות של חלונות (notepad). בעיקרון, ניתן לתכנת בעזרת פנקס הרשימות וזה אפילו יעבוד. זה ממש לא מה שאנחנו הולכים לעשות. סביבת פיתוח כוללת עורך טקסט משוכלל שעוזר לנו לכתוב תוכנה הרבה יותר בקלות. עורך כזה יודע לצבוע מילים שמורות (נגיע למילים שמורות, לא הפעם) כדי להקל על קריאת הקוד, לנחש ולהשלים מילים ולקצר עוד הרבה תהליכים. קשה מאוד לכתוב תוכניות גדולות ומורכבות ללא עורך טקסט ראוי.
המדביר
מתכנתים הם אנשים. אנשים טועים ומתכנתים טועים המון. לטעיות שלנו קוראים "באגים" על שם חרקים שיכולים, על אף גודלם הקטן, לחולל נזקים גדולים. בסביבת פיתוח נמצא כלים כדי לאתר באגים כך שנוכל לתקן אותם. לכלים הללו קוראים דִיבַאגֶר, ואי אפשר לפתח תוכנה בלעדיו.
אז מה היה לנו?
אנחנו כותבים את התוכנה בקבצי מקור בעזרת עורך הטקסט שאותם מקמפלים אותה בעזרת הקומפיילר. הקומפיילר יוצר קובץ הרצה, כלומר קובץ תוכנה שיכול לרוץ (לפעול) על המחשב. בעזרת הדיבאגר נמצא שגיאות בתוכנה שלנו ונתקן אותן.
ישנם עוד כלי עזר קטנים וגדולים, אבל שלושת אלה, הקומפיילר, עורך הטקסט והדיבאגר הם כלי העבודה העיקריים והם מספיקים בשלב ההתחלה (ואף מעבר לו).
מהיכן משיגים סביבת פיתוח?
ישנה רשימה אינסופית של כלי פיתוח שונים ומשונים, חדשים וישנים. לכל סביבת פיתוח אוהדים שרופים שישכנעו אתכם באותות ובמופתים שהסביבה שבה הם עובדים היא הטובה ביותר. האמת היא שכמו בכל דבר, לכל סביבה כזאת ישנם יתרונות וחסרונות. רק התנסות בכמה סביבות יכולה לעזור לכל אחד לבחור את הסביבה המועדפת עליו.
בבלוג שלי אני אדגים בעזרת eclipse, אבל אני לא יכול להתעלם מסביבת הפיתןח הנהדרת של מייקרוסופט, הVisual Studio. Visual Studio מורכבת מכמה תתי תוכנות לפי שפת הפיתוח או השימוש. לדוגמה: ++Visual C או Visual Basic ועוד.
לVisual Studio ישנה גרסאות התנסות חופשיות ומוגבלות של תתי התוכניות הללו. התוכנה שנרצה להוריד היא Visual C++ Express. ההגבלות על גרסה זו לא נוגעות לסוג הדברים שנתנסה בהם בבלוג זה. ניתן להוריד אותה מאתר מייקרוסופט, כאן.
את סביבת הפיתוח של eclipse עבור ++C ניתן להוריד מכאן. אפשרות נוספת היא להוריד את eclipse המלאה ולהוסיף לה את ערכת הCDT שמוסיפה לeclipse יכולת לעבוד ב++C. כך או כך, eclipse יורדת ללא קובץ התקנה, אלא יש לפרוס את הקובץ הדחוס לספריה כלשהי, לדוגמה, לספריית "Program Files" בחלונות. כדי להריץ את eclipse, יש להריץ את הקובץ eclipse.exe מתוך הספריה. מומלץ ליצור קיצור דרך לתוכנה במקום נח כגון תפריט "התחל" או על שולחן העבודה.
אם הורדתם את הגרסה המלאה של eclipse ואתם רוצים להוסיף את ערכת CDT, יש לבחור מתוך תפריט Help את ב"Install New Software" ומתקינים את CDT. בניגוד למה שכתבתי קודם, הסביבה הזאת לא כוללת קומפיילר ודיבאגר, אבל יודעת לעבוד עם כאלו שמותקנים על המחשב. זה דורש קצת מאמץ חד פעמי אבל זה עובד. בלינוקס, יש להתקין ++g שהיא הקומפיילר של לינוקס עבור ++C, ואת gdb שהוא הדיבאגר. בחלונות, ניתן להוריד את MinWG מכאן, ולהתקין. במהלך ההתקנה, יפתח גם חלון כזה:
יש לבחור את MinGW base tool, g++ compiler, MinGW make. ההתקנה נעשית מהרשת ויש לחכות שהכל יירד ויותקן.

[...] בפוסט הקודם בסדרה הסברנו מה זו סביבת פיתוח, הורדנו את eclipse והתקנו אותה. עכשיו נרצה לראות כיצד כותבים תוכננה ב++C בעזרת eclipse. [...]
תודה
זה סידר לי את הראש לגביי נקודת התחלה טוב בשביל CPP
http://sites.google.com/site/devcppheb/Dev-cpp-Hebrew
Translation to Hebrew of the graphic user interface of the excellent open source Dev-C++ ide
קבצי טקסט לממשק משתמש בעברית לסביבת הפיתוח החינמית ובקוד פתוח לפיתוח בשפת סי וסי פלס פלס. הורדה חופשית
(After you installed the Dev-C++ ide. Download the Hebrew language and tips files for Dev-C++ and extract it to the Dev-Cpp "Lang" directory (You should get: Hebrew.lng, Hebrew.tips
לדני:
תודה על התוספת.
מי שאוהב את Dev-CPP ומסתדר איתה, מוזמן כמובן לנסות. אישית – ניסיתי ולא התחברתי.