कंपाइलर थ्योरी के परिप्रेक्ष्य से, जावैक कंपाइलर x = x+++++y
फॉर्म का बयान क्यों स्वीकार नहीं करेगा लेकिन x = x+++ ++y
स्वीकार करेगा?क्यों जावैक 'x = x +++++ y` स्वीकार नहीं करेगा?
8
A
उत्तर
8
क्योंकि ++
जावा lexer के लिए एक वैध टोकन है, बयान x+++ ++y
के रूप में टोकन में पार्स किए जाएंगे:
(x)(++)(++)(+)(y)
ऊपर:
(x)(++)(+)()(++)(y)
x+++++y
जबकि अमान्य में tokenized हो जाएगा अमान्य जावा है क्योंकि ++
ऑपरेटर केवल उन चीज़ों पर लागू किया जा सकता है जो संख्यात्मक चर हैं, जो (x++)
का परिणाम नहीं है। इस प्रकार का टोकनिंग maximal munch नामक अवधारणा का एक शानदार उदाहरण है।
से सबसे लंबे समय तक संभव अनुवाद प्रत्येक चरण में प्रयोग किया जाता है, भले ही परिणाम अंततः एक सही कार्यक्रम जबकि एक अन्य शाब्दिक अनुवाद होता नहीं है।
इस प्रकार, इनपुट वर्ण ए-बी टोकननाइज्ड (§3.5) को एक, -, बी, जो कि किसी भी व्याकरणिक रूप से सही प्रोग्राम का हिस्सा नहीं है, भले ही टोकननाइजेशन ए, -, - बी बी हो सकता है एक व्याकरणिक रूप से सही कार्यक्रम का हिस्सा।
संबंधित मुद्दे
- 1. रूबी अजीबता: x == y && [x, y] .uniq == [x, y]
- 2. x, y = getPos() बनाम (x, y) = getPos()
- 3. बेवकूफ, `x = = y`` x = x + y` से भिन्न परिणाम क्यों उत्पन्न करता है?
- 4. आर: x, y, z
- 5. "x <= y && x > = y && x! = Y" के साथ लूप अनंत कैसे बनाएं?
- 6. x + y = जावास्क्रिप्ट
- 7. यह कथन जावा x^= y^= x^= y में क्यों काम नहीं कर रहा है;
- 8. क्या Math.IEEERemainder (x, y) x% y के बराबर है?
- 9. `y = x = x + 1; 'अपरिभाषित व्यवहार है?
- 10. पायथन - [x, y]
- 11. x, y, और z
- 12. दूरी (x, y)
- 13. matrix.preScale (x, y)
- 14. एक्स-y = x + ¬y + 1 समस्या
- 15. पार्सिंग "*" - क्वांटिफायर {x, y} कुछ भी नहीं
- 16. रेंज (एन) [x: y: z]
- 17. : बनाम स्थिति x और y
- 18. जावास्क्रिप्ट में, क्या टाइप x == 'y' और टाइपो x === 'y' के बीच कोई अंतर है?
- 19. आप कैसे कहते हैं \ x -> y`?
- 20. dplyr :: mutate x/y = NA देता है, संक्षेप में x/y = वास्तविक संख्या
- 21. क्या कोई स्ट्रिंग हैश फ़ंक्शन है जो एच (x) + h (y) = h (x + y)
- 22. एक क्रमबद्ध सरणी में सभी जोड़े (x, y) खोजें ताकि x + y <z
- 23. UILabel सेटिंग x, y प्रोग्रामेटिक रूप से
- 24. आई ट्रैकिंग: छात्र ढूंढना (x, y)
- 25. सूची [x :: y] क्या करती है?
- 26. `x आयात y` बनाम से x.y आयात *`
- 27. असाइनमेंट अभिव्यक्ति के चर प्रारंभिकरण क्यों होता है [स्ट्रिंग x = (x = y)] संकलित करें?
- 28. पायथन [x, y] का अर्थ पाइथन
- 29. matrix_float4x4 से x y z space
- 30. क्यों नहीं है `Encoding.UTF8.GetBytes (Encoding.UTF8.GetString (x)) == x`
अच्छा जवाब। धन्यवाद। – DSF