कुछ भाषाओं को ऐसा करने की अनुमति देता है और दूसरों को नहीं? अर्धविराम को अंत तक जोड़ने की एक समान प्रणाली क्यों नहीं रखी गई?
रॉबर्ट ने स्विफ्ट के बारे में एक अच्छा जवाब दिया, मैं सामान्य रूप से पार्सिंग के बारे में थोड़ा और जोड़ने की कोशिश करूँगा और अर्धविराम का उपयोग क्यों करूं या नहीं।
जब आप प्रोग्राम को संकलित करते हैं, तो आपकी स्रोत फ़ाइल को निष्पादन योग्य कोड में बदलने से पहले कई चरण होते हैं, पहले पढ़ने और पार्स करने में से एक । पार्सिंग के दौरान आपका कोड भाषा के व्याकरण के अनुसार वर्णों के अनुक्रम से एक संरचित प्रतिनिधित्व में बदल जाता है । इसके लिए यह आवश्यक है कि आपके कोड (चर, स्थिरांक, घोषणा आदि) को बनाने वाले तत्वों को किसी तरह पहचाना और अलग किया जाए। जब आप एक घोषणा करते हैं जैसे:
int someNumber = 0;
यह सिर्फ पात्रों का एक क्रम है जिसे किसी भी तरह "someNumber
int
0
अवधारणा बनाने के लिए" टाइप नामक चीज़ को चालू करना होगा और इसे असाइन करना होगा ।
इसके लिए यह पहचानना आवश्यक है कि वास्तव में कथन कहाँ से शुरू और समाप्त होता है। कल्पना कीजिए अगर आपके पास यह था:
int someNumber = 0;
int otherNumber = 1;
आपको यह जानना होगा कि वे दो अलग-अलग घोषणाएं हैं। ;
में सी जैसी भाषाओं तो पार्सर पात्रों जब तक यह एक पाता है पढ़ता है, और समझने के लिए सिर्फ एक बयान के रूप में पढ़ा गया था प्रयास, उस के लिए प्रयोग किया जाता है। यह अनुमति देता है, जैसा कि रॉबर्ट ने कहा, एक ही पंक्ति में कई कथन हैं, जैसे:
int someNumber = 0; int otherNumber = 1;
जिसका ठीक वैसा ही प्रभाव है जैसा कि उन्हें दो पंक्तियों में लिखना।
अन्य भाषाओं में, पायथन की तरह , आपको प्रत्येक कथन को एक अलग पंक्ति में रखने की उम्मीद है।
x = 3
if x < 10:
print 'x smaller than 10'
else:
print 'x is bigger than 10 or equal'
तो कोई जोड़ने की आवश्यकता नहीं है ;
, क्योंकि भाषा ही आपको उसी पंक्ति में कथन जोड़ने से रोकती है!
फिर भी अन्य भाषाएं, जैसे LISP या स्कीम , समूहबद्ध बयानों का एक बहुत अलग तरीका है (ठीक है, वे वास्तव में वक्तव्य नहीं हैं, लेकिन आइए अब इसके लिए इसे अनदेखा करें)। तो आपके पास हर चीज के लिए बस कोष्ठक है:
(define (do-stuff x)
(begin
(display (format "value: ~a" x))
x))
फिर से, आप की जरूरत नहीं है ;
सिर्फ इसलिए कि आप एक ही प्रतीकों (का उपयोग )
, (
बातों के लिए) है कि में अन्य भाषाओं हैं {
, }
, :
, आदि कोई है जो केवल लिस्प वाक्य रचना जानता है आप पूछ सकते हैं: क्यों आप की क्या ज़रूरत है ;
अपने बयान के अंत में ?
बस एक अजनबी उदाहरण जोड़ने के लिए: OCaml न केवल बयानों के अंत में एक अर्धविराम है ... यह दो है!
let rec fact x =
if x <= 1 then 1 else x * fact (x - 1);;
क्यों? मुझे नहीं पता। :)
विभिन्न भाषाओं को अलग-अलग उद्देश्यों और अलग-अलग दर्शन के साथ डिज़ाइन किया गया है। यदि सभी भाषाएँ समान वाक्य-विन्यास और रूढ़ियों को साझा करती हैं, तो वे शायद आपको केवल उसी तरह से काम करने की अनुमति देंगी।