कार्यक्रम विश्लेषण के साथ शुरुआत करना


10

मैं प्रोग्राम विश्लेषण के साथ शुरुआत करने के लिए संसाधनों की तलाश कर रहा हूं ।

इस विषय पर मुझे जो एकमात्र पुस्तक मिली है, वह नील्सन और नील्सन पुस्तक है।

इसके अलावा, ऐसा लगता है कि केवल "संकलक" किताबें हैं जहां "कार्यक्रम विश्लेषण" एक अध्याय होगा, या उन पंक्तियों के साथ कुछ होगा।

क्या लोग किसी अन्य संसाधनों के बारे में जानते हैं?


3
शुरुआत करने के लिए नीलसन और नील्सन को हराना मुश्किल है। सर्वेक्षण पत्रों के लिए Google। स्थैतिक विश्लेषण संगोष्ठी (एसएएस) की हालिया कार्यवाही को देखें। तब Google विशेष रूप से विश्लेषण करता है कि आप किसमें रुचि रखते हैं।
डेव क्लार्क

ध्यान दें कि हम सूची प्रश्नों को काफी पसंद नहीं करते हैं । सौभाग्य से, यह एक अच्छा जवाब आकर्षित करने के लिए लगता है, लेकिन कृपया इस तरह के सवाल पूछने से बचना चाहिए। Google स्वयं और फिर आपके द्वारा खोजे गए संसाधनों में सामग्री के बारे में पूछें।
राफेल

जवाबों:


7

दुर्भाग्य से इस विषय पर कई पाठ्य पुस्तकें नहीं हैं। मुझे लगता है कि आज कार्यक्रम विश्लेषण सीखने का सबसे अच्छा तरीका विभिन्न पाठ्यक्रमों का सर्वेक्षण करना है जो उपलब्ध हैं, कुछ कार्यान्वयन के साथ खेलते हैं और फिर अपनी विशिष्ट आवश्यकताओं के लिए कुछ शोध पत्रों को देखते हैं। क्या इस प्रकार है कि वहाँ क्या है, इसका एक छोटा सा नमूना है। चूँकि आपने विशेष रूप से संकलक-उन्मुख विश्लेषणों का उल्लेख किया था, इसलिए मुझे यह पता लगाना आसान नहीं था कि मैं नीचे ऐसी सामग्री को शामिल नहीं करूँगा।

वेब-आधारित संसाधन ये लेख हैं जो एक संकलन संदर्भ के बाहर स्थैतिक विश्लेषण के उपयोग पर जोर देते हैं।

  1. कार्यक्रम विश्लेषण पर एक रिवर्स इंजीनियरिंग रेडिट चर्चा में कई उपयोगी लिंक हैं।

  2. सार व्याख्या पर मोज़िला विकी

  3. स्थैतिक विश्लेषण की तैनाती , फ्लैश शेरिडन द्वारा डॉ। डॉब्स लेख

  4. कोड की कुछ बिलियन लाइनें बाद में: वास्तविक दुनिया में कीड़े खोजने के लिए स्टेटिक विश्लेषण का उपयोग करते हुए , अल बेसी, केन ब्लॉक, बेन चेल्फ़, एंडी चो, ब्रायन फ़ुल्टन, सेठ हालेम, चार्ल्स हेनरी-ग्रोस, अस्या कामस्की, स्कॉट मैकपेक, डॉसन एंगलर एसीएम के संचार में।

कार्यक्रम विश्लेषण पर विश्वविद्यालय के पाठ्यक्रम

  1. अरहस विश्वविद्यालय के एंडर्स मोलर एक कोर्स सिखाते हैं जो ऑब्जेक्ट-ओरिएंटेड और वेब तकनीक को कवर करता है।
  2. यूनिवर्सिटी ऑफ कोलोराडो बोल्डर के बोर-यूह इवान चांग में एक फाउंडेशनल कोर्स है जिसमें ओकेएमएल कार्यान्वयन और एक स्नातक पाठ्यक्रम शामिल है
  3. कैलिफोर्निया विश्वविद्यालय में बेन हार्डेकॉफ सांता बारबरा असाइनमेंट का एक बड़ा सेट हुआ करते थे, लेकिन अब वे ऑनलाइन उपलब्ध नहीं हैं। कुछ छात्र जिन्होंने अपना कोर्स लिया था, उन्हें लगता है कि पायथन कार्यान्वयन उपलब्ध है।
  4. Markus Müller-Olm में Android के विश्लेषण पर एक स्नातक पाठ्यक्रम है
  5. सार्बुकेन विश्वविद्यालय में रेनहार्ड विल्हेम एक स्नातक पाठ्यक्रम सिखाता है जो समय विश्लेषण, कैश व्यवहार भविष्यवाणी और कुछ आकार विश्लेषण जैसे स्थैतिक विश्लेषण अनुप्रयोगों को शामिल करता है।
  6. MSR के सुमित गुलवानी ने ओरेगॉन समर स्कूल में प्रोग्रामिंग लैंग्वेजेज पर प्रोग्राम्स (टाइम / मेमोरी) के स्टैटिकली रिसोर्सेज खपत का अच्छा कोर्स सिखाया ।
  7. बर्कले में कैलिफोर्निया विश्वविद्यालय में कौशिक सेन एक कोर्स सिखाते हैं जो बग ढूंढने पर ध्यान केंद्रित करता है और जिसके विषय समवर्ती निष्पादन और सॉफ्टवेयर मॉडल की जाँच करते हैं।
  8. मैरीलैंड विश्वविद्यालय में जेफरी फोस्टर एक कोर्स सिखाते हैं जिसमें टाइप सिस्टम, मॉडल चेकिंग, उर्फ ​​विश्लेषण और कई अन्य सामान्य सामग्री शामिल हैं।
  9. पैट्रिक कूसॉट ने MIT में एक साल बिताया और अमूर्त व्याख्या पर एक व्यापक, मूलभूत पाठ्यक्रम पढ़ाया । असाइनमेंट में एक OCaml कार्यान्वयन शामिल है जो कंक्रीट से एकत्रित शब्दार्थ को कुछ एल्गोरिदमिक गैर-तुच्छ विचारों में जाता है।
  10. क्षेत्र में कुछ नेताओं द्वारा सिखाया गया अमूर्त व्याख्या पर एक स्नातक पाठ्यक्रम और भी अधिक सिद्धांत पर पकड़ने के लिए एक अच्छी जगह है।
  11. पैट्रिक कूसॉट ने 2009 में ओरेगॉन समर स्कूल ऑन प्रोग्रामिंग लैंग्वेजेज में अमूर्त व्याख्या पर एक लघु पाठ्यक्रम पढ़ाया ।

साथ खेलने के लिए उपकरण

मैं यहां बहुत सारे शोध उपकरणों को सूचीबद्ध नहीं कर रहा हूं। उनमें से कई हैं लेकिन मैंने कुछ को सूचीबद्ध करने की कोशिश की है जिसे आप डाउनलोड कर सकते हैं और क्षेत्र को बेहतर ढंग से समझने के लिए खेल सकते हैं।

  1. Interproc संख्यात्मक शिक्षा के बारे में जानने के लिए खेलने के लिए एक बहुत ही शैक्षिक उपकरण है।

  2. यदि आप वास्तव में संख्यात्मक विश्लेषण में हैं तो एप्रन न्यूमेरिक लाइब्रेरी

  3. स्लेयर माइक्रोसॉफ्ट रिसर्च का एक आकार विश्लेषण उपकरण है।

  4. jStar जावा के लिए एक विश्लेषक है जो पृथक्करण तर्क पर आधारित है।

  5. माइक्रोसॉफ्ट रिसर्च में कई उपकरण विकसित करने वाले कई समूह हैं, जिनमें से कई डाउनलोड के लिए उपलब्ध हैं या वेब-डेमो हैं। मैं यहां सब कुछ सूचीबद्ध नहीं कर सकता और आपको उनके साथ खेलने का सुझाव दूंगा।

और भी बहुत कुछ है, लेकिन यह शायद आपको थोड़ी देर के लिए व्यस्त रखने के लिए पर्याप्त है।


वाह, अब यह एक व्यापक जवाब है! आपका बहुत बहुत धन्यवाद!
abeln

@Vijay आपके उत्तर के लिए धन्यवाद! मुझे आश्चर्य है कि क्या आप मेरे लिए कम्पाइलर विश्लेषण के लिए कुछ संकेत जोड़ सकते हैं?
ऐनीइजाइल

@AnneTheAgile, मुझे लगता है कि विस्तार एक अलग प्रश्न और उत्तर देता है। तो कृपया प्रश्न पूछें और मुझे उत्तर प्रदान करने में खुशी हो रही है।
विजय डी।

@VijayD, धन्यवाद! मैंने इसे लिखा है; cs.stackexchange.com/questions/13392/…
ऐनी.जिले

मैं बहुत धीमी गति से उत्तर दे रहा हूं, और मेरी पोस्ट हटा दी गई। @VijayD शायद आप मुझे IM कर सकते हैं या यहाँ जोड़ सकते हैं? मुझे जो दिलचस्पी है, वह मूल बातें है। मुझे यकीन नहीं है कि "संकलक-उन्मुख विश्लेषण" को खोजने के लिए सबसे अच्छा कौन सा "खोजने में आसान था"? मैं मैदान में नया हूं और सही तरीके से शुरुआत करना चाहता हूं। Ty!
ऐनीएजाइल

2

यह क्षेत्र अत्यंत व्यापक है ... कार्यक्रम की शुद्धता के प्रमाण देखें (कुछ उपकरण हैं, जैसे क्ले )। फिर अलग-अलग परिष्कार के "प्रोग्राम चेकर्स" के सभी प्रकार हैं (उदाहरण के लिए रेंज के नमूने के लिए स्प्लिंट या फ़्लॉफ़िंडर देखें ), ऐसे प्रोग्राम जो "प्रोग्रामिंग दिशानिर्देशों के अनुपालन" की जांच करते हैं। यहां तक ​​कि लिनक्स ' स्मैच भी इस श्रेणी में आता है।

डायनामिक टूल के लिए, सभी प्रकार के प्रदर्शन / परीक्षण कवरेज टूल हैं, और मेमोरी चेकिंग के लिए सामान जैसे वैग्राइंड

ब्याज की सीमा को संकीर्ण करें, फिर नीचे ड्रिल करें।


धन्यवाद। आपके द्वारा उल्लेखित उपकरण हैं , लेकिन स्थैतिक कार्यक्रम विश्लेषण पर पुस्तकों या सर्वेक्षणों के बारे में क्या कहना है?
abeln

1

कर रहे हैं दो अनुसंधान केंद्रित : कार्यक्रम विश्लेषण में dynamicऔर staticकार्यक्रम विश्लेषण।

कार्यक्रम विश्लेषण का पहला स्वाद लेने के लिए, मैं ड्रैगन पुस्तक में अध्याय 4, 6, 9 को पढ़ने की सलाह देता हूं यदि आपके पास संकलक में पृष्ठभूमि है

या यदि आप कम से कम बुनियादी रेखांकन जानते हैं, तो स्नातक स्तर के पाठ्यक्रम का पालन करना बेहतर होगा, जैसे कि एमआईटी 6.820 और सीएमयू 17-355 / 17-665 / 17-819

उपरोक्त स्थैतिक कार्यक्रम विश्लेषण के बारे में हैं। यदि आप गतिशील प्रोग्राम विश्लेषण के बारे में अधिक ध्यान रखते हैं , तो प्रोग्राम प्रोफाइलिंग शुरू करने के लिए एक अच्छा बिंदु है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.