લિસ્પ ઇન્ટરપ્રિટર (Lisp Interpreter) કેવી રીતે લખવું
જ્યારે તમે પ્રોગ્રામિંગ લેંગ્વેજ કેવી રીતે કામ કરે છે તે શીખો છો, ત્યારે તમે ઊંડું જ્ઞાન મેળવો છો. Python માં લિસ્પ ઇન્ટરપ્રિટર બનાવવું એ આ સમજવા માટેનો એક ક્લાસિક રસ્તો છે.
પીટર નોર્વિગ (Peter Norvig) એ 2010 માં આ વિષય પર એક પ્રખ્યાત માર્ગદર્શિકા લખી હતી. ઇન્ટરપ્રિટર ડિઝાઇનના સિદ્ધાંતો બદલાતા નથી. તમે શીખો છો કે કોડ કેવી રીતે ક્રિયામાં રૂપાંતરિત થાય છે.
ઇન્ટરપ્રિટર ત્રણ મુખ્ય તબક્કાઓ અનુસરે છે:
- લેક્સિકલ એનાલિસિસ (Lexical Analysis): તમે કાચા કોડને ટોકન્સમાં વિભાજિત કરો છો. આ શબ્દો અને પ્રતીકો જેવા નાના ટુકડાઓ છે.
- સિન્ટેક્ટિક એનાલિસિસ (Syntactic Analysis): તમે ટોકન્સને ટ્રી (tree) માં રૂપાંતરિત કરો છો. આ ટ્રી કોડનું માળખું દર્શાવે છે.
- ઇવેલ્યુએશન (Evaluation): તમે ઓપરેશન્સ ચલાવવા અને પરિણામ મેળવવા માટે ટ્રીનું અનુસરણ કરો છો.
Lisp આ પ્રક્રિયાને સરળ બનાવે છે. તે S-expressions નો ઉપયોગ કરે છે. આનો અર્થ એ છે કે બધું જ કૌંસની અંદર એક લિસ્ટ છે. પહેલી વસ્તુ સામાન્ય રીતે ફંક્શન હોય છે. બાકીના આર્ગ્યુમેન્ટ્સ (arguments) હોય છે.
શરૂઆત કરવા માટે, તમે (+ 10 (* 2 5)) જેવા કોડને ટોકન્સમાં રૂપાંતરિત કરો છો.
તમારા ટોકન્સ આ રીતે દેખાશે: '(', '+', '10', '(', '*', '2', '5', ')', ')'
આ મુખ્ય મિકેનિક્સનો અભ્યાસ કરવાથી તમે દરરોજ તમારા સાધનોનો ઉપયોગ કેવી રીતે કરો છો તેમાં ફેરફાર આવશે.