עבור לתוכן

באיזה שפות כתובות מערכות הפעלה ותוכנות יציבות בעלות שם??

Featured Replies

פורסם

באיזה שפות כתובות מערכות הפעלה ותוכנות יציבות בעלות שם??

אני מעוניין לדעת באיזה שפת תכנות כתובות התוכנות : windows vista, windows XP, Linux, firefox, openoffice, office 2003, Zone Alarm

פורסם

חלק מהתוכנות בC חלק מהתוכנות בC++, אני מאמין שהVISTA כתובה בC#(חלק מהליבה אולי באסמבלי), יש הרבה תוכנות שכתובות בJAVA(כמו azaurus). תערבב הרבה ביחד ויצא משהו טעים.

פורסם

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

פורסם

UNIX כתובה ברובה ב- C

פורסם

אני מאמין שהVISTA כתובה בC#(חלק מהליבה אולי באסמבלי)

ואתה כנראה טועה... C# היא לא שפה מספיק low-level בשביל לכתוב בה מערכת הפעלה.

Windows כתובה רובה ב-C.

כל מתכנת יודע שתוכנה שכתובה לגמרי באסמבלי פועלת בשיא המהירות וגם לוקחת כמות זיכרון מזערית לעומת תוכנה שכתובה ב-C

אל תגזים.

C היא שפה די קרובה לשפת מכונה, ודי יעילה בפני עצמה. בניגוד לשפות OOP, ובמיוחד בניגוד לשפות Managed (כגון C# ו-Java), תכנית ב-C מחזיקה מעט מאוד זכרון Overhead מעבר לכמה שנצרך באסמבלי, ככה שתכנית באסמבלי לא באמת תתפוס הרבה פחות זכרון.

פורסם

בדרך כלל כותבים רק קטעים מהקוד באסמבלי כשרוצים שיהיו יעילים במיוחד. בדרך כלל עדיף לתת לקומפיילר של הC לחשוב מה יותר יעיל והוא יעשה את זה יותר טוב.

אני מאמין שרוב התוכנות שציינת כתובות ב c ו ++C שזאת שפה יותר עילית אבל בכל זאת יעילה למדי ואפשר להכניס בה בקלות קטעים ב c טהור.

UNIX כתובה ב C באמת וwindows זה בטח שילוב של C ו ++C

שפות כמו #C ו JAVA בדרך כלל לא משמשות לכתיבת דברים כמו מערכות הפעלה ושאר תוכנות שצריכות לעבוד קרוב לחומרה כי הם פשוט יותר מדי high level

פורסם

^^ צודק

ביותר פשטות הדברים שחשוב שהם יהיו מהירים כתובים בשפות דור שני (אולי חלק אפילו בדור ראשון שזה שפת מכונה)

ושאר הדברים כתובים בשפות של הדור השלישי (אני לא יודע וזה גם לא משנה איזה שפה בדיוק)

ד"א

למי שלא יודע

דור ראשון שפת מכונה/בינארית (10010011101)

דור שני שפת סף (MOV AX BX....)

דור שלישי שפות פרוצדוראליות( (readlin(XYZ)

דור רביעי (מכולל ישומיים)

ככל שאתה כותב בשפה יותר פשוטה (כמה שיותר קרובה לשפה בינארית) ככה התוכנה עובדת יותר מהר

ןלכן כמעט ולא עם בכלל משתמשים בשפות כמו c# במערכות הפעלה (C# דור רביעי)

פורסם

גם micro chips למיניהם מתוכנתים באסמבלי בשביל שיהיו יותר יעלים?

פורסם

לאו דווקא באסמבלי. יש שפות יותר עיליות שמאפשרות לתכנת אותם בצורה יעילה למדי.

פורסם

כמו מה למשל?

תודה :)

פורסם
  • מחבר

למה לא יכולים פשוט לעשות מהדרים יעילים??

פורסם

למה לא יכולים פשוט לעשות מהדרים יעילים??

עושים. עם הקומפיילרים של היום עדיף בדרך כלל להשאיר לקומפיילר את ההחלטות איך לתרגם לשפת מכונה מאשר לכתוב קוד באסמבלי.

אבל, במקרים נדירים כשיש משהו מדוייק מאוד שאתה רוצה לעשות בצורה מאוד מסויימת אתה תרצה להכניס קוד באסמבלי.

כמו מה למשל?

אני יודע שלפעמים כותבים בC או בכל מיני שפות אחרות שמאוד דומות לC אבל מכילות כמה מבנים שונים. אני לא זוכר בדיוק שמות אבל חברה שלי מתעסקת בזה והיא הראתה לי פעם איך נראה קוד כזה.

פורסם

תודה :D

פורסם

כל מתכנת יודע שתוכנה שכתובה לגמרי באסמבלי פועלת בשיא המהירות וגם לוקחת כמות זיכרון מזערית לעומת תוכנה שכתובה ב-C

זהו ש... כל מתכנת יודע שמה שכתבת הוא לא נכון...

נכון, תיאורטית, כל מה שאפשר לכתוב ב-C אפשר לכתוב באסמבלי (כי לזה זה הרי מתורגם בסוף, או למקביל של זה - שפת מכונה) ולעומת זאת ניתן לבצע אופטימיזציות באסמבלי שלא ניתן לבצע ב-C. אבל...

1) C מאוד קרובה לאסמבלי בגמישות של מה שניתן לעשות, מה גם שניתן לשלב קטעי אסמבלי באזורים "קריטיים".

2) כתיבה ב-C היא הרבה יותר נוחה וברורה למתכנת - וזה אומר, הרבה פחות סיכוי לטעויות בתכנון - יעילות גדולה יותר.

מאותה סיבה, אגב, לפעמים תוכנה שכתובה ב-C++ יעילה הרבה יותר ממקבילה ב-C, רק בגלל שכתיבה ב-C הרבה יותר קשה "לעקוב" ולהביא אותה למצב יעיל.

כל זה, תלוי בסדר הגודל והמורכבות של התוכנה. ככל שהתוכנה מורכבת יותר, כך יהיה יעיל יותר לעבוד בכלים מתקדמים, ולוותר על "יעילות תיאורטית" לטובת יעילות בפועל...

פורסם

חשוב להעמיד את היעילות מול מדדים אחרים ומטרות אחרות של התוכנה.

כמה אתה מוכן לשלם על יעילות (נניח בביצועים וזכרון)? אם אפשר להגיע ל-50% יעילות ב-10% מהמחיר, זה מספיק טוב?

למה בכלל יעילות חשובה לך? ובאיזה חלק? אם אתה כותב משחק שחמט, האם זה חשוב אם מה שמצייר את הלוח יהיה מהיר?

באפליקציה שמנהלת קשרי לקוחות, האם זה משנה אם שאילתא תרוץ 10 מילישניות או 50 מילישניות? במיוחד כאשר הרשת איטית פי 5?

ישנם אפליקציות שבהן יעילות (ביצועים, זכרון, גודל קוד וכו') חשובות מאוד: רוב מערכות הפעלה לדוגמא.

ישנן אפליקציות בהן הביצועים לא חשובים, אבל הנכונות של הקוד חשובה - לדוגמא בנקים.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים