𝗛𝗼𝘄 𝗧𝗼 𝗪𝗿𝗶𝘁𝗲 𝗔 𝗟𝗶𝘀𝗽 𝗜𝗻𝘁𝗲𝗿𝗽𝗿𝗲𝘁𝗲𝗿
ਜਦੋਂ ਤੁਸੀਂ ਸਿੱਖਦੇ ਹੋ ਕਿ ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾਵਾਂ ਕਿਵੇਂ ਕੰਮ ਕਰਦੀਆਂ ਹਨ, ਤਾਂ ਤੁਸੀਂ ਡੂੰਘਾ ਗਿਆਨ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹੋ। Python ਵਿੱਚ ਇੱਕ Lisp ਇੰਟਰਪ੍ਰੀਟਰ ਬਣਾਉਣਾ ਇਸ ਨੂੰ ਸਮਝਣ ਦਾ ਇੱਕ ਕਲਾਸਿਕ ਤਰੀਕਾ ਹੈ।
Peter Norvig ਨੇ 2010 ਵਿੱਚ ਇਸ ਵਿਸ਼ੇ 'ਤੇ ਇੱਕ ਮਸ਼ਹੂਰ ਗਾਈਡ ਲਿਖੀ ਸੀ। ਇੰਟਰਪ੍ਰੀਟਰ ਡਿਜ਼ਾਈਨ ਦੇ ਸਿਧਾਂਤ ਨਹੀਂ ਬਦਲਦੇ। ਤੁਸੀਂ ਸਿੱਖਦੇ ਹੋ ਕਿ ਕੋਡ ਕਿਵੇਂ ਕਾਰਵਾਈ (action) ਵਿੱਚ ਬਦਲਦਾ ਹੈ।
ਇੱਕ ਇੰਟਰਪ੍ਰੀਟਰ ਤਿੰਨ ਮੁੱਖ ਪੜਾਵਾਂ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ:
- Lexical Analysis: ਤੁਸੀਂ ਕੱਚੇ ਕੋਡ ਨੂੰ ਟੋਕਨਾਂ (tokens) ਵਿੱਚ ਤੋੜਦੇ ਹੋ। ਇਹ ਸ਼ਬਦਾਂ ਅਤੇ ਚਿੰਨ੍ਹਾਂ ਵਾਂਗ ਛੋਟੇ ਟੁਕੜੇ ਹੁੰਦੇ ਹਨ।
- Syntactic Analysis: ਤੁਸੀਂ ਟੋਕਨਾਂ ਨੂੰ ਇੱਕ ਟ੍ਰੀ (tree) ਵਿੱਚ ਬਦਲਦੇ ਹੋ। ਇਹ ਟ੍ਰੀ ਕੋਡ ਦੀ ਬਣਤਰ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ।
- Evaluation: ਤੁਸੀਂ ਕਾਰਜਾਂ (operations) ਨੂੰ ਚਲਾਉਣ ਅਤੇ ਨਤੀਜਾ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਟ੍ਰੀ ਦੀ ਪਾਲਣਾ ਕਰਦੇ ਹੋ।
Lisp ਇਸ ਨੂੰ ਸਰਲ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ S-expressions ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਹਰ ਚੀਜ਼ ਬਰੈਕਟਾਂ (parentheses) ਦੇ ਅੰਦਰ ਇੱਕ ਲਿਸਟ ਹੈ। ਪਹਿਲੀ ਆਈਟਮ ਆਮ ਤੌਰ 'ਤੇ ਫੰਕਸ਼ਨ ਹੁੰਦੀ ਹੈ। ਬਾਕੀ ਆਰਗੂਮੈਂਟਸ (arguments) ਹੁੰਦੇ ਹਨ।
ਸ਼ੁਰੂ ਕਰਨ ਲਈ, ਤੁਸੀਂ (+ 10 (* 2 5)) ਵਰਗੇ ਕੋਡ ਨੂੰ ਟੋਕਨਾਂ ਵਿੱਚ ਬਦਲਦੇ ਹੋ।
ਤੁਹਾਡੇ ਟੋਕਨ ਇਸ ਤਰ੍ਹਾਂ ਦਿਖਾਈ ਦਿੰਦੇ ਹਨ: '(', '+', '10', '(', '*', '2', '5', ')', ')'
ਇਹਨਾਂ ਮੁੱਖ ਮਕੈਨਿਕਸ ਦਾ ਅਧਿਐਨ ਕਰਨ ਨਾਲ ਤੁਹਾਡੇ ਰੋਜ਼ਾਨਾ ਦੇ ਟੂਲਸ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦਾ ਤਰੀਕਾ ਬਦਲ ਜਾਂਦਾ ਹੈ।