सिंटेक्स आरेख

सिंटैक्स आरेख (या रेलरोड आरेख) संदर्भ-मुक्त व्याकरण का प्रतिनिधित्व करने का एक तरीका है। वे बैकस-नौर फॉर्म, ईबीएनएफ, संवर्धित बैकस-नौर फॉर्म और धातुभाषाओं के रूप में अन्य पाठ-आधारित व्याकरणों के लिए एक ग्राफिकल विकल्प का प्रतिनिधित्व करते हैं। सिंटैक्स आरेखों का उपयोग करने वाली प्रारंभिक पुस्तकों में निकोलस विर्थ  द्वारा लिखित पास्कल उपयोगकर्ता मैनुअल शामिल है (आरेख पृष्ठ 47 से शुरू होते हैं) और बरोज़ कैंडे मैनुअल। संकलन क्षेत्र में, बीएनएफ या इसके वेरिएंट जैसे पाठ्य प्रतिनिधित्व को आमतौर पर प्राथमिकता दी जाती है। बीएनएफ टेक्स्ट-आधारित है, और कंपाइलर लेखकों और पार्सर जेनरेटर द्वारा उपयोग किया जाता है। रेलरोड आरेख दृश्य हैं, और आम लोगों द्वारा अधिक आसानी से समझे जा सकते हैं, जिन्हें कभी-कभी ग्राफिक डिज़ाइन में शामिल किया जाता है। JSON डेटा विनिमय प्रारूप को परिभाषित करने वाला विहित स्रोत इन आरेखों के लोकप्रिय आधुनिक उपयोग का एक और उदाहरण प्रदान करता है।

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

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

उदाहरण
हम विभिन्न व्याकरण प्रारूपों में उदाहरण के रूप में अंकगणितीय अभिव्यक्तियों का उपयोग करते हैं।

बीएनएफ: ईबीएनएफ: एबीएनएफ:  अभिव्यक्ति = पद [+ अभिव्यक्ति] पद = कारक [* पद] कारक = स्थिर / परिवर्तनशील / (अभिव्यक्ति) चर = x / y / z स्थिरांक = 1*अंक अंक = 0/1/2/3/4/5/6/7/8/9  एबीएनएफ श्रेणियों का भी समर्थन करता है, उदा. DIGIT = %x30-39, लेकिन इसका उपयोग यहां अन्य उदाहरणों के साथ संगति के लिए नहीं किया गया है।

लाल (प्रोग्रामिंग भाषा) पार्स बोली:  लाल [शीर्षक: पार्स बोली] अभिव्यक्ति: [शब्द ऑप्ट [+ अभिव्यक्ति अवधि: [कारक विकल्प [* अवधि कारक: [स्थिर | परिवर्तनशील | ( अभिव्यक्ति  ) ] चर: [x | य | z ] स्थिरांक: [कुछ अंक] अंक: [ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 ]  यह प्रारूप श्रेणियों का भी समर्थन करता है, उदा. digit: charset [#"0" - #"9"], लेकिन इसका उपयोग यहां अन्य उदाहरणों के साथ संगति के लिए नहीं किया गया है।

उदाहरण व्याकरण के लिए एक संभावित वाक्यविन्यास आरेख नीचे है। जबकि पाठ-आधारित व्याकरणों के लिए वाक्यविन्यास भिन्न होता है, उन सभी के लिए वाक्यविन्यास आरेख समान हो सकता है क्योंकि यह एक धातुभाषा है।



यह भी देखें

 * पुनरावर्ती संक्रमण नेटवर्क
 * विस्तारित बैकस-नौर फॉर्म (ईबीएनएफ)

संदर्भ
Note: the first link is sometimes blocked by the server outside of its domain, but it is available on archive.org. The file was also mirrored at standardpascal.org.

बाहरी संबंध

 * JSON website including syntax diagrams
 * Generator from EBNF
 * From EBNF to a postscript file with the diagrams
 * EBNF Parser & Renderer
 * SQLite syntax diagram generator for SQL
 * Online Railroad Diagram Generator
 * Augmented Syntax Diagram (ASD) grammars
 * (ASD) Augmented Syntax Diagram Application Demo Site
 * SRFB Syntax Diagram representation by Function Basis + svg generation