.NET

2013-08-27 3 views
5

के लिए लगातार प्रचार पुस्तकालय अमूर्त स्थिर विश्लेषण के लिए कोई खुला स्रोत .NET (C#/F #) लाइब्रेरी मौजूद है या नहीं? वर्तमान में मैं निरंतर प्रचार एल्गोरिदम में रूचि रखता हूं।.NET

यह सार (भाषा अपरिचित) और खुला स्रोत होना चाहिए क्योंकि मैं इसे कस्टम एल्गोरिदम कार्यान्वयन के लिए आधार के रूप में उपयोग करना चाहता हूं।

धन्यवाद।

+0

आप ओपन सोर्स पर जोर देते हैं? –

उत्तर

2

लाइब्रेरी Mono.Cecil लगभग वही है जो आप चाहते हैं। यह खुला स्रोत है, भाषा सारणीबद्ध है और बोनस के रूप में यह सुपर पॉलिश, तेज़ और स्थिर है।

लेकिन यह नहीं है कि आप वास्तव में क्या चाहते हैं, क्योंकि सेसिल सी #, VB.NET या एफ # स्रोत कोड का विश्लेषण नहीं करता है, लेकिन यह विधानसभाओं फ़ाइलें (dll और exe) और विधानसभाओं में निहित आईएल कोड विश्लेषण करती है। कई स्थैतिक विश्लेषण क्षेत्रों के लिए यह पर्याप्त होगा, लेकिन निरंतर प्रचार के लिए (मुझे लगता है कि आप const string STR = "MyString"; या const int INT = 12345; जैसे शाब्दिक स्थिरता का मतलब है) संकलन समय पर जानकारी का नुकसान होता है क्योंकि लगातार उपयोग निरंतर उपयोग के स्थान पर स्थिर मूल्य हार्डकोड किया जाता है। सेसिल Abstract Syntax Tree विश्लेषण के लिए भी उपयुक्त नहीं है।

आप Microsoft Roslyn पर भी देख सकते हैं। सेसिल के विपरीत, रोज़लिन सी # और वीबी.नेट स्रोत कोड पार्स, Abstract Syntax Tree विश्लेषण के लिए बहुत उपयुक्त है, लेकिन यह खुला स्रोत नहीं है, एफ # का समर्थन नहीं करता है, और निश्चित रूप से तब तक बदल सकता है जब तक यह आरटीएम बन जाएगा, मैं चाहता हूं अगले वर्ष विजुअल स्टूडियो 2014 के साथ कहें, (लेकिन यह सिर्फ मेरा अनुमान है)।

+0

उत्तर के लिए धन्यवाद। सभी पुस्तकालय बहुत दिलचस्प हैं। लेकिन मुझे अधिक उच्च स्तरीय अमूर्तता मिलती है। – gsv

+0

"मुझे अधिक उच्च स्तरीय अमूर्तता" मिलती है? –

+0

क्षमा करें। उत्तर का हिस्सा खो गया था। मेरा मतलब है कि मैं ocaml (https://code.google.com/p/ocaml-pranlib/) के लिए pranlib की तरह somethink खोजने की कोशिश करता हूं: अमूर्त, भाषा-अनुक्रमित डेटा संरचनाओं के लिए लागू विश्लेषण का सेट। – gsv

1

आपको सामान्य कंपाइलर इंफ्रास्ट्रक्चर: कोड और एएसटी घटक project पर एक नज़र डालना चाहिए। यह एक भाषा-स्वतंत्र रूप में .NET असेंबली पर स्थिर विश्लेषण करने के लिए एक ऑब्जेक्ट मॉडल प्रदान करता है।

अद्यतन

सीसीआई परियोजनाओं के बाहर के बॉक्स उपयोग संकलक और टूलींग लेखकों के बजाय के लिए पुस्तकालयों के रूप में अधिक डिजाइन किए हैं।

शायद आप Mono.Gendarme जैसे कुछ और ढूंढ रहे हैं जो FxCop के समान एक ओपन सोर्स स्टेटिक विश्लेषण इंजन है। इसे Mono-Tools परियोजनाओं के संग्रह के हिस्से के रूप में बनाए रखा जाता है।

+0

धन्यवाद। यह एक अच्छा विचार है। क्या कोई विश्लेषण लागू या योजनाबद्ध है? – gsv

+0

@gsv मुझे नहीं लगता कि यद्यपि मैं प्रोजेक्ट के लिए योजनाओं पर प्रोजेक्ट रखरखाव से पूछूंगा। असल में मुझे नहीं लगता कि सीसीआई परियोजना आपके लिए उपयुक्त है, मुझे लगता है कि आप मोनो। गेंडरमे प्रोजेक्ट की तरह कुछ ढूंढ रहे हैं। मेरा संपादन देखें। –