पायथन का विकास 1980 के दशक के उत्तरार्ध में डच कंप्यूटर वैज्ञानिक गुइडो वैन रोसुम (Guido van Rossum) द्वारा नीदरलैंड के Centrum Wiskunde & Informatica (CWI) में प्रारंभ किया गया था। इसका पहला आधिकारिक संस्करण फरवरी 1991 में जारी हुआ। पायथन की मूल अवधारणा कोड की सरलता, स्पष्ट सिंटैक्स और बहु-प्रतिमान (Multi-paradigm: प्रक्रियात्मक, ऑब्जेक्ट-उन्मुख एवं कार्यात्मक) प्रोग्रामिंग का समर्थन करना है।
- हाइब्रिड अनुवाद प्रणाली (Hybrid Execution): पायथन विशुद्ध संकलित (C/C++ की भांति) या विशुद्ध रूप से पंक्ति-दर-पंक्ति व्याख्यायित भाषा नहीं है। मानक CPython सोर्स कोड को पहले एक मध्यवर्ती बाइटकोड (.pyc) में संकलित करता है, जिसे बाद में वर्चुअल मशीन निष्पादित करती है।
- डायनामिक टाइपिंग (Dynamically Typed): प्रोग्रामर को चरों के प्रकार (int, float आदि) पहले से घोषित नहीं करने पड़ते; रनटाइम पर मान के आधार पर प्रकार स्वतः निर्धारित होता है।
- स्वचालित मेमोरी प्रबंधन: रेफरेंस काउंटिंग (Reference Counting) एवं चक्रीय गारबेज कलेक्टर की सहायता से अप्रयुक्त मेमोरी स्वतः मुक्त हो जाती है।
- बैटरिज इनक्लूडेड (Batteries Included): गणितीय कार्यों, फाइल सिस्टम, नेटवर्किंग एवं डेटा स्ट्रक्चर्स हेतु समृद्ध अंतर्निहित लाइब्रेरी उपलब्ध रहती है।
| चरण | घटक / प्रक्रिया | कार्यप्रणाली एवं परिणाम |
|---|---|---|
| 1. लेक्सिकल विश्लेषण | टोकनाइज़र (Tokenizer) | सोर्स कोड को मूल टोकन्स में तोड़ता है (कीवर्ड्स, पहचानकर्ता, ऑपरेटर, लिटरल एवं इंडेंटेशन टोकन्स INDENT/DEDENT)। |
| 2. सिंटैक्टिक पार्सिंग | पार्सर (Parser) | व्याकरण की वैधता जांचकर मेमोरी में एब्सट्रैक्ट सिंटैक्स ट्री (AST) बनाता है। किसी भी अमान्य सिंटैक्स पर SyntaxError इसी चरण में उठता है। |
| 3. बाइटकोड संकलन | कोड जनरेटर | AST से प्लेटफॉर्म-स्वतंत्र बाइटकोड (.pyc) तैयार करता है जो pycache फोल्डर में सुरक्षित हो जाता है। |
| 4. वर्चुअल मशीन रनटाइम | पायथन वर्चुअल मशीन (PVM) | एक स्टैक-आधारित इंटरप्रेटर लूप जो बाइटकोड निर्देशों को पंक्तिबद्ध रूप से पढ़कर प्रोसेसर के मशीन निर्देशों में बदलता है। |
पायथन में कोड ब्लॉक को दर्शाने के लिए कर्ली ब्रैकेट्स {} का प्रयोग नहीं होता; इसके स्थान पर इंडेंटेशन (खाली स्थान) अनिवार्य है:
- इंडेंटेशन नियम (PEP 8): प्रत्येक स्तर के ब्लॉक हेतु ठीक 4 स्पेस (Spaces) का उपयोग मानक माना जाता है। टैब और स्पेस का मिश्रण वर्जित है (पायथन 3 में इससे
TabErrorउत्पन्न होता है)। - चरों के नामकरण के नियम (Identifiers): नाम वर्णमाला (A-Z, a-z) अथवा अंडरस्कोर (
_) से ही प्रारंभ होना चाहिए। यह केस-संवेदी (Case-sensitive) है (उदा.Totalऔरtotalअलग हैं)। आरक्षित कीवर्ड्स (उदा.def, class, if, return) का चर के रूप में उपयोग वर्जित है। - टिप्पणियां (Comments) एवं डॉकस्ट्रिंग: एकल पंक्ति टिप्पणी हेतु
#तथा बहु-पंक्ति दस्तावेज़ीकरण हेतु ट्रिपल कोट्स"""..."""का प्रयोग किया जाता है, जिसे.docसे पढ़ा जा सकता है।