ליבי

libayne היא ספריה של datatypes מופשטים באופן סביר שנכתב ב C.
הורד עכשיו

ליבי דירוג וסיכום

פרסומת

  • Rating:
  • רישיון:
  • LGPL
  • מחיר:
  • FREE
  • שם המפרסם:
  • Wayne Hayes
  • אתר האינטרנט של המוציא לאור:
  • http://www.cs.toronto.edu/~wayne/libwayne/

ליבי תגים


ליבי תיאור

Libayne הוא ספרייה של datatypes ואלגוריתמים מופשטים סבירים שנכתבו ב C. Libayne הוא ספרייה של datatypes מופשטת סביר ואלגוריתמים שנכתבו ב C.The אלגוריתמים בליבווגן הם לא מקוריים. רבים מהם נלקחים מילה במילה ספרי לימוד על מבני נתונים ואלגוריתמים, ואני פשוט מתורגם אותם ל- C. הם כוללים שגרות יעילות ותכונות לתורי עדיפות, סימולציות מונעות אירוע, תורים, ערימות, עצים בינאריים, קבוצות של מספרים שלמים, גרפים ( סוג הצומת קצה), כמה שגרות combinatorics, שגרת האינטגרציה של אודה, חבילת סטטיסטיקה פשוטה, וספרייה של מטריקס-וקטור.מניו של השגרה (ערימה, ערימה, תור, בינטרי) יכולה לעבוד עם חפצים שרירותיים, לא רק שלמים. השוואות נעשות עם מצביעים לשוואת פונקציות, בדומה ל- ANSI C סטנדרטי Qsort. ספריה זו אינה אמורה להיות מלאה; אני כותב את השגרה כפי שאני צריך אותם, אבל רק בקוד באיכות גבוהה נכנס ליברין.און דבר שאנשים רבים שואלים אותי הוא 'למה לא השתמשת C + +' "בלי להיכנס ל tirade ארוך, מספיק כדי לומר זה, למרות שאני לא מומחה C + + (למעשה, הדברים היחידים שלא למדתי בפירוט אינטימי הוא תבניות), אני יודע מספיק C + + להבין כי זה לא להיות- all, סוף כל שפות תכנות. למעשה, אחרי כמה שנים של C + + להיות סביב, זה כבר מתחיל דוהה איטי להיסטוריה, עם ג 'אווה להיות יורשו --- ולא טוב מאוד, ב it.at את הסיכון של נשמע כמו 40-50 שנה Olds שם בחוץ שעדיין מתעקשים כי Fortran היא שפה טובה מספיק לכל דבר, אני אהיה 30-משהו מתעקש כי, עד שמשהו טוב יותר מגיע, ג 'הוא עדיין שפה טובה, אשר כדי לכתוב נתונים כבדים, - תוכניות אינטנסיביות. אני מאמין שזה היה דניס ריצ'י שאמר משהו כמו, "C הוא רק לעתים רחוקות את השפה הטובה ביותר עבור משימה מסוימת, אבל זה לעתים קרובות השני הטוב ביותר," המשמעות להיות כי עדיף ללמוד שפה אחת כי הוא השני הטוב ביותר עבור הכל, מאשר ללמוד שפה חדשה עבור כל משימה תכנות. (אפשר לומר את אותו הדבר באנגלית). התחלתי ליברין כשהבנתי שאני כל הזמן כותב מחדש חתיכות קוד קטנות שעשו דברים חשובים שצריכים להיות בתחום ה- C, אבל לא. לדוגמה, כמה פעמים יש לך קוד כתוב כזה: אם (p = malloc (n) == null) / * או כמה מצב שגיאה קטלני אחר * / {fprintf (stderr, "שגיאה: SN", ERR_MSG ); יציאה (1);} נמאס לי. יתר על כן, לעתים קרובות רציתי לדעת יותר מדוע התוכנית שלי נכשלה. אז כתבתי קטלני. הנה אב טיפוס שלה: חלל קטלני (char * fmt, ...); / * מייצר כשל טענה * / הוא משתמש varargs כך שתוכל להעביר אותו רשימה שרירותית של טיעונים הפלט בדיוק כמו printf, אבל זה מייצר כישלון טענה, כך שאם אתה מפעיל אותו תחת הבאגים, אתה יכול להסתכל על התוכנית יפה כמו זה מת. התברר להיות רק את הפונקציה הראשונה שכתבתי לליבווגן, והוא הוכנס לקובץ שנקרא "MISC.C" אשר התחלתי כולל ברוב הקוד שכתבתי. עוד חבר מוקדם של הספרייה היה malloc, אשר קורא קטלני אם סטנדרטי malloc נכשל. התחיל להיות די גדול, עם פקודות מאקרו במשך דקות, מקס, ABS, SQR, וכו ', אז יצרתי misc.h ומוריד Misc.c לתוך מודול אובייקט. זה היה בערך 1993.About באותו זמן התחלתי להבין כי, לפחות ב C, אנחנו צריכים דרך להעביר "חפצים" סביב בצורה שקופה סבירה, אבל לפעמים אנחנו רוצים לטפל מצביעים כמו מספרים שלמים. זה עושה כמה שיניים של אנשים להזיע (כלול שלי), אז המצאתי את Voint Datatype, וזה (אתה ניחשתם) איגוד של (ריק *) ו (Int). ואז התחלתי להוסיף אלגוריתמים מורכבים יותר לליבוגי, בכל פעם שאני זקוק להם. כל אחת וכל חתיכת ליבווי נכתבה כי אני זקוקה לזה, אבל רק דברים שאני זוחל זמן זהיר להיכנס ליברין. כל אלגוריתם שצריך להשוות אובייקטים צריך פונקציה השוואה כמו אחד בשימוש על ידי ansi רגיל QSort שגרתית.


ליבי תוכנה קשורה

ליברו

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

142

הורד

עָרוּץ

ערוץ הוא מתקן גנרי / פשוט עם המטרה של קבלת הודעה עובר ואירוע שיגור. ...

204

הורד

cache4j

cache4j הוא מטמון עבור אובייקטים Java עם ממשק API פשוט ויישום מהיר. ...

333

הורד