2010-11-24 8 views
5

मैं जानना चाहता हूं कि PHP जैसी भाषा कैसे बनाएं। सर्वर को PHP फ़ाइल का अनुवाद करने का तरीका कैसे पता चलता है? यह कैसे काम करता है? मैं इसे शैक्षणिक उद्देश्यों के लिए करना चाहता हूं। इको इत्यादि जैसी बुनियादी सुविधाओं के साथ एक साधारण भाषामैं PHP जैसी भाषा कैसे बना सकता हूं और यह कैसे काम करता है?

+2

कोई पूर्ण उत्तर नहीं है, लेकिन आप PHP के स्रोत कोड को php.net से डाउनलोड कर सकते हैं। यह सी –

+1

में लिखा गया है http://stackoverflow.com/questions/366998/good-resources-on-programming-language- डिज़ाइन प्रोग्रामिंग भाषा को डिजाइन करने के बारे में कुछ संकेत देता है –

उत्तर

4

मूलभूत बातों में, जब वेबसर्वर को php फ़ाइल को संसाधित करने का अनुरोध मिलता है तो यह इस अनुरोध को php प्रोसेसर में अनुवाद करता है, यह एक मॉड्यूल (जैसे app में php.so) या सेवा हो सकता है (php-cgi की तरह)। सेवा या मॉड्यूल php स्क्रिप्ट को मशीन कोड में संकलित करता है, इसे निष्पादित करता है और सर्वर को अपना काम का परिणाम देता है। आप http://php.net से PHP स्रोत कोड डाउनलोड कर सकते हैं। स्रोत कोड पार्सर, thanslator, संकलक और अन्य घटकों मशीन कोड

+0

वेबसर्वर स्वचालित रूप से प्रक्रिया को कैसे जानता है यह निवेदन। – liamzebedee

+0

Throu कॉन्फ़िगरेशन फ़ाइल। उदाहरण के लिए apache config AddHandler php5-script .php AddType टेक्स्ट/html .php – Vadyus

+0

यह गलत है। Php.net पर PHP का संस्करण Zend VM द्वारा निष्पादन के लिए बाइटकोड को संकलित करता है। PHP आमतौर पर या तो इंटरमीडिएट कोड के लिए व्याख्या या संकलित किया जाता है। मशीन कोड के लिए संकलन संभव है लेकिन नियम नहीं है। –

2

यह एक बहुत बड़ा सवाल यह है कि के रूप में php स्क्रिप्ट को निष्पादित करने के लिए आवश्यक शामिल हैं। और न एक है जो वास्तव में यहाँ जवाब दिया जा सकता है, लेकिन कुछ संकेत आप आरंभ करने के लिए ...

पीएचपी अपनी अंदरूनी कामकाज में से कुछ को उजागर करता है - अगर आप पर एक नजर है:

<?php 

$srctokens=token_get_all(file_get_contents(__FILE__)); 
print "<pre>\n"; 
foreach ($srctokens as $tok) { 
    print token_name($tok[0]) . ' -&gt; ' . $tok[1]; 
} 
?> 

आप करेंगे देखें कि यह कोड को 'शब्दों' में विभाजित करता है और प्रत्येक को मेटा-डेटा निर्दिष्ट करता है (क्या यह एक फ़ंक्शन नाम, एक चर, एक ऑपरेटर ...) है।

यह तो एक वृक्ष संरचना, उदा में इस बनाता है एक 'अगर' कथन में तीन बच्चे नोड्स हो सकते हैं - मूल्यांकन करने के लिए एक अभिव्यक्ति (जो स्वयं के बच्चे नोड्स होंगी), अभिव्यक्ति सत्य होने पर मूल्यांकन करने के लिए कुछ कोड, और अभिव्यक्ति गलत होने पर मूल्यांकन करने के लिए कुछ कोड।

आम तौर पर यह निर्मित कार्यों का एक सेट का उपयोग बाहर से डेटा में पढ़ने के लिए और बाहर की दुनिया के लिए डेटा पुश करने के लिए होगा।

Wikipedia या गूगल आमतौर पर सामान आप नहीं जानते के बारे में जानने के लिए अच्छा प्रारंभिक बिंदु हैं।

यह ध्यान देने योग्य है कि इसकी व्याख्या की गई भाषा, eval() या create_function() (या केवल अस्थायी फ़ाइलों का उपयोग करके) PHP डेटास्ट्राक्चर से निष्पादन योग्य कोड बनाने के लिए आसान है। वास्तव में आप एक संरचित पुनर्लेखन प्रणाली को भी कार्यान्वित कर सकते हैं जैसे कि मूल डेटा PHP कोड की तरह कुछ भी नहीं दिखता है। जैसे lolcode

लेकिन तुम बहुत सावधान है कि आप कोई है जो इसे दुरुपयोग हो सकता है करने के लिए इस तंत्र के संपर्क में न होने की जरूरत है।

HTH

4

फूट डालो कम से कम दो शीर्ष स्तर भागों में अपने कार्य: सिर्फ एक और प्रोग्रामिंग भाषा के रूप में

  1. पीएचपी - यदि आप एक शाब्दिक विश्लेषक, पार्सर और दुभाषिया की जरूरत है।

  2. पुस्तकालय और अपाचे/बिलाव likt वेब सर्वर के लिए मॉड्यूल पीएचपी साथ Inteface करने के लिए।

+1

3) एक सीजीआई-बिन (या विकल्प) मॉड्यूल या एक अपाचे मॉड्यूल – Quamis

2

आप इसे PHP में भी लिख सकते हैं, जैसे BobX। कृपया ध्यान दें, बॉबक्स वास्तव में का उदाहरण है।

+0

जो यादें वापस लाता है ... –

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

  • कोई संबंधित समस्या नहीं^_^