أجهزة الكمبيوتربرمجة

المذيع - هو ... أنواع المجمعين. تحويل وبرامج البث

برامج، وكذلك الناس لترجمة من لغة إلى أخرى بحاجة إلى مترجم أو مترجمة.

المفاهيم الأساسية

البرنامج عبارة عن تمثيل اللغوي للحسابات: ط → → P P (ط). مترجم هو البرنامج الذي يتم توفيره للبرنامج إدخال P وبعض المدخلات س. ينفذ في P س: I (P، س) = P (خ). والحقيقة أن هناك مترجم واحد فقط قادرة على أداء كل البرامج الممكنة (والتي يمكن أن تكون ممثلة في النظام الرسمي) هو عميق جدا وهام اكتشاف تورينج.

المعالج هو مترجم من البرامج في لغة الآلة. عموما مكلفة للغاية لكتابة مترجمين للغات عالية المستوى، بحيث تترجم إلى شكل يمكن أن يكون أسهل لتفسير.

بعض أنواع من المترجمين لها أسماء غريبة جدا:

  • المجمع يترجم برامج لغة التجميع إلى لغة الآلة.
  • المترجم يترجم لغة رفيعة المستوى للغة أقل.

المذيع - هو البرنامج الذي يأخذ وإدخال البيانات البرنامج في بعض اللغات S وتنتج برنامج T في مثل هذه الطريقة أن كلا منهما لها نفس الدلالة: P → X → Q. هذا هو، ∀x. P (س) = س (خ).

إذا بث البرنامج بأكمله إلى شيء للتفسير، ويسمى تجميع قبل تجميع التنفيذ، أو عثمان. مترجم AOT يمكن استخدامها في سلسلة، وهذه الأخيرة التي غالبا ما يكون المجمع، على سبيل المثال:

شفرة المصدر مترجم → (مترجم) → → التجمع رمز المجمع (مترجم) رمز → → آلة وحدة المعالجة المركزية (مترجم).

يحدث تجميع التشغيلي أو حيوية إذا تم بث البرنامج، عندما أعدم من قبل الآخرين جزء جمعت سابقا. JIT-المجمعين تذكر ما قاموا به بالفعل حتى لا أكرر شفرة المصدر مرارا وتكرارا. حتى أنها يمكن أن تنتج تجميع التكيف وإعادة تصنيف على أساس سلوك بيئة تنفيذ البرنامج.

العديد من اللغات تسمح بتنفيذ تعليمات برمجية في وقت الترجمة وترجمة التعليمات البرمجية الجديدة في وقت التشغيل.

مرحلة الترجمة

تضم البث خطوات تحليل وتجميع:

شفرة المصدر محلل → → → المفاهيمي تمثيل مولد (المزج) → كود الهدف.

ويرجع ذلك إلى هذه الأسباب ما يلي:

  • أي طريقة أخرى غير مناسب. ترجمة كلمة ببساطة لا تعمل.
  • جيد الحل الهندسي: إذا كنت تريد أن تكتب مترجمين للغات M و N مصدر المستهدفة من الضروري الكتابة فقط برامج بسيطة M + N (polukompilyatorov) بدلا من مجمع M × N (مجموعه من المترجمين).

ومع ذلك، من الناحية العملية، وهو رأي مفاهيمي لنادرا معبرة جدا بما فيه الكفاية وقوية بما يكفي لتغطية كل تصور المصدر والهدف اللغات. في حين كانت بعض قادرا على الاقتراب من هذا.

المجمعين حقيقية تمر بمراحل عدة. عند إنشاء المترجم الخاص بك لا تحتاج إلى تكرار كل العمل الشاق أن الناس قد فعلت لخلق تمثيل والمولدات الكهربائية. يمكنك ترجمة لغتك بشكل مباشر في تفعيل جافا أو C والاستفادة من جافا سكريبت محرك القائمة وC مترجم لتفعل بقية. يمكنك أيضا استخدام التمثيل المتوسطة القائمة و الأجهزة الظاهرية.

سجل الترجمة

المذيع - هو برنامج أو الأجهزة، التي تشارك بثلاث لغات: المصدر، وجهة والقاعدة. أنها يمكن أن تكون مكتوبة في T-الشكل، وضع اليسار الأصلي، والحق والهدف قاعدة أدناه.

هناك ثلاثة أنواع من المجمعين:

  • المذيع - هو samokompilyator إذا كان يتوافق مع اللغة المصدر الأساسية.
  • مترجم التي تستهدف اللغة هو الأساس، ودعا samorezidentnym.
  • المذيع - وعبر مترجم، إذا كان المستهدف واللغات المختلفة الأساسية.

لماذا هذا مهم؟

حتى لو كنت أبدا جعل مترجم الحقيقي، ومعرفة جيدة من التكنولوجيا من إنشائها، لأن مفهوم المستخدمة لهذا الغرض وتستخدم على نطاق واسع، على سبيل المثال:

  • تنسيق النص.
  • استفسارات اللغة إلى قواعد البيانات؛
  • هندسة الكمبيوتر المتقدمة.
  • مشاكل الأمثل معممة.
  • واجهات.
  • لغات البرمجة.
  • وحدات التحكم.
  • الأجهزة الظاهرية.
  • الترجمة الآلية.

وبالإضافة إلى ذلك، إذا كنت تريد أن تكتب preprocessors، linkers، تحميل، مصححات والمحللون، يجب أن تذهب من خلال نفس الخطوات عند كتابة مترجم.

يمكنك أيضا تعلم كيفية كتابة برامج أفضل، منذ إنشاء المترجم للغة يعني فهم أفضل لتعقيدات وغموض. دراسة المبادئ العامة للإذاعة كما يسمح لك لتصبح لغة مصمم جيدة. لذلك لا يهم كيف حاد اللغة إذا كان لا يمكن تنفيذها على نحو فعال؟

تقنية شاملة

وتغطي التكنولوجيا مترجم العديد من المجالات المختلفة لعلوم الكمبيوتر:

  • نظرية رسمية اللغة: النحو والإعراب، الحاسوبية.
  • هندسة الكمبيوتر: مجموعات التعليمات، RISC CISC أو، عبر خط انابيب دورات على مدار الساعة نواة معالجة، وما إلى ذلك؛
  • مفاهيم لغات البرمجة، على سبيل المثال، وأداء تحكم تسلسل، والتنفيذ المشروط، التكرار، العودية، والتحلل وظيفية، ونمطية، والتزامن، الفوقية البرمجة ونطاقها وثابتة أنواع فرعية، والقوالب، نوع الانتاج، والنماذج، والشروح، والتدفق، والكائنات الدقيقة الاحاديه الخلية وصناديق البريد وتستمر ، البدل، والتعبير العادية، والذاكرة المعاملات والميراث وتعدد الأشكال، وإعدادات الوضع، وهلم جرا الخ..
  • اللغات المجردة والأجهزة الظاهرية.
  • الخوارزميات و تراكيب البيانات: التعابير العادية، تحليل الخوارزميات، خوارزميات الرسومات، البرمجة الديناميكية، التدريب؛
  • لغات البرمجة: لغوي، ومعاني الكلمات (والدينامية)، نماذج الدعم (الهيكلي، OOP، وظيفية، منطقي، المكدس، التوازي، الفوقية البرمجة)؛
  • انشاء برامج (المجمعين، عادة ما تكون كبيرة ومعقدة): الترجمة، والتخزين المؤقت، componentize، API واجهات، وإعادة استخدام، والتزامن.

تصميم المترجم

بعض المشاكل التي واجهتها في تطوير الترجمة الحقيقية:

  • مشاكل مع اللغة المصدر. هل من السهل تجميع ذلك؟ هناك المعالج؟ كيف هي أنواع؟ هل هناك مكتبة؟
  • تجميع يمر مترجم: واحد أو متعدد الطريق؟
  • درجة التحسين المطلوب. برامج البث سريعة وغير نظيفة مع ضئيلة أو معدومة الأمثل يمكن أن تكون طبيعية. سوف مترجم ينته الأمثل يتباطأ، ولكن أفضل مدونة في وقت قد يكون يستحق كل هذا العناء.
  • درجة المطلوبة من اكتشاف الخطأ. يمكن مترجم تتوقف فقط عند الخطأ الأول؟ متى يجب أن يتوقف؟ سواء الثقة في تصحيح الخطأ مترجم؟
  • توافر الأدوات. إذا كانت اللغة الأصلية ليست صغيرة جدا، ويتطلب تحليل الماسح الضوئي والمولد. وهناك أيضا مولدات، المولدات رمز، ولكنها ليست شائعة جدا.
  • نوع من التعليمات البرمجية الهدف المراد إنشاؤها. يتم اختيارهم من محض تكميل أو الظاهري رمز الجهاز. أو مجرد كتابة جزء إدخال الذي يخلق تمثيل وسيط شعبية مثل LLVM، RTL، أو JVM. أو إجراء عملية ترجمة النص الأصلي في التعليمات البرمجية المصدر في C أو جافا سكريبت.
  • شكل رمز الهدف. يمكنك اختيار لغة التجميع، ورمز الجهاز المحمول، صورة الجهاز ذاكرة رمز.
  • إعادة توجيه. عندما مجموعة من المولدات هو جيد أن يكون جزء مدخل مشترك. لهذا السبب فإنه من الأفضل أن يكون مولد واحد للمدخلات من عدة أجزاء.

مترجم العمارة: المكونات

هذه هي العناصر الوظيفية الرئيسية للمترجم الذي يولد التعليمات البرمجية الأصلية (إذا كان البرنامج الإخراج هو برنامج في C أو جهاز ظاهري، لا تحتاج إلى الكثير من مراحل):

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

وبالإضافة إلى ذلك، فإن استخدام مدير فرعي اكتشاف الخطأ ورمز الجداول.

تحليل المفردات (المسح الضوئي)

الماسح الضوئي بتحويل الأحرف مصدر تيار إلى تيار من الرموز، وإزالة المسافات والتعليقات وحدات الماكرو في التوسع.

الماسحات الضوئية كثيرا ما يواجهون مشاكل، مثل ما إذا كان أو لا تأخذ بعين الاعتبار الحالة، والهوامش، وفواصل الأسطر والتعليقات المضمنة.

الأخطاء التي قد تحدث أثناء المسح الضوئي، ودعا المفردات وتشمل:

  • الأحرف التي ليست في الأبجدية.
  • الزيادة في عدد الأحرف في كلمة أو سطر.
  • ليس علامة مغلقة أو سلسلة حرفية.
  • نهاية الملف في تعليق.

تحليل (تحليل)

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

تسمى تم العثور على أخطاء في هذه المرحلة بناء الجملة. على سبيل المثال:

  • ك = 5 * (7 - ذ؛
  • ي = / 5؛
  • 56 = س * 4.

التحليل الدلالي

خلال التحليل الدلالي للتحقق من جواز قواعد وأجزاء الزميلة الشجرة تحليل (السماح أسماء إشارة إدخال عملية لتحويل نوع الضمني، وهلم جرا. D.) لتشكيل الرسم البياني الدلالي.

ومن الواضح أن مجموعة من قبول القواعد في لغات مختلفة مختلفة. إذا ترجمة لغات مثل جافا، قد تجد المجمعين:

  • تعريف متغير متعددة ضمن نطاقه.
  • إشارة إلى متغير قبل إعلانها.
  • ما يشير إلى اسم غير معلنة.
  • التعدي على حقوق براءات الاختراع.
  • العدد المفرط أو عدم كفاية الحجج في استدعاء الأسلوب.
  • عدم تطابق نوع.

جيل

رمز جيل المتوسطة تنتج الرسم البياني تدفق تتألف من المجموعات، مقسمة إلى كتل الأساسية.

رمز جيل تنتج رمز الجهاز الحقيقي. في المجمعين التقليدية للRISC آلات على الخطوة الأولى، يمكنك إنشاء المجمع مع عدد لا حصر له من سجلات الظاهري. لCISC آلات وربما لن يحدث.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ar.delachieve.com. Theme powered by WordPress.