هو موقع استكشاف مترجم تفاعلي. تحرير التعليمات البرمجية في C، C++، C#، F#، Rust، Go، D، Haskell، Swift، Pascal، ispc، Python، Java، أو أي من مكونات اللغات المدعومة الأخرى التي تزيد عن 30+، وشاهد كيف تبدو هذه التعليمات البرمجية بعد تجميعها في في الوقت الحالى.
تقرير الأخطاء · طلب المترجم · طلب الميزة · طلب اللغة · طلب المكتبة · الإبلاغ عن الضعف
يتم دعم العديد من المترجمين لكل لغة، وتتوفر العديد من الأدوات والمرئيات المختلفة، كما أن تخطيط واجهة المستخدم قابل للتكوين (بفضل GoldenLayout).
جرب على godbolt.org، أو قم بتشغيل المثيل المحلي الخاص بك. نظرة عامة على ما يتيح لك الموقع تحقيقه، وسبب فائدته، وكيفية استخدامه متاحة هنا.
يتبع Compiler Explorer قواعد السلوك التي تهدف إلى تعزيز بيئة مفتوحة ومرحبة.
تم إطلاق برنامج Compiler Explorer في عام 2012 لإظهار كيفية ترجمة بنيات C++ إلى كود التجميع. لقد بدأت كجلسة tmux
مع تشغيل vi
في جزء واحد watch gcc -S foo.cc -o -
وهو يعمل في الجزء الآخر.
ومنذ ذلك الحين، أصبح موقعًا عامًا يخدم أكثر من 3,000,000 مجموعة أسبوعيًا.
يمكنك دعم هذا المشروع ماليًا على Patreon أو GitHub أو Paypal أو عن طريق شراء معدات رائعة من متجر Compiler Explorer.
يوجد الآن قسم للأسئلة الشائعة في ويكي المستودع. إذا لم يكن سؤالك موجودا، يرجى الاتصال بنا كما هو موضح أدناه، حتى نتمكن من مساعدتك. إذا وجدت أن الأسئلة الشائعة تفتقر إلى بعض النقاط المهمة، فلا تتردد في المساهمة فيها و/أو مطالبتنا بتوضيحها.
تعرض العديد من مقاطع الفيديو بعض ميزات Compiler Explorer:
تتوفر خريطة الطريق التي تعطي فكرة بسيطة عن الخطط المستقبلية لبرنامج Compiler Explorer .
تمت كتابة برنامج Compiler Explorer بلغة TypeScript، على Node.js.
بافتراض أن لديك إصدارًا متوافقًا من node
المثبتة، فإن تشغيل make
على Linux من شأنه أن يجعلك جاهزًا للعمل مع Explorer الذي يعمل على المنفذ 10240 على جهازك المحلي: http://localhost:10240/. إذا لم ينجح ذلك بالنسبة لك، فيرجى الاتصال بنا، لأننا نعتبر أنه من المهم أن تتمكن من التشغيل بسرعة وسهولة. حاليًا، يتطلب برنامج Compiler Explorer تثبيت node
20، إما على المسار أو في NODE_DIR
(متغير البيئة أو معلمة make
).
التشغيل مع make EXTRA_ARGS='--language LANG'
سيسمح لك بتحميل LANG
حصريًا، حيث LANG
هي واحدة لمعرفات/الأسماء المستعارة للغة المحددة في lib/languages.ts
. على سبيل المثال، لتشغيل Compiler Explorer بدعم C++ فقط، يمكنك تشغيل make EXTRA_ARGS='--language c++'
. يمكنك توفير وسائط متعددة --language
للتقييد بأكثر من لغة واحدة. سيقوم Makefile
تلقائيًا بتثبيت جميع مكتبات الطرف الثالث اللازمة للتشغيل؛ استخدام npm
لتثبيت المكونات من جانب الخادم والعميل.
من أجل التطوير، نقترح استخدام make dev
لتمكين بعض الميزات المفيدة، مثل إعادة التحميل التلقائي عند تغييرات الملف وأوقات بدء تشغيل أقصر.
يمكنك أيضًا استخدام npm run dev
للتشغيل إذا لم يعمل make dev
على جهازك.
تحتاج بعض اللغات إلى أدوات إضافية لتفكيكها، على سبيل المثال rust
أو d
أو haskell
. يتم الاحتفاظ بهذه الأدوات بشكل منفصل في مستودع الأدوات.
يتم تكوين مستكشف المترجم عبر ملفات التكوين الموجودة في الدليل etc/config
. القيم هي key=value
. الخيارات الموجودة في ملف {type}.local.properties
(حيث يكون {type}
هو c++
أو ما شابه) تتجاوز أي شيء في الملف {type}.defaults.properties
. يوجد ملف .gitignore
لتجاهل ملفات *.local.*
، لذلك لن يتم التحقق منها في git، ولن تجد نفسك في صراع مع الإصدارات المحدثة عند استخدام git pull
. لمزيد من المعلومات، راجع إضافة مترجم.
قم بزيارة CONTRIBUTING.md للحصول على معلومات تفصيلية حول كيفية المساهمة في Compiler Explorer ، ومجلد المستندات للحصول على تفاصيل محددة تتعلق بالأشياء المختلفة التي قد ترغب في القيام بها، مثل كيفية إضافة مترجمين أو لغات جديدة إلى الموقع.
إذا كنت تريد توجيهه إلى مجلس التعاون الخليجي الخاص بك أو الثنائيات المشابهة، فإما أن تقوم بتحرير etc/config/LANG.defaults.properties
أو أنشئ واحدًا جديدًا بالاسم LANG.local.properties
، مع استبدال LANG
حسب الحاجة. *.local.properties
لها الأولوية القصوى عند تحميل الخصائص.
إذا كنت ترغب في دعم العديد من المترجمين واللغات مثل godbolt.org، فيمكنك استخدام الأمر bin/ce_install install compilers
في مشروع infra لتثبيت كل أو بعض المترجمين. يمكن تحميل المترجمات المثبتة بهذه الطريقة من خلال التكوين في etc/config/*.amazon.properties
. إذا كنت بحاجة إلى النشر في بيئة غير متصلة بالإنترنت تمامًا، فقد تحتاج إلى إزالة بعض أجزاء التكوين التي تم سحبها من www.godbolt.ms@443
.
عند التشغيل في إعداد شركة، يمكن استبدال خدمة تقصير عنوان URL بخدمة داخلية إذا كان برنامج تشغيل التخزين الافتراضي غير مناسب لبيئتك. للقيام بذلك، قم بإضافة وحدة نمطية جديدة في lib/shortener/myservice.js
وقم بتعيين متغير urlShortenService
في التكوين. يجب أن تقوم هذه الوحدة بتصدير دالة واحدة، راجع وحدة tinyurl للحصول على مثال.
هناك واجهة برمجة تطبيقات بسيطة ومريحة يمكن استخدامها لإجراء عمليات التحويل البرمجي إلى asm ولإدراج المترجمين.
يمكنك العثور على وثائق API هنا.
نقوم بتشغيل Compiler Explorer Discord، وهو مكان لمناقشة استخدام أو تطوير Compiler Explorer. لدينا أيضًا تواجد على قناة cpplang Slack #compiler_explorer
ولدينا قائمة بريدية عامة.
هناك قناة تطوير على الديسكورد، وأيضاً قائمة بريدية للتطوير.
لا تتردد في إثارة مشكلة على github أو إرسال بريد إلكتروني إلى Matt مباشرةً للحصول على مزيد من المساعدة.
فيما يلي المجالات الرسمية لبرنامج Compiler Explorer:
تسمح النطاقات بنطاقات فرعية عشوائية، على سبيل المثال، https://foo.godbolt.org/، وهو أمر مناسب نظرًا لأن كل نطاق فرعي له حالة محلية مستقلة. وأيضًا، سيتم تحميل نطاقات اللغة الفرعية مثل https://rust.compiler-explorer.com/ مع تلك اللغة المحددة بالفعل.
تتم صيانة برنامج Compiler Explorer بواسطة الأشخاص الرائعين المدرجين في ملف المؤلفين.
نود أن نشكر المساهمين المدرجين في ملف المساهمين، الذين ساعدوا في تشكيل Compiler Explorer .
نود أيضًا أن نشكر هؤلاء الأشخاص بشكل خاص على مساهماتهم في Compiler Explorer :
لقد ساعد العديد من الرعاة الرائعين، سواء من الأفراد أو الشركات، في تمويل برنامج Compiler Explorer والترويج له.