שפת התכנות C

לעיתים קרובות מהנדסים / מפתחים שואלים אותי  – "בשביל מה לי ללמוד שפת C כיום בעידן של C++ וJava   ?"
אני מקבל הערות כגון: "שפת C היא שפת תכנות ישנה, כבר לא משתמשים בה, שפת C  היא Obsolete" וכדומה.

בכתבה זו אתייחס בקצרה לנושאים הבאים:

  • האם גם כיום בעידן של שפות עיליות אשר תומכות בפיתוח ׁ( OOP ( Object Oriented Programmingׁ ׁכגון C++ או C#.Net קיים עדיין שימוש בשפת C?
  • לאילו מטרות משתמשים בשפה זו?
  • האם כדאי ללמוד שפת c?

אז בשביל מה באמת יש צורך בשפת C?

אז תחילה קצת שיעור בהיסטוריה, שפת C הומצאה לקראת סוף שנות ה 60  (69-73) מתוך שפה שנקראת דאז שפת B  בחברת Labs  Bell ע"י Dennis Ritchie כחלק אינטגרלי מפיתוח מערכת ההפעלה UNIX.

שפת C נתמכת כיום ע"י כלל מערכות ההפעלה ל PC  וכן מערכות Embedded  כגון Windows Linux  ועוד.

השימוש העיקרי בשפת C כיום מתבטא בפיתוח ובדיקות מערכות משובצות מחשב (Embedded Systems), בין אם הן מערכות Embedded  המבוססות מערכת הפעלה כגון RTOS Embedded Linux Vxworks Psos ThreadX או פיתוח ללא מערכות הפעלה –Bare Board BareMetal הכוונה לפיתוח ישירות על החומרה .

הפיתוח בשפת C  מאוד יעיל, מאפשר גישה ישירה לחומרה (CPU Registersׁׂ), דוגמא טובה לכך הינה מערכת הפעלה Linux , כידוע הגרעין של מערכת הפעלה הנ"ל ה –  Linux Kernel מבוסס כולו על פיתוח בשפת C,  כמובן שזה כולל את כל ה –  Networking Stack ,Kernel Device Drivers , File Systems  ועוד.

יתרון נוסף של שפת C  מתבטא במהירות שלה, לאחר שמקמפלים  קובץ מקור בשפת C  נוצר קובץ Object הכולל סדרת פקודות מעבד ( CPU opcodes)  המותאמות למעבד המיועד ומאפשרות גישה ישירה לכל חלקי החומרה.

בשנים האחרונות נכנס C++ כמתחרה לא קטן ל C , האמת שכל קוד בשפת C נתמך ע"י מהדרים של C++, שפת  ++C בעצם מבוססת על שפת C. בשנים האחרונות חברות הייטק מסודרות מעדיפות להשתמש ב ++C לצורך אפליקציות  High-level ויוצרות שכבת HAL  (Hardware Abstraction Layer) שמתחתיו הגישה לחומרה (Device Drivers) ממומשים בשפת C, מניסיוני רוב הסטארטאפים, מפאת הזמן, עדיין מעדיפים Quick and dirty.
למד עוד על קורס C ועל קורס C++.

קהל היעד לשפת C

היות ושפה זאת מיועדת כיום במיוחד ל Low Level Programming, אני ממליץ להלן:

  • מהנדסים / הנדסאים בתחום החומרה והאלקטרוניקה – בראש ובראשונה אשר יצטרכו בנוסף לתכנון ובניית הכרטיס גם להשמיש אותו, הכוונה ל  Boot loading Booting Development Testing  וכו'.
  • מהנדסים / הנדסאים בתחום התוכנה לרבות בוגרים במדעי מחשב – אשר מיועדים לעבוד במערכות משובצות מחשב (Embedded Systems) עם או בלי מערכות הפעלה .
  • אקדמאים מתחומי ההנדסה המעוניינים לבצע הסבה מקצועית.
  • מנהלי / מפתחי בדיקות – פיתוח כלים אוטומטיים לבדיקות מערכות Embedded .

מי אנחנו?

חברת Real Time Group הינה מרכז פיתוח המספק פתרונות פיתוח /מיקור-חוץ / הדרכה והשמה בתחומי ה -Real Time & Embedded למגוון חברות  לרבות חברות הייטק, ביו-טק ובנקאים. נשמח לעזור, תרגישו נוח לפנות אלינו.

לפרטים על קורס C for RT & Embedded Systems

אולי יעניין אותך גם: