Coco/R هو مولد مترجم ، والذي يأخذ قواعد النحوية المنسوبة للغة المصدر وإنشاء ماسح ضوئي ومحلل لهذه اللغة. يعمل الماسح الضوئي باعتباره Automaton المحدود الحتمي. يستخدم المحلل النسب المتكرر. يمكن حل تعارضات LL (1) بواسطة lookahead متعددة الأوساخ أو عن طريق الفحوصات الدلالية. وهكذا فئة القواعد المقبولة هي LL (k) ل k التعسفي.
لقد كنت أستخدم إصدار Turbo Pascal من Coco / R لفترة طويلة. في بعض الأحيان كان من الضروري تغيير الرمز. إذا تغيرت المصادر ، فأنا أعيد ترجيفها. ولكن بعد بعض تحديثات Windows ، وجدت أن Turbo Pascal يذهب إلى مكان أفضل وتوقف عن الجري. بشكل عام ، أعتقد أن لغات الكثير من الناس من نيكلوس إميل ويرث تسبب الكراهية.
بشكل عام ، أعتقد أن هناك القليل من هؤلاء الأشخاص الذين قدموا مساهمة مماثلة في تطوير لغات البرمجة وعلوم الكمبيوتر.
من السهل العثور على حل معقد وغير مفهوم في كثير من الأحيان للمشكلة. من الصعب جعل حل بسيط ونظيف ومفهوم.
عندما ترى مثل هذا القرار ، يصبح من الواضح أن هذا هو عمل Grand Master مع خطاب رأسمالي. أولاً ، قمت بنقل الكود من Turbo Pascal. لكنني اكتشفت أنه خلال ما يقرب من 20 عامًا ، تدفقت الكثير من الماء تحت الجسر وتم تحسين رمز COCO/R جيدًا أيضًا.
الإصدار الأخير الذي وجدته كان C ++ ، C #، Java. ثم قررت نقل الكود واخترت C #. في الروح ، هذه هي اللغة الأقرب إلى دلفي ، وربما بسبب حقيقة أن لديهم مهندس معماري واحد.
يمكنك رؤية مثال للاستخدام في مشروع Protobuf-Delphi.
من المفترض أن تستخدم نفس مجموعة الإطارات للماسح الضوئي والمحلل للغات المختلفة. يعتمد المترجم على بنية إطار ثابت إلى حد ما للماسح الضوئي والمحلل. ليس من المرغوب فيه تغيير ترتيب الأقسام ، لأن هذا يمكن أن يؤدي إلى أخطاء التجميع في الكود الذي تم إنشاؤه.
Cocor.exe -namespace Taste -checkEOF -trace AG taste.atg.
يتم استخدام مساحة الاسم عند إنشاء اسم الوحدة النمطية. يتم استخدام هذا الآن في إطارات الماسح الضوئي والحلويات.
MACROS
prefix = "cr" .