Syntax (programming languages)
કોમ્પ્યુટર વિજ્ઞાનમાં, કોમ્પ્યુટર ભાષાનું વાક્યરચના એ એવા નિયમો છે જે તે ભાષામાં યોગ્ય રીતે સંરચિત નિવેદનો અથવા અભિવ્યક્તિઓ તરીકે ગણવામાં આવતા પ્રતીકોના સંયોજનોને વ્યાખ્યાયિત કરે છે. આ પ્રોગ્રામિંગ ભાષાઓ, જ્યાં દસ્તાવેજ સ્રોત કોડનું પ્રતિનિધિત્વ કરે છે અને માર્કઅપ ભાષાઓ, જ્યાં દસ્તાવેજ ડેટાનું પ્રતિનિધિત્વ કરે છે, બંનેને લાગુ પડે છે. ભાષાનું વાક્યરચના તેના સપાટી સ્વરૂપને વ્યાખ્યાયિત કરે છે. લખાણ આધારિત કોમ્પ્યુટર ભાષાઓ અક્ષરોના ક્રમ પર આધારિત હોય છે, જ્યારે વિઝ્યુઅલ પ્રોગ્રામિંગ ભાષાઓ અવકાશી લેઆઉટ અને પ્રતીકો વચ્ચેના જોડાણો (જે લખાણ આધારિત અથવા ગ્રાફિકલ હોઈ શકે છે) પર આધારિત હોય છે. વાક્યાત્મક રીતે અમાન્ય હોય તેવા દસ્તાવેજોમાં વાક્યરચના ભૂલ હોવાનું કહેવાય છે. ભાષાના વાક્યરચનાની રચના કરતી વખતે, ડિઝાઇનર આ ઉદાહરણોમાંથી સામાન્ય નિયમો શોધવાનો પ્રયાસ કરતા પહેલા, કાનૂની અને ગેરકાયદેસર બંને શબ્દમાળાઓના ઉદાહરણો લખીને શરૂઆત કરી શકે છે. વાક્યરચના તેથી કોડના સ્વરૂપનો સંદર્ભ આપે છે, અને શબ્દાર્થ સાથે વિરોધાભાસી છે-અર્થ. કોમ્પ્યુટર ભાષાઓની પ્રક્રિયામાં, સિમેન્ટીક પ્રક્રિયા સામાન્ય રીતે વાક્યરચના પ્રક્રિયા પછી આવે છે; જો કે, કેટલાક કિસ્સાઓમાં, સંપૂર્ણ વાક્યરચના વિશ્લેષણ માટે સિમેન્ટીક પ્રક્રિયા જરૂરી છે, અને આ એકસાથે અથવા એક સાથે કરવામાં આવે છે. કમ્પાઇલરમાં, વાક્યરચના વિશ્લેષણમાં ફ્રન્ટએન્ડનો સમાવેશ થાય છે, જ્યારે સિમેન્ટીક વિશ્લેષણમાં બેકએન્ડ (અને મધ્યમ અંત, જો આ તબક્કાને અલગ કરવામાં આવે તો) નો સમાવેશ થાય છે. વાક્યરચનાના સ્તરો કમ્પ્યુટર ભાષાના વાક્યરચનાને સામાન્ય રીતે ત્રણ સ્તરોમાં અલગ પાડવામાં આવે છેઃ શબ્દો-શાબ્દિક સ્તર, અક્ષરો કેવી રીતે ટોકન્સ બનાવે છે તે નિર્ધારિત કરે છે; શબ્દસમૂહો-વ્યાકરણનું સ્તર, ટૂંકમાં કહીએ તો, ટોકન્સ કેવી રીતે શબ્દસમૂહો બનાવે છે તે નિર્ધારિત કરે છે; સંદર્ભ-નક્કી કરે છે કે કયા પદાર્થો અથવા ચલ નામો સંદર્ભ આપે છે, જો પ્રકારો માન્ય છે, વગેરે. આ રીતે ભેદ પાડવાથી મોડ્યુલારિટી મળે છે, જે દરેક સ્તરને અલગથી અને ઘણીવાર સ્વતંત્ર રીતે વર્ણવવા અને પ્રક્રિયા કરવાની મંજૂરી આપે છે. પ્રથમ, લેક્સર અક્ષરોના રેખીય ક્રમને ટોકન્સના રેખીય ક્રમમાં ફેરવે છે; આને "લેક્સિકલ એનાલિસિસ" અથવા "લેક્સિંગ" તરીકે ઓળખવામાં આવે છે. બીજું, પાર્સર ટોકન્સના રેખીય ક્રમને અધિક્રમિક વાક્યરચના વૃક્ષમાં ફેરવે છે; ટૂંકમાં કહીએ તો આ "પાર્સિંગ" તરીકે ઓળખાય છે. ત્રીજું, સંદર્ભિત વિશ્લેષણ નામોનું નિરાકરણ કરે છે અને પ્રકારોની તપાસ કરે છે. આ મોડ્યુલરિટી કેટલીકવાર શક્ય છે, પરંતુ ઘણી વાસ્તવિક-વિશ્વની ભાષાઓમાં પહેલાનું પગલું પછીના પગલા પર આધાર રાખે છે-ઉદાહરણ તરીકે, સીમાં લેક્સર હેક એ છે કારણ કે ટોકનાઇઝેશન સંદર્ભ પર આધારિત છે. આ કિસ્સાઓમાં પણ, વાક્યરચના વિશ્લેષણને ઘણીવાર આ આદર્શ મોડેલના અંદાજ તરીકે જોવામાં આવે છે. પદચ્છેદન તબક્કાને બે ભાગોમાં વિભાજિત કરી શકાય છેઃ પાર્સ ટ્રી અથવા "કોંક્રિટ સિન્ટેક્સ ટ્રી", જે વ્યાકરણ દ્વારા નક્કી થાય છે, પરંતુ સામાન્ય રીતે વ્યવહારુ ઉપયોગ માટે ખૂબ વિગતવાર હોય છે, અને એબ્સ્ટ્રેક્ટ સિન્ટેક્સ ટ્રી (એએસટી), જે તેને સરળ બનાવે છે. એ. એસ. ટી. અને સંદર્ભિત વિશ્લેષણના પગલાંને સિમેન્ટીક વિશ્લેષણનું એક સ્વરૂપ ગણી શકાય, કારણ કે તેઓ વાક્યરચનામાં અર્થ અને અર્થઘટન ઉમેરી રહ્યા છે, અથવા વૈકલ્પિક રીતે અનૌપચારિક, વાક્યરચના નિયમોના મેન્યુઅલ અમલીકરણ તરીકે જે ઔપચારિક રીતે વર્ણવવા અથવા અમલમાં મૂકવા માટે મુશ્કેલ અથવા અણઘડ હશે. આ સ્તરો સામાન્ય રીતે ચોમ્સ્કી પદાનુક્રમના સ્તરોને અનુરૂપ હોય છે. શબ્દો નિયમિત ભાષામાં હોય છે, જે શાબ્દિક વ્યાકરણમાં નિર્દિષ્ટ હોય છે, જે પ્રકાર-3 વ્યાકરણ છે, જે સામાન્ય રીતે નિયમિત અભિવ્યક્તિઓ તરીકે આપવામાં આવે છે. શબ્દસમૂહો સંદર્ભ-મુક્ત ભાષા (સી. એફ. એલ.) માં હોય છે, સામાન્ય રીતે એક નિર્ધારક સંદર્ભ-મુક્ત ભાષા (ડી. સી. એફ. એલ.), જે શબ્દસમૂહ માળખા વ્યાકરણમાં ઉલ્લેખિત હોય છે, જે પ્રકાર-2 વ્યાકરણ છે, જે સામાન્ય રીતે બેકસ-નૌર સ્વરૂપ (બી. એન. એફ.) માં ઉત્પાદન નિયમો તરીકે આપવામાં આવે છે. શબ્દસમૂહ વ્યાકરણને ઘણીવાર સંપૂર્ણ સંદર્ભ-મુક્ત વ્યાકરણ કરતાં વધુ મર્યાદિત વ્યાકરણમાં નિર્દિષ્ટ કરવામાં આવે છે, જેથી તેમને વિશ્લેષણ કરવું સરળ બને છે; જ્યારે એલ. આર. પાર્સર કોઈપણ ડી. સી. એફ. એલ. ને રેખીય સમયમાં વિશ્લેષણ કરી શકે છે, ત્યારે સરળ એલ. એ. એલ. આર. પાર્સર અને તેનાથી પણ સરળ એલ. એલ. પાર્સર વધુ કાર્યક્ષમ હોય છે, પરંતુ માત્ર એવા વ્યાકરણનું વિશ્લેષણ કરી શકે છે જેમના ઉત્પાદન નિયમો મર્યાદિત હોય. સૈદ્ધાંતિક રીતે, સંદર્ભિત માળખું સંદર્ભ-સંવેદનશીલ વ્યાકરણ દ્વારા વર્ણવી શકાય છે, અને લક્ષણ વ્યાકરણ જેવા માધ્યમો દ્વારા આપમેળે વિશ્લેષણ કરી શકાય છે, જોકે, સામાન્ય રીતે, આ પગલું જાતે જ, નામ રીઝોલ્યુશન નિયમો અને પ્રકાર તપાસ દ્વારા કરવામાં આવે છે, અને પ્રતીક કોષ્ટક દ્વારા અમલમાં મૂકવામાં આવે છે જે દરેક અવકાશ માટે નામો અને પ્રકારોને સંગ્રહિત કરે છે. એવા સાધનો લખવામાં આવ્યા છે જે આપમેળે નિયમિત સમીકરણોમાં લખાયેલા લેક્સિકલ સ્પષ્ટીકરણમાંથી લેક્સર અને બી. એન. એફ. માં લખાયેલા વ્યાકરણ શબ્દસમૂહમાંથી પાર્સર જનરેટ કરે છેઃ આ પ્રક્રિયાગત અથવા કાર્યાત્મક પ્રોગ્રામિંગની જરૂરિયાતને બદલે ઘોષણાત્મક પ્રોગ્રામિંગનો ઉપયોગ કરવાની મંજૂરી આપે છે. એક નોંધપાત્ર ઉદાહરણ લેક્સ-યાક જોડી છે. આ આપમેળે કોંક્રિટ વાક્યરચના વૃક્ષ ઉત્પન્ન કરે છે; પાર્સર લેખકે પછી જાતે જ કોડ લખવો જોઈએ કે આ કેવી રીતે અમૂર્ત વાક્યરચના વૃક્ષમાં રૂપાંતરિત થાય છે. સંદર્ભિત વિશ્લેષણ પણ સામાન્ય રીતે જાતે જ લાગુ કરવામાં આવે છે. આ સ્વચાલિત સાધનો અસ્તિત્વમાં હોવા છતાં, પદચ્છેદન ઘણીવાર વિવિધ કારણોસર જાતે જ લાગુ કરવામાં આવે છે-કદાચ શબ્દસમૂહનું માળખું સંદર્ભ-મુક્ત નથી, અથવા વૈકલ્પિક અમલીકરણ કામગીરી અથવા ભૂલ-અહેવાલમાં સુધારો કરે છે, અથવા વ્યાકરણને વધુ સરળતાથી બદલવાની મંજૂરી આપે છે. પાર્સર્સ ઘણીવાર કાર્યાત્મક ભાષાઓમાં લખવામાં આવે છે, જેમ કે હાસ્કેલ, અથવા સ્ક્રિપ્ટિંગ ભાષાઓમાં, જેમ કે પાયથોન અથવા પર્લ, અથવા સી અથવા સી + + માં. ભૂલોના ઉદાહરણો ઉદાહરણ તરીકે, (1 1 ઉમેરો) એ વાક્યરચનામાં માન્ય લિસ્પ પ્રોગ્રામ છે (એમ ધારીને કે 'ઉમેરો' કાર્ય અસ્તિત્વમાં છે, નહીં તો નામ રીઝોલ્યુશન નિષ્ફળ જાય છે), 1 અને 1 ઉમેરો. જો કે, નીચેના અમાન્ય છેઃ (_ 1 1) શાબ્દિક ભૂલઃ '_' માન્ય નથી (1 1 પદચ્છેદન ભૂલ ઉમેરોઃ બંધ થતું નથી ')' લેક્સર પ્રથમ ભૂલને ઓળખવામાં અસમર્થ છે-તે માત્ર એટલું જ જાણે છે કે, ટોકન LEFT _ PAREN ઉત્પન્ન કર્યા પછી, '(' પ્રોગ્રામનો બાકીનો ભાગ અમાન્ય છે, કારણ કે કોઈ શબ્દ નિયમ '_' થી શરૂ થતો નથી. બીજી ભૂલ પદચ્છેદનના તબક્કે શોધાય છેઃ પદચ્છેદનકર્તાએ '(' ટોકન (એકમાત્ર મેળ તરીકે) ને કારણે 'સૂચિ' ઉત્પાદન નિયમને ઓળખી કાઢ્યો છે, અને આમ ભૂલ સંદેશ આપી શકે છે; સામાન્ય રીતે તે અસ્પષ્ટ હોઈ શકે છે. ટાઇપ ભૂલો અને અઘોષિત ચલ ભૂલોને કેટલીકવાર વાક્યરચના ભૂલો ગણવામાં આવે છે જ્યારે તેઓ સંકલન-સમયે શોધાય છે (જે સામાન્ય રીતે મજબૂત-ટાઇપ કરેલી ભાષાઓનું સંકલન કરતી વખતે થાય છે), જો કે આ પ્રકારની ભૂલને સિમેન્ટીક ભૂલો તરીકે વર્ગીકૃત કરવી સામાન્ય છે. ઉદાહરણ તરીકે, પાયથોન કોડ 'a' + 1 માં એક પ્રકારની ભૂલ છે કારણ કે તે પૂર્ણાંકમાં શાબ્દિક શબ્દમાળા ઉમેરે છે. આ પ્રકારની ભૂલો સંકલન-સમયે શોધી શકાય છેઃ જો સંકલનકર્તા અલગ નિયમોનો ઉપયોગ કરે છે જે "પૂર્ણાંક-અક્ષરીય + પૂર્ણાંક-અક્ષરીય" ને મંજૂરી આપે છે પરંતુ "સ્ટ્રિંગ-અક્ષરીય + પૂર્ણાંક-અક્ષરીય" ને નહીં, તો તે પદચ્છેદન દરમિયાન શોધી શકાય છે (શબ્દસમૂહ વિશ્લેષણ), જો કે તે વધુ સંભવ છે કે સંકલનકર્તા પદચ્છેદન નિયમનો ઉપયોગ કરશે જે "શાબ્દિક અથવા સૂચક + શાબ્દિક અથવા સૂચક" સ્વરૂપની તમામ અભિવ્યક્તિઓને મંજૂરી આપે છે અને પછી સંદર્ભિત વિશ્લેષણ દરમિયાન ભૂલ શોધી કાઢવામાં આવશે (જ્યારે પ્રકાર તપાસ થાય છે). કેટલાક કિસ્સાઓમાં આ માન્યતા કમ્પાઇલર દ્વારા કરવામાં આવતી નથી, અને આ ભૂલો માત્ર રનટાઇમ પર શોધાય છે. ગતિશીલ રીતે ટાઇપ કરેલી ભાષામાં, જ્યાં પ્રકાર ફક્ત રનટાઇમ પર નક્કી કરી શકાય છે, ઘણી પ્રકારની ભૂલો ફક્ત રનટાઇમ પર જ શોધી શકાય છે. ઉદાહરણ તરીકે, પાયથોન કોડ a + b શબ્દસમૂહ સ્તર પર વાક્યરચનાત્મક રીતે માન્ય છે, પરંતુ a અને b ના પ્રકારોની ચોકસાઈ માત્ર રનટાઇમ પર નક્કી કરી શકાય છે, કારણ કે ચલોમાં પાયથોનમાં પ્રકારો નથી, માત્ર મૂલ્યો જ કરે છે. જ્યારે કમ્પાઇલર દ્વારા શોધાયેલ પ્રકારની ભૂલને વાક્યરચના ભૂલ (સ્થિર સિમેન્ટીક ભૂલને બદલે) કહેવી જોઈએ કે કેમ તે અંગે મતભેદ છે, ત્યારે પ્રકારની ભૂલો કે જે ફક્ત પ્રોગ્રામ એક્ઝેક્યુશન સમયે જ શોધી શકાય છે તે હંમેશા વાક્યરચના ભૂલોને બદલે સિમેન્ટીક તરીકે ગણવામાં આવે છે. વાક્યરચના વ્યાખ્યા શાબ્દિક પ્રોગ્રામિંગ ભાષાઓની વાક્યરચના સામાન્ય રીતે નિયમિત અભિવ્યક્તિઓ (શાબ્દિક માળખા માટે) અને બેકસ-નૌર સ્વરૂપ (વ્યાકરણની રચના માટે) ના સંયોજનનો ઉપયોગ કરીને વ્યાખ્યાયિત કરવામાં આવે છે જેથી વાક્યરચના વર્ગો (બિન-અંતિમ) અને અંતિમ પ્રતીકોને સૂચિત કરી શકાય. વાક્યરચના વર્ગોને પ્રોડક્શન્સ તરીકે ઓળખાતા નિયમો દ્વારા વ્યાખ્યાયિત કરવામાં આવે છે, જે ચોક્કસ વાક્યરચના વર્ગના મૂલ્યોનો ઉલ્લેખ કરે છે. અંતિમ પ્રતીકો એ નક્કર અક્ષરો અથવા અક્ષરોની સ્ટ્રિંગ્સ છે (ઉદાહરણ તરીકે વ્યાખ્યાયિત કરો, જો, દો, અથવા રદબાતલ જેવા કીવર્ડ્સ) જેમાંથી વાક્યરચનામાં માન્ય પ્રોગ્રામ્સ બનાવવામાં આવે છે. એક ભાષામાં વિવિધ સમકક્ષ વ્યાકરણ હોઈ શકે છે, જેમ કે સમકક્ષ નિયમિત અભિવ્યક્તિઓ (શાબ્દિક સ્તરે), અથવા વિવિધ શબ્દસમૂહ નિયમો જે સમાન ભાષાને ઉત્પન્ન કરે છે. એલ. આર. વ્યાકરણ જેવી વ્યાકરણની વ્યાપક શ્રેણીનો ઉપયોગ, એલ. એલ. વ્યાકરણ જેવી વધુ પ્રતિબંધિત શ્રેણીઓની સરખામણીમાં ટૂંકા અથવા સરળ વ્યાકરણને મંજૂરી આપી શકે છે, જેને વધુ નિયમો સાથે લાંબા વ્યાકરણની જરૂર પડી શકે છે. વિવિધ પરંતુ સમકક્ષ શબ્દસમૂહ વ્યાકરણ વિવિધ પાર્સ વૃક્ષો આપે છે, જો કે અંતર્ગત ભાષા (માન્ય દસ્તાવેજોનો સમૂહ) સમાન છે. ઉદાહરણોઃ લિસ્પ એસ-અભિવ્યક્તિઓ નીચે એક સરળ વ્યાકરણ છે, જે નિયમિત અભિવ્યક્તિઓ અને વિસ્તૃત બેકસ-નૌર સ્વરૂપના સંકેતનો ઉપયોગ કરીને વ્યાખ્યાયિત કરવામાં આવે છે. તે S-અભિવ્યક્તિઓના વાક્યરચનાનું વર્ણન કરે છે, જે પ્રોગ્રામિંગ લેંગ્વેજ લિસ્પનું ડેટા વાક્યરચન છે, જે વાક્યરચના વર્ગો અભિવ્યક્તિ, અણુ, સંખ્યા, પ્રતીક અને સૂચિ માટે ઉત્પાદનને વ્યાખ્યાયિત કરે છેઃ અભિવ્યક્તિ = અણુ | સૂચિ અણુ = સંખ્યા | પ્રતીક સંખ્યા = [+-]? ['0'-'9'] + પ્રતીક = ['A'-'Z'] ['A'-'Z' 0 '-' 9 ']. * સૂચિ = '(', અભિવ્યક્તિ *, ')' આ વ્યાકરણ નીચેનાનો ઉલ્લેખ કરે છેઃ અભિવ્યક્તિ કાં તો અણુ અથવા સૂચિ છે; અણુ કાં તો સંખ્યા અથવા પ્રતીક છે; સંખ્યા એ એક અથવા વધુ દશાંશ અંકોનો અખંડ ક્રમ છે, જે વૈકલ્પિક રીતે વત્તા અથવા ઓછા ચિહ્નથી આગળ છે; પ્રતીક એ કોઈપણ અક્ષરોમાંથી શૂન્ય અથવા વધુ દ્વારા અનુસરવામાં આવતો અક્ષર છે (સફેદ જગ્યા સિવાય); અને સૂચિ કૌંસની મેળ ખાતી જોડી છે, જેમાં તેની અંદર શૂન્ય અથવા વધુ અભિવ્યક્તિઓ હોય છે. અહીં દશાંશ અંકો, મોટા અને નાના અક્ષરો અને કૌંસ અંતિમ પ્રતીકો છે. આ વ્યાકરણમાં સારી રીતે રચાયેલા ટોકન ક્રમના ઉદાહરણો નીચે મુજબ છેઃ '12345', '()', '(એ બી સી 232 (1))' જટિલ વ્યાકરણ પ્રોગ્રામિંગ ભાષાને સ્પષ્ટ કરવા માટે જરૂરી વ્યાકરણને ચોમ્સ્કી પદાનુક્રમમાં તેની સ્થિતિ દ્વારા વર્ગીકૃત કરી શકાય છે. મોટાભાગની પ્રોગ્રામિંગ ભાષાઓના વાક્યાંશ વ્યાકરણને પ્રકાર-2 વ્યાકરણનો ઉપયોગ કરીને સ્પષ્ટ કરી શકાય છે, એટલે કે, તે સંદર્ભ-મુક્ત વ્યાકરણ છે, જો કે એકંદર વાક્યરચના સંદર્ભ-સંવેદનશીલ છે (ચલ ઘોષણાઓ અને નેસ્ટેડ અવકાશને કારણે), તેથી પ્રકાર-1. જો કે, તેમાં અપવાદો છે, અને કેટલીક ભાષાઓ માટે વ્યાકરણ શબ્દસમૂહ પ્રકાર-0 (ટ્યુરિંગ-પૂર્ણ) છે. પર્લ અને લિસ્પ જેવી કેટલીક ભાષાઓમાં ભાષાના સ્પષ્ટીકરણ (અથવા અમલીકરણ) એ રચનાઓને મંજૂરી આપે છે જે પદચ્છેદન તબક્કા દરમિયાન ચલાવવામાં આવે છે. વધુમાં, આ ભાષાઓમાં એવી રચનાઓ છે જે પ્રોગ્રામરને પાર્સરની વર્તણૂકમાં ફેરફાર કરવાની મંજૂરી આપે છે. આ સંયોજન પાર્સિંગ અને એક્ઝેક્યુશન વચ્ચેના તફાવતને અસરકારક રીતે ઝાંખો પાડે છે, અને વાક્યરચના વિશ્લેષણને આ ભાષાઓમાં અનિર્ણિત સમસ્યા બનાવે છે, જેનો અર્થ છે કે પાર્સિંગ તબક્કો સમાપ્ત થઈ શકશે નહીં. ઉદાહરણ તરીકે, પર્લમાં બીઇજીઆઇએન સ્ટેટમેન્ટનો ઉપયોગ કરીને પદચ્છેદન દરમિયાન કોડને અમલમાં મૂકવો શક્ય છે, અને પર્લ ફંક્શન પ્રોટોટાઇપ વાક્યરચના અર્થઘટનને બદલી શકે છે, અને સંભવતઃ બાકીના કોડની વાક્યરચના માન્યતામાં પણ ફેરફાર કરી શકે છે. બોલચાલની ભાષામાં આને "ફક્ત પર્લ જ પર્લનું વિશ્લેષણ કરી શકે છે" તરીકે ઓળખવામાં આવે છે (કારણ કે કોડને વિશ્લેષણ દરમિયાન અમલમાં મૂકવો આવશ્યક છે, અને વ્યાકરણમાં ફેરફાર કરી શકે છે), અથવા વધુ મજબૂત રીતે "પર્લ પણ પર્લનું વિશ્લેષણ કરી શકતું નથી" (કારણ કે તે અનિશ્ચિત છે). તેવી જ રીતે, ડેફમેક્રો વાક્યરચના દ્વારા રજૂ કરાયેલા લિસ્પ મેક્રો પણ પદચ્છેદન દરમિયાન ચલાવવામાં આવે છે, જેનો અર્થ છે કે લિસ્પ કમ્પાઇલરમાં સંપૂર્ણ લિસ્પ રન-ટાઇમ સિસ્ટમ હાજર હોવી આવશ્યક છે. તેનાથી વિપરીત, સી મેક્રો માત્ર સ્ટ્રિંગ રિપ્લેસમેન્ટ છે, અને તેમાં કોડ એક્ઝેક્યુશનની જરૂર નથી. વાક્યરચના વિરુદ્ધ સિમેન્ટિક્સ ભાષાનું વાક્યરચના માન્ય પ્રોગ્રામના સ્વરૂપનું વર્ણન કરે છે, પરંતુ પ્રોગ્રામના અર્થ અથવા તે પ્રોગ્રામને અમલમાં મૂકવાના પરિણામો વિશે કોઈ માહિતી પ્રદાન કરતું નથી. પ્રતીકોના સંયોજનને આપવામાં આવેલ અર્થ શબ્દાર્થ દ્વારા નિયંત્રિત થાય છે (સંદર્ભ અમલીકરણમાં ઔપચારિક અથવા હાર્ડ-કોડેડ). બધા વાક્યરચનાત્મક રીતે સાચા કાર્યક્રમો અર્થપૂર્ણ રીતે સાચા નથી હોતા. ઘણા વાક્યરચનાત્મક રીતે સાચા કાર્યક્રમો તેમ છતાં, ભાષાના નિયમો અનુસાર નબળા રચાયેલા છે; અને (ભાષાના સ્પષ્ટીકરણ અને અમલીકરણની મજબૂતીના આધારે) અનુવાદ અથવા અમલમાં ભૂલમાં પરિણમી શકે છે. કેટલાક કિસ્સાઓમાં, આવા કાર્યક્રમો અવ્યાખ્યાયિત વર્તન પ્રદર્શિત કરી શકે છે. જ્યારે કોઈ પ્રોગ્રામ ભાષામાં સારી રીતે વ્યાખ્યાયિત હોય, ત્યારે પણ તેનો અર્થ એવો હોઈ શકે છે કે જે તેને લખનાર વ્યક્તિ દ્વારા ઈરાદો નથી. ઉદાહરણ તરીકે કુદરતી ભાષાનો ઉપયોગ કરીને, વ્યાકરણની રીતે સાચા વાક્યને અર્થ સોંપવો શક્ય ન પણ હોઈ શકે અથવા વાક્ય ખોટું હોઈ શકેઃ "રંગહીન લીલા વિચારો ઉગ્રતાથી ઊંઘે છે". તે વ્યાકરણની રીતે સારી રીતે રચાયેલ છે પરંતુ તેનો કોઈ સામાન્ય રીતે સ્વીકૃત અર્થ નથી. "જ્હોન એક પરિણીત કુંવારા છે". તે વ્યાકરણની રીતે સારી રીતે રચાયેલ છે પરંતુ એક અર્થ વ્યક્ત કરે છે જે સાચો ન હોઈ શકે. નીચેનો સી ભાષાનો ટુકડો વાક્યરચનાત્મક રીતે સાચો છે, પરંતુ એક એવી કામગીરી કરે છે જે શબ્દાર્થની રીતે વ્યાખ્યાયિત નથી (કારણ કે તે એક નલ પોઇન્ટર છે, કામગીરીઓ અને તેનો કોઈ અર્થ નથી): જટિલ * પી = એનયુએલએલ; જટિલ એબ્સ _ પી = એસક્યુઆરટી (પી-> વાસ્તવિક * પી-> વાસ્તવિક + પી-> આઇએમ * પી-> આઇએમ); એક સરળ ઉદાહરણ તરીકે, ઇન્ટી x; પ્રિન્ટએફ ("% ડી", x); વાક્યરચનાત્મક રીતે માન્ય છે, પરંતુ શબ્દાર્થની રીતે વ્યાખ્યાયિત નથી, કારણ કે તે બિન-પ્રારંભિક ચલનો ઉપયોગ કરે છે. તેમ છતાં કેટલીક પ્રોગ્રામિંગ ભાષાઓ (દા. ત., જાવા અને સી #) માટેના કમ્પાઇલર્સ આ પ્રકારની બિન-પ્રારંભિક ચલ ભૂલોને શોધી કાઢશે, તેમને વાક્યરચના ભૂલોને બદલે સિમેન્ટીક ભૂલો તરીકે ગણવા જોઈએ. આ પણ જુઓ નામકરણ પરંપરા (પ્રોગ્રામિંગ) પ્રોગ્રામિંગ ભાષાઓની સરખામણી (વાક્યરચના) વિવિધ પ્રોગ્રામિંગ ભાષાઓના વાક્યરચનાની ઝડપથી તુલના કરવા માટે, "હેલો, વર્લ્ડ!" ની સૂચિ પર એક નજર નાખો. પ્રોગ્રામના ઉદાહરણોઃ પ્રોલોગ વાક્યરચના અને શબ્દાર્થ પર્લ વાક્યરચના PHP વાક્યરચના અને શબ્દાર્થ C વાક્યરચના C + + વાક્યરચના જાવા વાક્યરચના જાવાસ્ક્રિપ્ટ વાક્યરચના પાયથોન વાક્યરચના અને શબ્દાર્થ લુઆ વાક્યરચના હાસ્કેલ વાક્યરચના સંદર્ભો બાહ્ય કડીઓ કમ્પ્યુટર પ્રોગ્રામિંગ ભાષાઓમાં ઉપયોગમાં લેવાતી વિવિધ વાક્યરચના રચનાઓ પાયથોન ભૂલ "ઇમ્પોર્ટ એરરઃ" શા માટે? કેવી રીતે? કમાન્ડ-લાઇન? [સોલ્વડ2021] પ્રોગ્રામિંગ ભાષા વિષયો સોર્સ કોડ