લિસ્પ ઇન્ટરપ્રિટર (Lisp Interpreter) કેવી રીતે લખવું

જ્યારે તમે પ્રોગ્રામિંગ લેંગ્વેજ કેવી રીતે કામ કરે છે તે શીખો છો, ત્યારે તમે ઊંડું જ્ઞાન મેળવો છો. Python માં લિસ્પ ઇન્ટરપ્રિટર બનાવવું એ આ સમજવા માટેનો એક ક્લાસિક રસ્તો છે.

પીટર નોર્વિગ (Peter Norvig) એ 2010 માં આ વિષય પર એક પ્રખ્યાત માર્ગદર્શિકા લખી હતી. ઇન્ટરપ્રિટર ડિઝાઇનના સિદ્ધાંતો બદલાતા નથી. તમે શીખો છો કે કોડ કેવી રીતે ક્રિયામાં રૂપાંતરિત થાય છે.

ઇન્ટરપ્રિટર ત્રણ મુખ્ય તબક્કાઓ અનુસરે છે:

  • લેક્સિકલ એનાલિસિસ (Lexical Analysis): તમે કાચા કોડને ટોકન્સમાં વિભાજિત કરો છો. આ શબ્દો અને પ્રતીકો જેવા નાના ટુકડાઓ છે.
  • સિન્ટેક્ટિક એનાલિસિસ (Syntactic Analysis): તમે ટોકન્સને ટ્રી (tree) માં રૂપાંતરિત કરો છો. આ ટ્રી કોડનું માળખું દર્શાવે છે.
  • ઇવેલ્યુએશન (Evaluation): તમે ઓપરેશન્સ ચલાવવા અને પરિણામ મેળવવા માટે ટ્રીનું અનુસરણ કરો છો.

Lisp આ પ્રક્રિયાને સરળ બનાવે છે. તે S-expressions નો ઉપયોગ કરે છે. આનો અર્થ એ છે કે બધું જ કૌંસની અંદર એક લિસ્ટ છે. પહેલી વસ્તુ સામાન્ય રીતે ફંક્શન હોય છે. બાકીના આર્ગ્યુમેન્ટ્સ (arguments) હોય છે.

શરૂઆત કરવા માટે, તમે (+ 10 (* 2 5)) જેવા કોડને ટોકન્સમાં રૂપાંતરિત કરો છો.

તમારા ટોકન્સ આ રીતે દેખાશે: '(', '+', '10', '(', '*', '2', '5', ')', ')'

આ મુખ્ય મિકેનિક્સનો અભ્યાસ કરવાથી તમે દરરોજ તમારા સાધનોનો ઉપયોગ કેવી રીતે કરો છો તેમાં ફેરફાર આવશે.

સ્ત્રોત: https://dev.to/kelvin_kariuki_20f4bec616/developer-take-on-how-to-write-a-lisp-interpreter-in-python-2010-22ca