2009-01-20 9 views
17

"सैद्धांतिक कंप्यूटर विज्ञान विषयों" द्वारा, मैं नियमित बनाम गैर-नियमित भाषाओं, पंपिंग लेम्मा और व्याकरण जैसी चीजों का जिक्र कर रहा हूं।क्या सैद्धांतिक कंप्यूटर विज्ञान विषयों में "असली दुनिया" विकास अनुप्रयोग हैं?

मैं परिमित ऑटोमाटा और नियमित अभिव्यक्तियों के वास्तविक विश्व अनुप्रयोगों से परिचित हूं, लेकिन इन अन्य विषयों जैसे विषयों मुझे और अधिक समस्याएं दे रहे हैं क्योंकि मुझे कोई वास्तविक दुनिया अनुप्रयोग नहीं दिख रहा है।

उत्तर

17

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

और फिर कंपाइलर्स हैं, जहां आप इस सामान को नहीं जानते हैं, तो आप बर्बाद हो जाते हैं। यह सिर्फ आवेदन पर निर्भर करता है।

9

यहाँ Steve Yegge's take compilers की उपयोगिता, के रूप में अभिव्यक्त के बारे में बताया गया है:

वास्तव में, संकलक निर्माण अपने ही विनम्र और शायद शर्मनाक गलत राय में, है, दूसरा सबसे महत्वपूर्ण सीएस वर्ग आप एक में ले जा सकते हैं स्नातक कंप्यूटर विज्ञान कार्यक्रम।

प्रोग्रामिंग भाषाओं, प्राकृतिक भाषाओं और जटिल डेटा संरचनाओं में दिखाई देने वाले पुनरावर्ती संरचनाओं को पार करने के लिए ग्रामर आवश्यक हैं। मेरा मानना ​​है कि कुछ प्रोग्रामर उनसे बिल्कुल नहीं मिलते हैं, लेकिन जो लोग कंपाइलर्स, आईडीई, क्रमबद्धता आदि लिखते हैं उन्हें बहुत मिलते हैं।

6

चूंकि युवक एफ ने बताया, व्याकरण भाषा पार्सिंग के लिए महत्वपूर्ण महत्व है। यदि आप एएनटीएलआर जैसे पार्सर जनरेटर पर एक नज़र डालें, तो आप पाएंगे कि व्याकरण की संरचना आश्चर्यजनक रूप से स्कूल में जो सीखा है उसके समान ही है।

संबंधित मुद्दे