programmers
इस किताब के लेखक से मंजूरी मिलने के उपरांत मैं कर रहा हूँ अनुवाद, सी के पहले साल के बच्चे इसे देखें
भूमिका
C कोई बड़ी भाषा नहीं है, और किसी बड़ी किताब से उसका भला भी नहीं होता।
--Brian W. Kernighan, Dennis M. Ritchie
दोस्तो, यहाँ शब्द बर्बाद करने का कोई फ़ायदा नहीं, चलिए सीधे C कोड में कूद पड़ते हैं:
E((ck?main((z?(stat(M,&t)?P+=a+'{'?0:3:
execv(M,k),a=G,i=P,y=G&255,
sprintf(Q,y/'@'-3?A(*L(V(%d+%d)+%d,0)
और फिर वे सब हँसी-खुशी रहने लगे। समाप्त।
अरे, यह क्या? आप कह रहे हैं कि C प्रोग्रामिंग भाषा वाली यह पूरी बात अभी भी साफ़ नहीं हुई?
तो सच कहूँ, तो मुझे ख़ुद भी पक्का नहीं पता कि ऊपर वाला कोड करता क्या है। यह 2001 की International Obfuscated C Code Contest की एक प्रविष्टि का टुकड़ा है। यह एक ग़ज़ब की प्रतियोगिता है, जिसमें प्रतिभागी ऐसा C कोड लिखने की कोशिश करते हैं जो ज़्यादा से ज़्यादा अपठनीय हो, और नतीजे अक्सर चौंकाने वाले निकलते हैं।
बुरी ख़बर यह है कि अगर आप इस पूरे मामले में नए हैं, तो आपको दिखने वाला हर C कोड शायद उलझा हुआ ही लगेगा! अच्छी ख़बर यह है कि यह हाल ज़्यादा दिन नहीं रहेगा।
इस गाइड में हमारी कोशिश यह रहेगी कि आपको पूरी तरह खोई हुई, घनघोर उलझन से निकालकर उस प्रबुद्ध आनंद तक पहुँचाएँ जो सिर्फ़ शुद्ध C प्रोग्रामिंग से ही मिल सकता है। तो चलिए, शुरू करते हैं।
पुराने ज़माने में C एक सरल भाषा हुआ करती थी। इस किताब की काफ़ी सारी सुविधाएँ, और लाइब्रेरी रेफ़रेंस वाले खंड की तो बहुत सारी सुविधाएँ, तब मौजूद ही नहीं थीं जब K&R ने 1988 में अपनी मशहूर किताब का दूसरा संस्करण लिखा था। फिर भी भाषा अपने मूल में छोटी ही है, और मुझे उम्मीद है कि मैंने इसे यहाँ इस तरह पेश किया है कि शुरुआत उसी सरल मूल से हो और फिर धीरे-धीरे बाहर की ओर बढ़े।
और इतनी छोटी, संक्षिप्त भाषा के लिए इतनी हास्यास्पद रूप से मोटी किताब लिखने का यही मेरा बहाना है।
पाठक वर्ग
यह गाइड मानकर चलती है कि आपके पास किसी दूसरी भाषा, जैसे Python, JavaScript, Java, Rust, Go, Swift वगैरह से, प्रोग्रामिंग का कुछ ज्ञान पहले से है। (Objective-C के डेवलपरों के लिए तो यह ख़ास तौर पर आसान रहेगा!)
हम मानकर चलेंगे कि आप जानते हैं कि वेरिएबल क्या होते हैं, लूप क्या करते हैं, फ़ंक्शन कैसे काम करते हैं, और इसी तरह की बाक़ी बातें।
अगर किसी वजह से आप ऐसे नहीं हैं, तो मैं बस इतनी उम्मीद कर सकता हूँ कि आपके पढ़ने के आनंद के लिए थोड़ा सच्चा मनोरंजन दे सकूँ। वाजिब तौर पर बस एक वादा मैं कर सकता हूँ: यह गाइड किसी सस्पेंस पर ख़त्म नहीं होगी... या शायद होगी?
