بسم الله الرحمن الرحيم
السلام عليكم
سؤالي هو هل يمكن ان اجعل مكتباتي الخاصة قياسية اي يمكن ترجمتها
باي مترجم لكي تصبح مستقلة عن المترجم المستخدم
ولكم مني الشكر الجزيل
بسم الله الرحمن الرحيم
السلام عليكم
سؤالي هو هل يمكن ان اجعل مكتباتي الخاصة قياسية اي يمكن ترجمتها
باي مترجم لكي تصبح مستقلة عن المترجم المستخدم
ولكم مني الشكر الجزيل
اللهم صلي علي المصطفي محمد
صلي الله عليه وسلم
عليكم السلام ورحمة الله
,.,.,.,.,.,.,.,.,.,.,.,.,.,,
اولاً (آسفة) سؤالك مش دقيق(على الأقل بالنسبة لي). ولكن:
إنشاء مكتبة مستقلة قابلة للربط والإمتداد شيء عادي وممكن.. كلمة قياسية Standard لا نقررها نحن بل صنّاع القرار البرمجي وصنّاع المجمعات Compilers العالمية..هم من يقرروا ذلك..فمثلاً هم من جعل المكتبة القياسية الحالية المستعملة مع ++C قياسية وهم من جعل LST قياسية وليس نحن.
,,.,.,.,.,.,.,.,.,.,.,.,.,.
تمنياتي لك بالتوفيق
[وسط]
♥ Countess ♥

♥
[/وسط]
آسفة..ناسية إضافة زغيرة:
ANSI هم من يقرروا ذلك ايضاً, لأنهم هم من وضعوا المعايير القياسية للغة C/++C
[وسط]
♥ Countess ♥

♥
[/وسط]
أستخدم لغة السى/السى++ القياسية فقط فى كتابة الكود الخاص بك
دون استخدام أى دوال أو ماكرو تعتمد على الكومبيلر المستخدم
فقط لغة السى القياسية
وسيتم ترجمة البرنامج على اى كومبيلر
واعلم انه لابد من استخدام API التي يوفرها النظام لانتاج شئ مفيد ,, بالضبط كما يحدث في مكتبة السي القياسية ,, سواء كان ذلك تحت ويندوز او لينكس او اي نظام اخر .
mov eax, dword ptr ds:[0xffdf0308]
jmp dword ptr [eax+0xfc]
آ. هلأ فاهمة سؤال الأخ الكريم بعد ردود الأخوة..الإجابة بكل بساطة الآن هو يمكنك ذلك ولكن بشرط تكون المكتبات مكتوبة كاملة قياسياً ضمن المعايير القياسية للغة..يعني كتابة المكتبة احترافياً.
,.,.,.,.,.,.,.,.,.,.,.,.
تمنياتي لكم
[وسط]
♥ Countess ♥

♥
[/وسط]
السلام عليكم مرة اخري
نشكر كل الاخوة علي هده الردود القيمة
والاخ
GamingMasteR
يعني اعطاني جزء من الجواب الدي كنت ابحث عنه
والاخت
رغد
اعطتني جزء اخر من الجواب
وبارك الله فيكم جميعا
اللهم صلي علي المصطفي محمد
صلي الله عليه وسلم
يمكنك أن تتعامل مع أحد المترجمات القياسيه ، وهكذا ستضمن أن برنامجك قياسي 100% ،
مثلا المترجم G++ ، والذي يأتي مع حزمه Mingw .
http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة
https://moalfat.com للكتب الالكترونية والكورسات التعليمية
Everything we see now is just an engineering solution based on old science
مكتبة قياسية تعني انها ستعمل علي جميع المترجمات بدون مشاكل
اي انها غير خاصة بمترجم معين
تم تعديل هذه المشاركة بواسطة garo في 22 يوليو 2008 في 22:20
( _ /)
(='.'=)
(")-(")
اقتباس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]
الجواب هو لا.
أنت تستعمل مصطلح "المكتبة القياسية" و لكن حسب كلامك أنت تريد "مكتبة ذات محمولية" تعمل على أكثر من منصة أو أكثر من نظام تشغيل. أليس كذلك؟
كلمة قياسي تعني معتمد من طرف منظمة المعاير العالمية، و ليس الأمريكية كما قالت الأخت رغد. و هذا عنوانها:
http://www.iso.org/iso/fr/home.htm
لكل لغة برمجة مكتبة خاصة بها، اللغات التي تعطي لها إيزو معاير تصبح مكتبتها التي إعتمدتها إيزو قياسية. البرامج التي يتقيد عند كتابتها بتلك المعايير تكون محمولة، و كذلك المكتبات مثل Qt, SDL, GTK+ .... إلخ.
ليلة سعيدة.
السلام عليكم
الأخت رغد قالت
اقتباسإنشاء مكتبة مستقلة قابلة للربط والإمتداد شيء عادي وممكن.. كلمة قياسية 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
اقتباسكلامك هذا غير دقيق ، فالبرنامج الذي تكتبه على لينوكس مثلا ،ممكن أن تتم عمل 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]
السلام عليكم ,,
أخي العزيز يجب أن توضح سؤالك أكثر,
إن كنت تقصد أن تقوم بكتابة مكتبة يمكن ترجمتها على أي مترجم فهذا ممكن :)
أما إن كان قصدك أن تقوم بكتابة مكتبة و بعد ترجمتها أن تقوم بربط و استخدام هذه المكتبة على عدة منصات مختلفة فهذا غير ممكن,
اطلع على مشاركتي هنا لأخذ فكرة عن مفهوم الـ Portability في ++C :
بعد ترجمة المكتبة فإن الكود الناتج سيكون مخصصاً لمعالج معين,
المسألة الثانية, هي نظام التشغيل فكل نظام تشغيل له ABI خاص به, إضافة إلى API خاص به طبعاً :)
تحياتي ,,
تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 23 يوليو 2008 في 07:17
JVM كتب:كلمة قياسي تعني معتمد من طرف منظمة المعاير العالمية، و ليس الأمريكية كما قالت الأخت رغد. و هذا عنوانها:
برق كتب:السلام عليكمالأخت رغد قالت
كلام غير صحيح تماما ، فصناع compiler يلتزمون بمعايير iso/iec ، وليس الأمر متروك لك شركة ، ومن لا يلتزم بها لا يطلق على منتجه أنه c++ compiler
عليكم السلام
,.,.,.,.,.,.,.
آسفة..سوء فهم.انا مش مخطئة وانتوا كمان مبدئياً مش مخطئين إلا لو بتنكروا مجهود المنظمة ANSI في معْيرة اللغات بصفة عامة من ضمنها لغتنا ++C!!..النسخة العالمية اسمها
ANSI/ISO C++
كنت ناسية المنظمة ISO اللي تعاونت مع المنظمة الأمريكية ANSI في معْيرة لغتنا ++C..لبديهياتها فقط..والعادة هيك بتكون معروفة بـ
ANSI C++
يعني تعتبروا الست خانم ANSI عملت الطبخة(المعايير) والست خانم ISO ذاقت الطبخة وعجبتها واعتمدتها عالمياً
.,,.,.,.,.,.,.,.
with regards
:happy:
[وسط]
♥ Countess ♥

♥
[/وسط]
آسفة كتير..معلش وقتي ضيق اليومين هدول..من الرابط التالي بتقدروا تشروا نسخة الوثائق لـ
,.,.,.,.,.,.,.,.,.,.
Best Wishes
:happy:
تم تعديل هذه المشاركة بواسطة رغـــــــــد في 23 يوليو 2008 في 21:55 — السبب: يا فالحة (وثائق مش وثائقية)
[وسط]
♥ Countess ♥

♥
[/وسط]
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…