الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل يمكن جعل مكتباتي الخاصة قياسية

بدأه aziz nor في 19 يوليو 2008 · 15 رد · 1,749 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم

سؤالي هو هل يمكن ان اجعل مكتباتي الخاصة قياسية اي يمكن ترجمتها

باي مترجم لكي تصبح مستقلة عن المترجم المستخدم

ولكم مني الشكر الجزيل

اللهم صلي علي المصطفي محمد

صلي الله عليه وسلم

#2

عليكم السلام ورحمة الله

,.,.,.,.,.,.,.,.,.,.,.,.,.,,

اولاً (آسفة) سؤالك مش دقيق(على الأقل بالنسبة لي). ولكن:

إنشاء مكتبة مستقلة قابلة للربط والإمتداد شيء عادي وممكن.. كلمة قياسية Standard لا نقررها نحن بل صنّاع القرار البرمجي وصنّاع المجمعات Compilers العالمية..هم من يقرروا ذلك..فمثلاً هم من جعل المكتبة القياسية الحالية المستعملة مع ++C قياسية وهم من جعل LST قياسية وليس نحن.

,,.,.,.,.,.,.,.,.,.,.,.,.,.

تمنياتي لك بالتوفيق

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#3

آسفة..ناسية إضافة زغيرة:

ANSI هم من يقرروا ذلك ايضاً, لأنهم هم من وضعوا المعايير القياسية للغة C/++C

American National Standards Institute - ANSI

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#4

أستخدم لغة السى/السى++ القياسية فقط فى كتابة الكود الخاص بك

دون استخدام أى دوال أو ماكرو تعتمد على الكومبيلر المستخدم

فقط لغة السى القياسية

وسيتم ترجمة البرنامج على اى كومبيلر

#5

واعلم انه لابد من استخدام API التي يوفرها النظام لانتاج شئ مفيد ,, بالضبط كما يحدث في مكتبة السي القياسية ,, سواء كان ذلك تحت ويندوز او لينكس او اي نظام اخر .

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#6

آ. هلأ فاهمة سؤال الأخ الكريم بعد ردود الأخوة..الإجابة بكل بساطة الآن هو يمكنك ذلك ولكن بشرط تكون المكتبات مكتوبة كاملة قياسياً ضمن المعايير القياسية للغة..يعني كتابة المكتبة احترافياً.

,.,.,.,.,.,.,.,.,.,.,.,.

تمنياتي لكم

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#7

السلام عليكم مرة اخري

نشكر كل الاخوة علي هده الردود القيمة

والاخ

GamingMasteR

يعني اعطاني جزء من الجواب الدي كنت ابحث عنه

والاخت

رغد

اعطتني جزء اخر من الجواب

وبارك الله فيكم جميعا

اللهم صلي علي المصطفي محمد

صلي الله عليه وسلم

#8

يمكنك أن تتعامل مع أحد المترجمات القياسيه ، وهكذا ستضمن أن برنامجك قياسي 100% ،

مثلا المترجم G++ ، والذي يأتي مع حزمه Mingw .

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#9

مكتبة قياسية تعني انها ستعمل علي جميع المترجمات بدون مشاكل

اي انها غير خاصة بمترجم معين

تم تعديل هذه المشاركة بواسطة garo في 22 يوليو 2008 في 22:20

( _ /)

(='.'=)

(")-(")

#10
اقتباس
The standard C++ library is a collection of functions, constants, classes, objects and templates that extends the C++ language providing basic functionality to perform several tasks, like classes to interact with the operating system, data containers, manipulators to operate with them and algorithms commonly needed.

ما أريد ايصاله هو ان لكل OS نسخة من المكتبات القياسية خاصة به ولن تعمل على OS آخر .

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#11

الجواب هو لا.

أنت تستعمل مصطلح "المكتبة القياسية" و لكن حسب كلامك أنت تريد "مكتبة ذات محمولية" تعمل على أكثر من منصة أو أكثر من نظام تشغيل. أليس كذلك؟

كلمة قياسي تعني معتمد من طرف منظمة المعاير العالمية، و ليس الأمريكية كما قالت الأخت رغد. و هذا عنوانها:

http://www.iso.org/iso/fr/home.htm

لكل لغة برمجة مكتبة خاصة بها، اللغات التي تعطي لها إيزو معاير تصبح مكتبتها التي إعتمدتها إيزو قياسية. البرامج التي يتقيد عند كتابتها بتلك المعايير تكون محمولة، و كذلك المكتبات مثل Qt, SDL, GTK+ .... إلخ.

ليلة سعيدة.

#12

السلام عليكم

الأخت رغد قالت

اقتباس
إنشاء مكتبة مستقلة قابلة للربط والإمتداد شيء عادي وممكن.. كلمة قياسية Standard لا نقررها نحن بل صنّاع القرار البرمجي وصنّاع المجمعات Compilers العالمية..هم من يقرروا ذلك..فمثلاً هم من جعل المكتبة القياسية الحالية المستعملة مع ++C قياسية وهم من جعل LST قياسية وليس نحن.
اقتباس
آسفة..ناسية إضافة زغيرة:

ANSI هم من يقرروا ذلك ايضاً, لأنهم هم من وضعوا المعايير القياسية للغة C/++C

American National Standards Institute - ANSI

كلام غير صحيح تماما ، فصناع compiler يلتزمون بمعايير iso/iec ، وليس الأمر متروك لك شركة ، ومن لا يلتزم بها لا يطلق على منتجه أنه c++ compiler

المكان الذي تتم مناقشة فيه لغة c++ في هذا الموقع

http://www.open-std.org/JTC1/SC22/WG21/

ولغة C في هذا الرابط

http://www.open-std.org/JTC1/SC22/WG14/

الأخت نورا مجدي

اقتباس
أستخدم لغة السى/السى++ القياسية فقط فى كتابة الكود الخاص بك

دون استخدام أى دوال أو ماكرو تعتمد على الكومبيلر المستخدم

فقط لغة السى القياسية

وسيتم ترجمة البرنامج على اى كومبيلر

كلام خطأ ليس له معنى ، فلا يوجد دالة أو ماكرو تعتمد على نوع compiler ، هذا أمر راجع لمن أنشأ library ، كل ما يفعله compiler هو تحويل source code إلى assembly language .

ولا يمكن عمل compilation لأي برنامج على أي compiler حتى لو كان مكتوب بالدوال القياسية ، حيث أن هناك فرع في البرمجة اسمه porting ، هو من يهتم بهذه الجزئية ، فأنت تحدد ما إذا لو كان cpu مختلف أو اسم المكتبة مختلف أو اسم الدالة مختلف ، و تحدد ما إذا كان compiler الآخر له بعض الخصوصيات أو النظام الذي انتقلت إليه له بعض الخصوصيات ، وأثناء عملية التهيئة والتي تتم قبل compilation ، يتم تعديل source code ليتناسب مع البيئة الجديدة.

الأخ GamingMasteR

اقتباس
واعلم انه لابد من استخدام API التي يوفرها النظام لانتاج شئ مفيد ,, بالضبط كما يحدث في مكتبة السي القياسية ,, سواء كان ذلك تحت ويندوز او لينكس او اي نظام اخر .

كلامك صحيح ، ولكن يجب التنويه على شيء، أنه لا بفضل أن تتعامل مباشرة مع system call في عالم UNIX,LINUX ، وأعتقد نفس الحال مع ويندوز ، حيث أنه من الأفضل التعامل مع مكتبة C/C++ القياسية ، لأسباب فنية يطول شرحها ، مفادها ، حتى لا تحدث أخطاء فادحة خصوصا من غير المختصين

اقتباس
ما أريد ايصاله هو ان لكل OS نسخة من المكتبات القياسية خاصة به ولن تعمل على OS آخر .

كلامك هذا غير دقيق ، فالبرنامج الذي تكتبه على لينوكس مثلا ،ممكن أن تتم عمل compile له على نظام يونكس آخر مهما كان و cpu آخر ، بل ويمكن أيضا أن يعمل على الويندوز ، حيث وحسب ما أعلمه أن ويندوز تدعم posix .

System Engineer

Red Hat Certified Engineer

Red Hat Certificate Number

805010381752078

#13
اقتباس
كلامك هذا غير دقيق ، فالبرنامج الذي تكتبه على لينوكس مثلا ،ممكن أن تتم عمل compile له على نظام يونكس آخر مهما كان و cpu آخر ، بل ويمكن أيضا أن يعمل على الويندوز ، حيث وحسب ما أعلمه أن ويندوز تدعم posix .

أفهم كلامي قبل ان تقول دقيق او غير دقيق ,, انا قلت تعمل ولم اقل تترجم وكنت اتكلم عن المكتبة وليس البرنامج !!

اقتباس
كلامك صحيح ، ولكن يجب التنويه على شيء، أنه لا بفضل أن تتعامل مباشرة مع system call في عالم UNIX,LINUX ، وأعتقد نفس الحال مع ويندوز ، حيث أنه من الأفضل التعامل مع مكتبة C/C++ القياسية ، لأسباب فنية يطول شرحها ، مفادها ، حتى لا تحدث أخطاء فادحة خصوصا من غير المختصين

لن أتكلم عن انظمة لينكس كي لا أفتي ,, لكن المكتبة القياسية تحت ويندوز ما الذي يمكن ان توفره لي ؟؟ عشر ما تتيحه لي API !

تم تعديل هذه المشاركة بواسطة GamingMasteR في 23 يوليو 2008 في 05:55

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#14

السلام عليكم ,,

أخي العزيز يجب أن توضح سؤالك أكثر,

إن كنت تقصد أن تقوم بكتابة مكتبة يمكن ترجمتها على أي مترجم فهذا ممكن :)

أما إن كان قصدك أن تقوم بكتابة مكتبة و بعد ترجمتها أن تقوم بربط و استخدام هذه المكتبة على عدة منصات مختلفة فهذا غير ممكن,

اطلع على مشاركتي هنا لأخذ فكرة عن مفهوم الـ Portability في ++C :

/index.ph...st&p=818944

بعد ترجمة المكتبة فإن الكود الناتج سيكون مخصصاً لمعالج معين,

المسألة الثانية, هي نظام التشغيل فكل نظام تشغيل له ABI خاص به, إضافة إلى API خاص به طبعاً :)

تحياتي ,,

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 23 يوليو 2008 في 07:17

#15
JVM كتب:
كلمة قياسي تعني معتمد من طرف منظمة المعاير العالمية، و ليس الأمريكية كما قالت الأخت رغد. و هذا عنوانها:
برق كتب:
السلام عليكم

الأخت رغد قالت

كلام غير صحيح تماما ، فصناع compiler يلتزمون بمعايير iso/iec ، وليس الأمر متروك لك شركة ، ومن لا يلتزم بها لا يطلق على منتجه أنه c++ compiler

عليكم السلام

,.,.,.,.,.,.,.

آسفة..سوء فهم.انا مش مخطئة وانتوا كمان مبدئياً مش مخطئين إلا لو بتنكروا مجهود المنظمة ANSI في معْيرة اللغات بصفة عامة من ضمنها لغتنا ++C!!..النسخة العالمية اسمها

ANSI/ISO C++

كنت ناسية المنظمة ISO اللي تعاونت مع المنظمة الأمريكية ANSI في معْيرة لغتنا ++C..لبديهياتها فقط..والعادة هيك بتكون معروفة بـ

ANSI C++

يعني تعتبروا الست خانم ANSI عملت الطبخة(المعايير) والست خانم ISO ذاقت الطبخة وعجبتها واعتمدتها عالمياً

.,,.,.,.,.,.,.,.

with regards

:happy:

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#16

آسفة كتير..معلش وقتي ضيق اليومين هدول..من الرابط التالي بتقدروا تشروا نسخة الوثائق لـ

,.,.,.,.,.,.,.,.,.,.

Best Wishes

:happy:

تم تعديل هذه المشاركة بواسطة رغـــــــــد في 23 يوليو 2008 في 21:55 — السبب: يا فالحة (وثائق مش وثائقية)

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…