Libwayne.

التحميل الان

Libwayne. الترتيب والملخص

الإعلانات

  • Rating:
  • رخصة:
  • LGPL
  • السعر:
  • FREE
  • اسم الناشر:
  • Wayne Hayes
  • موقع ويب الناشر:
  • http://www.cs.toronto.edu/~wayne/libwayne/

Libwayne. العلامات


Libwayne. وصف

Libwayne هي مكتبة من البيانات المجردة بشكل معقول والخوارزميات المكتوبة في C. Libwayne عبارة عن مكتبة من مواد البيانات والخوارزميات المجردة بشكل معقول مكتوبة في ج. الخوارزميات في Libwayne ليست بأي حال من الأحوال الأصلية. يتم أخذ الكثير منهم حرفيا من الكتب المدرسية على هياكل البيانات والخوارزميات، وأرجمتهم ببساطة إلى C. وهي تشمل إجراءات فعالة وصحيحة لقوائم الانتظار ذات الأولوية، والمحاكاة التي يحركها الأحداث، قوائم الانتظار، المداخن، الأشجار الثنائية، مجموعات من الأعداد الصحيحة، الرسوم البيانية ( يمكن أن تعمل روتينات CODE-EDGET)، وإجراءات Compinations، وروتين تكامل ODE، وحزمة إحصائيات بسيطة، ومكتبة مصفوفة-متجه. تتم المقارنات مع مؤشرات لمقارنة وظائف، مماثلة ل Qsort القياسية ANSI C القياسية. هذه المكتبة ليس من المفترض أن تكون كاملة؛ أكتب الروتينات التي أحتاجها، لكن رمز عالي الجودة فقط يذهب إلى Libwayne.One الذي يسألني الكثير من الأشخاص هو "لماذا لم تستخدم C ++؟" دون الذهاب إلى تعويذة طويلة، يكفي أن أقول ذلك، على الرغم من أنني لست خبير C ++ (في الواقع، فإن الأشياء الوحيدة التي لم أتعلم بها في التفاصيل الحميمة هي القوالب)، وأنا أعلم ما يكفي من C ++ لإدراك أنه ليس كل لغات البرمجة الحالية. في الواقع، بعد عدة سنوات من C ++ يجري حولها، بدأ بالفعل يتلاشى بطيئا في التاريخ، مع كون جافا خليفة --- وليس واحدة جيدة جدا، في ذلك. أي خطر السبر مثل 40-50 سنة Olds هناك ما زالوا يصرون على أن Fortran هي لغة جيدة بما فيه الكفاية لكل شيء، سأكون 30 شيء يصر على أنه، حتى يأتي شيء أفضل، C لا يزال لغة جيدة لجميع الأغراض التي تكتب فيها البيانات الثقيلة التحتية البرامج المكثفة. أعتقد أنه كان دينيس ريتشي الذي قال شيئا مثله، "C نادرا ما يكون أفضل لغة له مهمة معينة، لكنها غالبا ما تكون الثانية هي الأفضل"، فإن التضمين هو أنه من الأفضل معرفة لغة واحدة هي الأفضل لكل شيء، من لتعلم لغة جديدة لكل مهمة برمجة. (يمكن للمرء أن يقول نفس اللغة الإنجليزية.) لقد بدأت Libwayne عندما أدركت أنني كنت أتعاد باستمرار كتابة أجزاء صغيرة من التعليمات البرمجية التي فعلت أشياء مهمة يجب أن تكون في معيار C، ولكن ليس كذلك. على سبيل المثال، عدد المرات التي كتبتها رمز مثل هذا: إذا ((ص = malloc (n)) == null) / * أو بعض شرط الأخطاء القاتلة الأخرى * / {fprintf (stderr، "خطأ: SN"، err_msg ) الخروج (1)؛} لقد مرضت منه. علاوة على ذلك، غالبا ما أردت معرفة المزيد حول سبب فشل برنامجي. لذلك كتبت قاتلة. ها هي النموذج الأولي: الفراغ القاتل (Char * FMT، ...)؛ / * يولد فشل التأكيد * / يستخدم varargs حتى تتمكن من اجتيازها قائمة تعسفية من وسيطات الإخراج تماما مثل printf، ولكنها تنشئ فشل التأكيد بحيث إذا قمت بتشغيله تحت مصحح الأخطاء، فيمكنك إلقاء نظرة على البرنامج بشكل جيد يموت. اتضح أن الوظيفة الأولى فقط كتبت ل Libwayne، وقد تم وضعها في ملف يسمى "misc.c" الذي بدأته بما في ذلك في معظم الكود الذي كتبته. عضو آخر مبكر في المكتبة كان malloc، الذي يستدعي قاتلة إذا فشلت MALOC القياسية. بدأت "misc.c" في الحصول على كبيرة جدا، مع وحدات الماكرو ل MIN، ماكس، ABS، SQR، إلخ، لذلك قمت بإنشاء Misc.h misc.c في وحدة كائن. كان ذلك حوالي عام 1993.Bout في ذلك الوقت بدأت في تحقيق ذلك، على الأقل في ج، نحتاج إلى طريقة لتمرير "الأشياء" حولها بطريقة شفافة معقولة، لكننا في بعض الأحيان نريد معالجتها كعضات صحيحة. هذا يجعل بعض عرق أسنان الناس (مشمولي)، لذلك اخترعت نوع البيانات voint، وهو (خمنت ذلك) اتحاد (باطلة *) و (int). ثم بدأت إضافة خوارزميات أكثر تعقيدا إلى libwayne، كلما بحاجة إليها. تمت كتابة كل قطعة من Libwayne لأنني كنت بحاجة إليها، لكن الأشياء التي اتخذت فيها وقتا حذرا للقيام بعمل جيد في Libwayne. أي خوارزمية تحتاج إلى مقارنة الكائنات تحتاج إلى وظيفة مقارنة مثل تلك التي تستخدمها روتين QSORT قياسي ANSI.


Libwayne. برامج ذات صلة