ما هي اللغة المفيدة لإنشاء تقرير لبرنامج C صالح [مغلق]

StackOverflow https://stackoverflow.com/questions/85230

  •  01-07-2019
  •  | 
  •  

سؤال

هل يمكن لأي شخص أن يقترح علي لغة برمجة مفيدة يمكن استخدامها لإنشاء أداة تقوم بتحليل برنامج C المحدد وإنشاء تقرير txt أو تقرير html يحتوي على معلومات حول البرنامج المحدد (قائمة الوظائف، قائمة المتغيرات، إلخ).البرنامج الذي أنوي بنائه يشبه الدوكسيجين لكني أريده لاستخدامي الشخصي.

هل كانت مفيدة؟

المحلول

يتمتع كل من Python وPerl بقدرات ممتازة على معالجة السلاسل.

أقترح استخدام شيء مثل ctags لتحليل البرنامج، وإنشاء برنامج نصي لقراءة ملف ctags وإخراجه بتنسيق txt/html.

تنسيق الملف الذي تستخدمه ctags محدد جيدًا حتى تتمكن البرامج الأخرى من قراءته.يرى http://ctags.sourceforge.net لمزيد من المعلومات حول ctags نفسها والملف الذي تستخدمه.

نصائح أخرى

com.cttags, ، ربما؟

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

أنت تفتح علبة كبيرة من الديدان، وهذا ليس استخدامًا فعالاً لوقتك، بلاه بلاه، إلخ.

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

ابحث في لغات البرمجة النصية.أوصي ببايثون أو بيرل.

لدى هاسكل مشروع لغة سي حديث نسبيًا http://www.sivity.net/projects/language.c والذي يسمح بتحليل كود C.

إذا كنت معتادًا على هاسكل، فقد يكون من المفيد إلقاء نظرة عليها.حتى لو لم تكن كذلك، فقد يكون من المثير للاهتمام أن تجرب ذلك.

إذا كنت تريد لغة برمجة، فسأقول شيئًا معروفًا بقدرة معالجة السلسلة، وهذا يعني بيرل.

ومع ذلك، فإن المهمة التي تحتاجها يمكن أن تكون معقدة إلى حد ما لأنك تحتاج إلى "معرفة" اللغة، لذلك ستحتاج إلى اتباع نفس الخطوات التي يقوم بها المترجم، وهي التحليلات المعجمية والنحوية للغة (فكر في flex، وفكر في yacc) من أجل "أعرف" حقًا معنى تلك السلاسل.

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

Lex/yacc مناسبان لبناء المحللين.

pycparser هو محلل كامل لـ ANSI C89/C90 مكتوب بلغة Python النقية.يتم استخدامه على نطاق واسع لتحليل كود مصدر C لتلبية الاحتياجات المختلفة.يأتي مع بعض أمثلة التعليمات البرمجية، مثل إدراج جميع تعريفات الوظائف في الملفات، وما إلى ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top