שיחה:C (שפת תכנות)
מתוך ויקיפדיה, האנציקלופדיה החופשית
הפרק: מושגים בשפת C דורש שיפור מהותי. רוב המושגים אינם מושגים בשפת C אלה מושגים כלליים בתכנות, חלקם גם זה לא (למשל זבל, שהוא מושג בתחום האשפה ושמירת הסביבה). מה כדאי לעשות? למחוק את כל הסעיף? להעביר אותו למקום אחר ולעשות שיפוצים? אבינעם 22:04, 10 מרץ 2005 (UTC)
- אני חולק עלייך - כל המושגים אינם מושגים בשפת C אלא מושגים כלליים בתכנות. העניין הוא שלא כל מושג כללי בתכנות מופיע גם בשפת C (תכנות מונחה עצמים, למשל) ולכן טוב לראות איזה מושגים כלליים כן שייכים לשפת C, ואיך הם באים לידי ביטוי בה (למשל, איך נכתבת מחרוזת). אולי צריך לעשות קצת יותר ספסיפיקציה למושגים (מה הסינטקס של פונקציה, וכו') אבל אין שום סיבה למחוק או להעביר משהו. כמובן שערך של "מושגים כלליים בתכנות" יתקבל בברכה. אם תהיה בו חזרה על מושגים, לא נורא, זה לא כאילו ערכי ההיסטוריה אינם חופפים (או שעדיף שלא יחפפו). "זבל" הוא מושג מקובל בתכנות. להגיד שזה מושג בתחום האשפה ושמירת איכות הסביבה ולכן זה לא מושג בתכנות זה כמו לומר שחוג זה מושג מתחום המתנ"סים ולכן הוא לא צריך להיות בערך שעוסק במתמטיקה. גדי אלכסנדרוביץ' 06:16, 11 מרץ 2005 (UTC)
- מתוך הסכמה עם גישתו של גדי שיניתי את שם הסעיף ל"מושגים בתכנות ומימושם בשפת C" וערכתי אותו. דוד שי 13:30, 11 מרץ 2005 (UTC)
- אינני מסכים עם גדי אלכסנדרוביץ'. יש הבדל מהותי בין חוג שהוא מונח ידוע ומוכר ומופיע במילון האקדמיה (ולא רק בענייני מתנ"סים), ובין "זבל" שהוא מינוח נפוץ בז'רגון של מתכנתים, אך לא ראוי להיות מונח אנציקלופדי. שיניתי את המושג לאיתחול משתנה שנראה לי ראוי יותר. אם טעיתי - אפשר לשחזר... :-) אבינעם 23:12, 12 מרץ 2005 (UTC)
- במקרה הזה אני נוטה להסכים אתך, אך אל תשכח ש- Garbage Collection הוא מושג חשוב במדעי המחשב. דוד שי 23:14, 12 מרץ 2005 (UTC)
- אני בהחלט לא מסכים. מדובר במושג שיש לו אותה חשיבות כמו "מצביע" או "ערימה", שגם הם שמות שלא הומצאו בצורה יעודית אלא מושאלים ממקור אחר. לי נראה שסתם יש לך בעיה עם המילה "זבל" (שהיא תיאור מדוייק של הערך הלא מאותחל שהמשתנה מכיל). אני לא בקיא מספיק בקומפיילרים של סי כדי לדעת האם השכתוב שלך בסדר: אני לא מכיר קומפיילר שנותן ערך התחלתי כלשהו למשתנים (וחמור יותר - עד כמה שידוע לי, ערך התחלתי למשתנים אינו חלק מהתקן של שפת סי ולכן מתכנת שרוצה לכתוב קוד פורטבילי לא יכול "לבנות" על קומפיילר ספציפי שיתן ערך התחלתי). אגב, מהם הקריטריונים שלך לפיהם מונח "ראוי" להיות אנציקלופדי? תזכור שאנחנו בויקיפדיה. גדי אלכסנדרוביץ' 05:10, 13 מרץ 2005 (UTC)
- בהקשר התכנותי, "זבל" הוא ביטוי סלנג לתיאור משתנה שלא אותחל. המילים "מצביע" ו"ערימה" הן חלק מהשפה התקנית. הבדל זה מצדיק את גישתו של אבינעם - אנחנו כותבים אנציקלופדיה, ולא סלנגופדיה. דוד שי 06:08, 13 מרץ 2005 (UTC)
- די תמוה לנסות ולעשות הפרדה מלאכותית שכזו בין "שפה תקנית" של תכנות ו"סלנג". הרי בעצמך ציינת ש-Garbage collection הוא ביטוי תקני. אולי גם נציע להמנע מלכתוב Junk DNA כי זה "סלנג"? או "דואר זבל"? המטרה העיקרית של אנציקלופדיה היא לספק לאנשים מידע על מושגים. אם מישהו שומע על "זבל" בתכנות ולא מצליח להבין מה זה כי האנציקלופדיה לא יורדת לרמה של התעסקות בביטויים כאלה, הרי שנכשלנו. גדי אלכסנדרוביץ' 08:05, 13 מרץ 2005 (UTC)
- לא ברור לי על מה יוצא הקצף. אבינעם הותיר בגוף הערך הסבר למלה "זבל" בהקשרה התכנותי, ורק הבהיר שאין זה הביטוי התקני, ושיש ביטוי תקני "משתנה לא מאותחל". המילה "זבל" אינה מילה גסה, ואין איסור על השימוש בה, ולכן מוצאים אותה גם בביטוי התקני Garbage collection. ההפרדה בין סלנג לשפה תקנית אינה מלאכותית, ויש לה חשיבות. ללא הפרדה זו ייווצרו משפטים כמו "יש לי הסבר חבל על הזמן לעניין זה, אבל לא נעסוק בו כאן כי חבל על הזמן". ניתן להרחיב בנושא בערך [[סלנג], כאן מיצינו אותו, לטעמי. דוד שי 10:29, 13 מרץ 2005 (UTC)
- די תמוה לנסות ולעשות הפרדה מלאכותית שכזו בין "שפה תקנית" של תכנות ו"סלנג". הרי בעצמך ציינת ש-Garbage collection הוא ביטוי תקני. אולי גם נציע להמנע מלכתוב Junk DNA כי זה "סלנג"? או "דואר זבל"? המטרה העיקרית של אנציקלופדיה היא לספק לאנשים מידע על מושגים. אם מישהו שומע על "זבל" בתכנות ולא מצליח להבין מה זה כי האנציקלופדיה לא יורדת לרמה של התעסקות בביטויים כאלה, הרי שנכשלנו. גדי אלכסנדרוביץ' 08:05, 13 מרץ 2005 (UTC)
- בהקשר התכנותי, "זבל" הוא ביטוי סלנג לתיאור משתנה שלא אותחל. המילים "מצביע" ו"ערימה" הן חלק מהשפה התקנית. הבדל זה מצדיק את גישתו של אבינעם - אנחנו כותבים אנציקלופדיה, ולא סלנגופדיה. דוד שי 06:08, 13 מרץ 2005 (UTC)
- אינני מסכים עם גדי אלכסנדרוביץ'. יש הבדל מהותי בין חוג שהוא מונח ידוע ומוכר ומופיע במילון האקדמיה (ולא רק בענייני מתנ"סים), ובין "זבל" שהוא מינוח נפוץ בז'רגון של מתכנתים, אך לא ראוי להיות מונח אנציקלופדי. שיניתי את המושג לאיתחול משתנה שנראה לי ראוי יותר. אם טעיתי - אפשר לשחזר... :-) אבינעם 23:12, 12 מרץ 2005 (UTC)
- מתוך הסכמה עם גישתו של גדי שיניתי את שם הסעיף ל"מושגים בתכנות ומימושם בשפת C" וערכתי אותו. דוד שי 13:30, 11 מרץ 2005 (UTC)
שלום לכם,
לסיום הדיון שנערך כאן, נראה לי שדוד ייצג את עמדתי בצורה הטובה ביותר, ולכן אין לי מה להוסיף לוויכוח עצמו. שתי הערות שנותרו באוויר:
- קומפיילר GCC הידוע והמוכר מאפס את המשתנים כשמקמפלים במוד debug, (עם דגל g-) ונותן ערכי זבל במוד רגיל (כפי שהוסיף טרול רפאים בערך). שימו לב שגם אני משתמש במילה זבל (ואפילו לא הסרתי אותה מן הערך). לא כתבתי שזה תיקני או פורטבילי או טוב - זה אפילו רע מאוד, אבל זו המציאות.
- כפי שדוד העיר יש מושג של Garbage Collection, ויש לו אפילו ערך איסוף זבל (תכנות), והזבל שם שונה מן הזבל כאן בתכלית, כך שעדיף לא לערבב זבל בזבל. שבוע טוב! אבינעם 22:29, 19 מרץ 2005 (UTC)
- יש כמובן קשר בין שני סוגי הזבלים צריך את אוסף הזבל בשביל להפוך את התוכן של התא לזבל מבחינת המשמעות שלו, אחרת מישהו עלול להתייחס אליו. טרול רפאים 22:36, 19 מרץ 2005 (UTC)
- לא מדוייק: הזבל באיסוף זבל (תכנות) הוא אובייקט המוקצה באופן דינמי, שאין אליו אף הצבעה - הערכים שם יכולים להיות ערכים טובים או לא. אוסף הזבל חייב לשחרר את האיזורים הללו, אחרת תהיה זליגת זיכרון.
לעומת זאת, כאן כשמדברים על ערכי זבל מדובר על חוסר איתחול. המשתנים לא חייבים להיות מוקצים באופן דינמי. לילה טוב. אבינעם 22:49, 19 מרץ 2005 (UTC)
- ראשית, תודה, לא הכרתי את התכונה הזו של gcc (אם כי יותר מעניין אותי אם קיים קומפיילר שמאתחל משתנים "על דעת עצמו"). שנית, עדיף גם לא לערבב ערמה בערמה (כשמדברים על הערמה שממנה לוקחים זיכרון בהקצאה דינמית אל מול מבנה הנתונים) אבל דווקא כדי לא לבלבל רצוי ששני המושגים יוסברו בפירוט כדי שההבדל יהיה ברור. שלישית, אני מסכים עם השכתוב שעשית (אחרת אולי הייתה פורצת כאן מלחמת עריכה), ועיקר הקצף שלי יצא על האמירה (העוקצנית?) שלך ש"זבל" הוא מושג ששייך לתחום איכות הסביבה ולכן אינו מושג בתכנות. גדי אלכסנדרוביץ' 05:16, 20 מרץ 2005 (UTC)
- תיקון טעות שלי: כתבתי את מה שזכרתי, אולם בדקתי שוב, ומסתבר שההתנהגות מעט שונה: GCC מאפס משתנים סטטיים, ולא מאתחל משתנים אוטומטיים. (ללא תלות במוד הקומפילציה). משתנה שלא מוכרז כסטטי, מקבל באיתחול ערך זבל. לגבי האמירה שלי - כנראה נסחפתי קצת בלהט הכתיבה. אני מקווה שההדורים יושרו. אבינעם 07:28, 20 מרץ 2005 (UTC)
- אין ספק ש-VC++ עושה את ההתנהגות הזאת, לגבי gcc אני לא יודע. טרול רפאים 13:51, 20 מרץ 2005 (UTC)
- תיקון טעות שלי: כתבתי את מה שזכרתי, אולם בדקתי שוב, ומסתבר שההתנהגות מעט שונה: GCC מאפס משתנים סטטיים, ולא מאתחל משתנים אוטומטיים. (ללא תלות במוד הקומפילציה). משתנה שלא מוכרז כסטטי, מקבל באיתחול ערך זבל. לגבי האמירה שלי - כנראה נסחפתי קצת בלהט הכתיבה. אני מקווה שההדורים יושרו. אבינעם 07:28, 20 מרץ 2005 (UTC)
[עריכה] העברית במסמך
יישור העברית בחלקו האחרון של המסמך שגוי, ולעתים אף מונע קריאה תקינה. אין לי את הידע הדרוש בכדי לסדר זאת, ולכן אני מצביע בפניכם על הבעיה.

