سؤال

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

  1. ما هي المتغيرات المجانية لوظيفة أو كتلة؟
  2. أين هذا الرمز المعلن؟
  3. ماذا كان قناع هذا الإعلان؟
  4. هل يحدث استخدام هذا الرمز الذي يحتمل أن يحدث قبل التهيئة؟
  5. هل هذا المتغير يحتمل أن يهرب؟

وأعتقد أن الوقت قد حان لإعادة التفكير في تحريش بلدي Kludge.

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

ما هي الأدوات التي مثل هذا الأشخاص على دراية، وماذا فعلوا صواب وخطأ في واجهات برمجة التطبيقات الخاصة بهم؟

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

المحلول

أنا مندهش قليلا في السؤال، كما فعلت الكثير من جيل التعليمات البرمجية، ونادرا ما يأتي مسألة التركيب (باستثناء الرغبة في بعض الأحيان إلى توليد أسماء فريدة من نوعها).

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

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

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

إذا اضطررت إلى لفة بلدي أود أن تقلق أقل حول واجهات برمجة التطبيقات وأكثر من تمثيل جيد حقا لأشجار مجردة بناء الجملة.

في المجال المحدود للغاية لتحليل Dataflow (والذي يتضمن السؤال المتغير غير المهيمين) و João Dias وتكييف بعض عمل جميل من Sorin Lerner و David Grove و Craig Chambers. وبعد فقط لدينا نتائج اولية يتم نشرها.

وأخيرا إذا كنت تريد إنشاء رمز بلغات متعددة هذا ال علبة كاملة من الديدان. وبعد لقد فعلت ذلك بشكل سيء عدة مرات. إذا قمت بإنشاء شيء تريده، فقم بنشره!

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