2009-03-13 11 views
5

मैं स्क्रिप्ट की अवधारणा से उलझन में हूं।क्या स्क्रिप्टिंग भाषाओं में लिखी गई सभी स्क्रिप्ट हैं?

क्या मैं कह सकता हूं कि मेकफ़ाइल एक प्रकार की स्क्रिप्ट है?

क्या सी या जावा में लिखी गई स्क्रिप्ट हैं?

उत्तर

1

यह आपकी स्क्रिप्ट की परिभाषा पर निर्भर करता है। मेरे लिए, एक स्क्रिप्ट एक छोटा सा उद्देश्य हो सकता है जिसे आप एक छोटे से उद्देश्य के लिए लिखते हैं। वे आमतौर पर व्याख्या की गई भाषाओं में लिखे जाते हैं। हालांकि, संकलित भाषा में एक छोटे से प्रोग्राम को लिखने से आपको रोक नहीं है।

7

मैं विस्तृत स्पष्टीकरण के लिए Wikipedia का उल्लेख करता हूं।

"स्क्रिप्ट" आमतौर पर कोड का एक टुकड़ा या निर्देशों का सेट संदर्भित करता है जो किसी अन्य प्रोग्राम के संदर्भ में चलता है। वे आमतौर पर सॉफ्टवेयर का एक स्टैंडअलोन निष्पादन योग्य टुकड़ा नहीं हैं। इसलिए में (मानक) सी लिखा प्रोग्रामों को आम तौर विचार नहीं किया जाएगा

Makefiles, एक स्क्रिप्ट है कि "कर" द्वारा चलाया जाता है, या MSBuild, आदि

सी एक निष्पादन या एक पुस्तकालय में संकलित किए जाने की जरूरत हैं स्क्रिप्ट। (exceptions हैं, लेकिन यह सी के साथ काम करने का सामान्य तरीका नहीं है।

जावा (और विशेष रूप से .NET) थोड़ा अलग है। एक सामान्य जावा प्रोग्राम संकलित और निष्पादन योग्य के रूप में चलाया जाता है, लेकिन यह एक भूरा क्षेत्र है। जावा में लिखे गए "स्क्रिप्ट" के रनटाइम संकलन करना और इसे निष्पादित करना संभव है।

+0

कुछ ANSI C दुभाषिए हैं (यह बुरा स्पेगेटी कोड के लिए व्यंग्य किया गया था), दुर्भाग्य से वे मालिकाना हैं। –

+0

सच - अच्छा बिंदु। मैं यह इंगित करने की कोशिश कर रहा था कि यह सी के साथ काम करने का मानक तरीका नहीं है, लेकिन अपवाद हैं। मैं सही करने के लिए संपादित करेंगे। –

+0

टीसीसी भी है, एक पुस्तकालय जो सी स्रोत टेक्स्ट संकलित कर सकता है (सी 99 अनुपालन के लिए लक्ष्य) और कॉल करने के लिए उपयुक्त कार्यों में वापसी पॉइंटर्स। यदि आप हिम्मत करते हैं तो http://bellard.org/tcc/ देखें ;-) यहां तक ​​कि लुआ बाध्यकारी भी है! – RBerteig

3

एक सामान्य अर्थ में "स्क्रिप्ट" शब्द को उस कोड से संबंधित करता है जो तैनात किया गया है और लेक्सिकल प्रतिनिधित्व से भागने की उम्मीद है। जैसे ही आप कोड संकलित करते हैं और कोड के बजाए परिणामी आउटपुट वितरित करते हैं, यह एक "स्क्रिप्ट" बन जाता है।

किसी स्क्रिप्ट का संक्षिप्तकरण और अस्पष्टता संकलित नहीं है और परिणाम अभी भी एक स्क्रिप्ट पर विचार कर रहा है।

0

एक स्क्रिप्ट मूल रूप से किसी भी भाषा या शैल में एक गैर-संकलित पाठ फ़ाइल है, जिसमें एक दुभाषिया है जिसका उपयोग कुछ प्रक्रिया स्वचालित करने के लिए किया जाता है, या कमांड की सूची, जिसे आप बार-बार करते हैं। लिपियों का उपयोग अक्सर फ़ाइलों का बैक अप लेने, दिनचर्या संकलित करने, svn commits, खोल प्रारंभिकरण, आदि, विज्ञापन infinitum के लिए किया जाता है। एक लाख और एक चीजें हैं जो आप एक स्क्रिप्ट के साथ कर सकते हैं कि एक निष्पादन योग्य (स्थापना के साथ पूर्ण, आदि) बस के लिए अधिक होगा।

+0

ऐसी पटकथा भाषाएं हैं जो संकलन करते हैं, जैसे कि पाइथन। दिए गए foo.py, आप foo.pyc पर संकलित कर सकते हैं, हालांकि fpy.py का उपयोग करने से रोकने के लिए कुछ भी नहीं है और .pyc से परेशान नहीं है। –

+0

सहमत है, हालांकि इसे संकलित करना व्यर्थ तरफ थोड़ा सा होगा;) – hmcclungiii

1

मेरे लिए एक स्क्रिप्ट में एकल फ़ाइल शामिल है। और वह फ़ाइल उस कार्य को करने में सक्षम होना चाहिए जिसके लिए स्क्रिप्ट को मध्यवर्ती चरणों के साथ लिखा गया था।

तो ये ठीक होगा:

bash backup_my_home_dir.sh 
perl munge_some_text.pl 
python download_url.py 

लेकिन इस योग्य नहीं हैं, भले ही फ़ाइल छोटा है:

javac HandyUtility.java 
java HandyUtility 
1

शब्द 'पटकथा' के एक काफी व्यापक स्पेक्ट्रम कवर कर सकते हैं गतिविधियों। imperative में प्रोग्रामिंग होने वाले उदाहरणों में वीबीस्क्रिप्ट, पायथन, या शैल स्क्रिप्ट जैसे सीएसएच या बैश, या declaritive languages जैसे एक्सएसएल, एसक्यूएल या एरलांग में एक कार्य व्यक्त करना शामिल है।

कुछ पटकथा भाषाएं Domain Specific Languages (DSL) के रूप में संदर्भित श्रेणी में आती हैं।डीएसएल के अच्छे उदाहरण हैं 'मेकफ़ाइल, कई अन्य प्रकार की कॉन्फ़िगरेशन फाइलें, एसक्यूएल, एक्सएसएल और इसी तरह।

जो आप पूछ रहे हैं वह काफी व्यक्तिपरक है, एक व्यक्ति की लिपि एक और व्यक्ति का आवेदन है। यदि आपकी स्क्रिप्टिंग की व्याख्या का अर्थ है कि स्क्रिप्टिंग भाषाओं का उपयोग करने से उपयोगकर्ता को पारंपरिक संकलन -> लिंक -> रन चक्र का पालन करने के लिए मजबूर नहीं करना चाहिए, तो आप राय बना सकते हैं कि आप सी या जावा में 'स्क्रिप्ट' नहीं लिख सकते हैं।

0

मैं एफ # में स्क्रिप्ट लिखने। हाल ही में डेटा के कुछ सेट में लेने के लिए एक छोटा डेटा लोडर है, इसे थोड़ा सा प्रोसेसिंग करें, और इसे डीबी में डंप करें। ~ 40 लाइनें कोई अलग संकलन कदम की आवश्यकता नहीं है; मैं सिर्फ एफ # इंटरएक्टिव इसे सीधे चला सकता हूं।

लाभ यह है कि मुझे एक महान आईडीई के साथ पूरी तरह से संचालित भाषा मिलती है और सभी सुरक्षा स्थैतिक जांच प्रदान करती है, जबकि अनुमान इसे जावा, सी # जैसे वर्बोज नहीं मिलता है।

तो, यह एक ऐसी भाषा है जो एक उचित सभ्य प्रकार प्रणाली, संकलन और जांच प्रदान करती है, का अर्थ नहीं है, लेकिन स्क्रिप्टिंग के लिए ठीक काम करता है।

1

हाँ, यह जावा में पटकथा करना संभव नहीं है। मैं इसे कई बार :)
देखा है

संबंधित मुद्दे