مترجم من مصدر إلى مصدر

مترجم من مصدر إلى مصدر، مترجم عام (بالإنجليزية: source-to-source translator, source-to-source compiler (S2S compiler), transcompiler, or transpiler)‏[1] [2] هو نوع من المترجمات يأخذ كود المصدر لبرنامج مكتوب بلغة برمجة كمدخله وينتج كود مصدر مكافئ بنفس لغة البرمجة أو بلغة مختلفة. يقوم مترجم من مصدر إلى مصدر بالتحويل بين لغات البرمجة التي تعمل عند نفس مستوى تقريبًا، بينما يترجم المترجم التقليدي من لغة برمجة ذات مستوى أعلى إلى لغة برمجة ذات مستوى أقل، على سبيل المثال قد يقوم مترجم من مصدر إلى مصدر بترجمة برنامج من بيثون Python إلى جافاسكريبت JavaScript ، بينما يترجم مترجم تقليدي من لغة مثل سي C إلى المجمع أو جافا Java إلى البايت كود، [3] سيأخذ المترجم الموازي التلقائي بشكل متكرر في برنامج لغة عالية المستوى كمدخل ثم يقوم بتحويل الكود وإضافة تعليق توضيحي له مع التعليقات التوضيحية للكود المتوازي (مثل OpenMP) أو تركيبات اللغة (مثل عبارات فورتران فور كال) . [4]

الغرض الآخر من الترجمة من المصدر إلى المصدر هو ترجمة الشفرة القديمة لاستخدام الإصدار التالي من لغة البرمجة الأساسية أو واجهة برمجة التطبيقات التي تكسر التوافق مع الإصدارات السابقة، ستقوم بإجراء إعادة هيكلة تلقائية للكود وهو مفيد عندما تكون برامج إعادة البناء خارجة عن سيطرة المنفذ الأصلي (على سبيل المثال، تحويل البرامج من بيثون قديم إلى بيثون جديد، أو تحويل البرامج من API قديم إلى API الجديد) أو عندما حجم البرنامج يجعل من غير العملي أو يستغرق وقتًا طويلاً لإعادة بناءه يدويًا.

قد يحافظ المترجمون الشفويون على تركيبة الشفرة المترجمة قريبة من شفرة المصدر قدر الإمكان لتسهيل تطوير وتصحيح كود المصدر الأصلي، أو قد يغيروا بنية الشفرة الأصلية لدرجة أن الشفرة المترجمة لا تبدو مثل شفرة المصدر، [5] هناك أيضًا أدوات مساعدة لتصحيح الأخطاء تعيد رمز المصدر المكتوب إلى الرمز الأصلي، على سبيل المثال يسمح معيار جافاسكريبت سورس ماب [6] بتعيين كود جافاسكريبت الذي يتم تنفيذه بواسطة متصفح الويب إلى المصدر الأصلي عندما تم، على سبيل المثال، تصغير شفرة جافاسكريبت أو إنتاجها بلغة تحويلها إلى مترجم من مصدر إلى مصدر جافاسكريبت [7]


هناك امثلة على مترجمات من مصدر إلى مصدر مثل

مراجع

  1. ARC-Softwaresystems (يونيو 1988)، "Aus BASIC mach C: B→C Transpiler" [Turn BASIC into C: B→C Transpiler]، Amiga-Magazin [الإنجليزية] - Das Computermagazin für Amiga-Fans (Advertisement) (باللغة الألمانية)، Esslingen, Germany: Markt & Technik Verlag Aktiengesellschaft، ج. 1988 رقم  6، ص. 101، ISSN 0933-8713، مؤرشف من الأصل في 01 فبراير 2020، اطلع عليه بتاريخ 18 يناير 2020، […] Achtung C- und بيسيك-Programmierer! […] Jetzt gibt es den B→C TRANSPILER das einzigartige Umwandlungs-Software-System von ARC […] Der B→C TRANSPILER übersetzt lauffähige AMIGA-Basicprogramme in compilierbaren C-Code. […] Durch Spezialbefehle kann C-Code in Basicproqramme direkt integriert werden. […] Basic-Befehle werden erweitert transpiliert. (HAM-Modus, IFF, usw. werden unterstützt). […] Mit diesem Konzept neuester Generation verbindet der B→C TRANSPILER auf einzigartige Weise die Vorteile eines Interpreters mit denen eines Compilers […]
  2. Sector 7 Software Limited (07 ديسمبر 1993) [1992-09-22]، "Transpiler"، مكتب الولايات المتحدة لبراءات الاختراع والعلامات التجارية، Class 9 (ط. 1)، Bedford, Bedfordshire, UK: مكتب الولايات المتحدة لبراءات الاختراع والعلامات التجارية، ج. 1157، ص. TM 81، SN 74-316.610، مؤرشف من الأصل في 01 فبراير 2020، اطلع عليه بتاريخ 18 يناير 2020، […] Priority claimed under Sec. 44(D) on United Kingdom Application No. 1495953, filed 1992-03-31 Reg. No. A1495953, dated 1992-03-31, expires 1999-03-31. For computer software and programs (U.S. Cl. 38). First use 1991-08-01, in commerce 1991-08-01. (NB. This company develops products such as VX/BASIC, a BASIC-to-C transpiler for نظام ذاكرة افتراضية مفتوح. Despite their claim, their's is not the first public use of the term transpiler, see f.e. ARC's BASIC-to-C transpiler for the أميغا in 1988.)
  3. "Transpiler"، devopedia.org، مؤرشف من الأصل في 05 نوفمبر 2019، اطلع عليه بتاريخ 22 يونيو 2019.
  4. "Types of compilers"، compilers.net، 1997–2005، مؤرشف من الأصل في 19 يوليو 2019، اطلع عليه بتاريخ 28 أكتوبر 2010.
  5. Fowler, Martin (12 فبراير 2013)، "Transparent Compilation"، مؤرشف من الأصل في 01 يناير 2020، اطلع عليه بتاريخ 13 فبراير 2013.
  6. Lenz؛ Fitzgerald (11 فبراير 2011)، "Source Map Revision 3 Proposal - Better bidirectional mapping"، مؤرشف من الأصل في 30 أكتوبر 2019، اطلع عليه بتاريخ 19 يناير 2020.
  7. Seddon, Ryan (21 مارس 2012)، "Introduction to JavaScript Source Maps"، html5rocks.com، مؤرشف من الأصل في 09 ديسمبر 2019، اطلع عليه بتاريخ 21 يناير 2015.
  • بوابة علم الحاسوب
  • بوابة برمجة الحاسوب
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.