Syntax (programming languages)
கணினி அறிவியலில், ஒரு கணினி மொழியின் தொடரியல் என்பது அந்த மொழியில் சரியாக கட்டமைக்கப்பட்ட அறிக்கைகள் அல்லது வெளிப்பாடுகளாகக் கருதப்படும் சின்னங்களின் சேர்க்கைகளை வரையறுக்கும் விதிகள் ஆகும். ஆவணமானது மூலக் குறியீட்டைக் குறிக்கும் நிரலாக்க மொழிகளுக்கும், ஆவணம் தரவைக் குறிக்கும் மார்க்அப் மொழிகளுக்கும் இது பொருந்தும். ஒரு மொழியின் தொடரியல் அதன் மேற்பரப்பு வடிவத்தை வரையறுக்கிறது. உரை அடிப்படையிலான கணினி மொழிகள் எழுத்துக்களின் வரிசைகளை அடிப்படையாகக் கொண்டவை, அதே நேரத்தில் காட்சி நிரலாக்க மொழிகள் இடஞ்சார்ந்த தளவமைப்பு மற்றும் சின்னங்களுக்கு இடையிலான தொடர்புகளை அடிப்படையாகக் கொண்டவை (அவை உரை அல்லது வரைகலை). சொல்லியல் ரீதியாக செல்லாத ஆவணங்கள் ஒரு தொடரியல் பிழையைக் கொண்டிருப்பதாகக் கூறப்படுகிறது. ஒரு மொழியின் சொற்றொடரை வடிவமைக்கும்போது, ஒரு வடிவமைப்பாளர் இந்த எடுத்துக்காட்டுகளிலிருந்து பொதுவான விதிகளைக் கண்டுபிடிக்க முயற்சிக்கும் முன், சட்ட மற்றும் சட்டவிரோத சரங்களின் எடுத்துக்காட்டுகளை எழுதுவதன் மூலம் தொடங்கலாம். எனவே தொடரியல் என்பது குறியீட்டின் வடிவத்தைக் குறிக்கிறது, மேலும் இது சொற்பொருளுடன் முரண்படுகிறது-பொருள். கணினி மொழிகளை செயலாக்குவதில், சொற்பொருள் செயலாக்கம் பொதுவாக சொற்பொருள் செயலாக்கத்திற்குப் பிறகு வருகிறது; இருப்பினும், சில சந்தர்ப்பங்களில், முழுமையான சொற்பொருள் பகுப்பாய்விற்கு சொற்பொருள் செயலாக்கம் அவசியம், இவை ஒன்றாகவோ அல்லது ஒரே நேரத்தில் செய்யப்படுகின்றன. ஒரு தொகுப்பில், சொற்பொருள் பகுப்பாய்வு முன் முனையைக் கொண்டுள்ளது, அதே நேரத்தில் சொற்பொருள் பகுப்பாய்வு பின் முனையையும் (மற்றும் நடுத்தர முனையையும், இந்த கட்டத்தை வேறுபடுத்தினால்) கொண்டுள்ளது. கணினி மொழி தொடரியல் பொதுவாக மூன்று நிலைகளாக வேறுபடுகிறதுஃ சொற்கள்-சொற்பொருள் நிலை, எழுத்துக்கள் எவ்வாறு டோக்கன்களை உருவாக்குகின்றன என்பதை தீர்மானிக்கிறது; சொற்றொடர்கள்-இலக்கண நிலை, சுருக்கமாக பேசுவது, டோக்கன்கள் எவ்வாறு சொற்றொடர்களை உருவாக்குகின்றன என்பதை தீர்மானிக்கிறது; சூழல்-எந்த பொருள்கள் அல்லது மாறிகள் பெயர்களைக் குறிக்கிறது, வகைகள் செல்லுபடியாகும் என்றால், போன்றவற்றை தீர்மானிக்கிறது. இந்த வழியில் வேறுபடுத்துவது மாடுலாரிட்டியை அளிக்கிறது, ஒவ்வொரு மட்டத்தையும் தனித்தனியாகவும் பெரும்பாலும் சுயாதீனமாகவும் விவரிக்கவும் செயலாக்கவும் அனுமதிக்கிறது. முதலாவதாக, ஒரு லெக்சர் எழுத்துக்களின் நேரியல் வரிசையை டோக்கன்களின் நேரியல் வரிசையாக மாற்றுகிறது; இது "லெக்சிகல் அனாலிசிஸ்" அல்லது "லெக்சிங்" என்று அழைக்கப்படுகிறது. இரண்டாவதாக, பார்ஸர் டோக்கன்களின் நேரியல் வரிசையை ஒரு படிநிலை தொடரியல் மரமாக மாற்றுகிறது; இது "பார்ஸிங்" என்று அழைக்கப்படுகிறது. மூன்றாவதாக, சூழல் பகுப்பாய்வு பெயர்கள் மற்றும் சரிபார்ப்பு வகைகளைத் தீர்க்கிறது. இந்த மாடுலாரிட்டி சில நேரங்களில் சாத்தியமாகும், ஆனால் பல நிஜ உலக மொழிகளில் முந்தைய படி அடுத்த கட்டத்தைப் பொறுத்தது-எடுத்துக்காட்டாக, சி இல் லெக்ஸர் ஹேக் என்பது டோக்கனைசேஷன் சூழலைப் பொறுத்தது. இந்த சந்தர்ப்பங்களில் கூட, சொற்பொருள் பகுப்பாய்வு பெரும்பாலும் இந்த சிறந்த மாதிரியை தோராயமாகக் காண்கிறது. பகுப்பாய்வு கட்டத்தை இரண்டு பகுதிகளாகப் பிரிக்கலாம்ஃ பார்ஸ் மரம், அல்லது "கான்கிரீட் தொடரியல் மரம்", இது இலக்கணத்தால் தீர்மானிக்கப்படுகிறது, ஆனால் பொதுவாக நடைமுறை பயன்பாட்டிற்கு மிகவும் விரிவானது, மற்றும் சுருக்க தொடரியல் மரம் (ஏஎஸ்டி), இது இதை எளிதாக்குகிறது பயன்படுத்தக்கூடிய வடிவம். ஏஎஸ்டி மற்றும் சூழல் பகுப்பாய்வு படிகள் சொற்பொருள் பகுப்பாய்வின் ஒரு வடிவமாகக் கருதப்படலாம், ஏனெனில் அவை சொற்றொடரில் அர்த்தத்தையும் விளக்கத்தையும் சேர்க்கின்றன, அல்லது முறைசாரா முறையில், முறையாக விவரிக்க அல்லது செயல்படுத்த கடினமாக அல்லது சங்கடமாக இருக்கும் சொற்பொருள் விதிகளை கையால் செயல்படுத்துகின்றன. நிலைகள் பொதுவாக சோம்ஸ்கி படிநிலையில் உள்ள நிலைகளுடன் ஒத்திருக்கின்றன. சொற்கள் ஒரு வழக்கமான மொழியில் உள்ளன, இது லெக்சிகல் இலக்கணத்தில் குறிப்பிடப்பட்டுள்ளது, இது ஒரு வகை-3 இலக்கணமாகும், இது பொதுவாக வழக்கமான வெளிப்பாடுகளாக வழங்கப்படுகிறது. சொற்றொடர்கள் ஒரு சூழல்-இல்லாத மொழியில் (சி. எஃப். எல்) உள்ளன, பொதுவாக ஒரு தீர்மானகரமான சூழல்-இல்லாத மொழி (டி. சி. எஃப். எல்), இது ஒரு சொற்றொடர் கட்டமைப்பு இலக்கணத்தில் குறிப்பிடப்பட்டுள்ளது, இது ஒரு வகை-2 இலக்கணமாகும், இது பொதுவாக பேக்கஸ்-நௌர் வடிவத்தில் (பி. என். எஃப்) உற்பத்தி விதிகளாக வழங்கப்படுகிறது. சொற்றொடர் இலக்கணங்கள் பெரும்பாலும் முழு சூழல் இல்லாத இலக்கணங்களை விட மிகவும் கட்டுப்படுத்தப்பட்ட இலக்கணங்களில் குறிப்பிடப்படுகின்றன, அவற்றைப் பகுப்பாய்வு செய்வதை எளிதாக்குவதற்காக; எல். ஆர் பாகுபாடு எந்த டி. சி. எஃப். எல்-ஐ நேரியல் நேரத்தில் பகுப்பாய்வு செய்ய முடியும், அதே நேரத்தில் எளிய எல். ஏ. எல். ஆர் பாகுபாடு மற்றும் எளிமையான எல். எல் பாகுபாடு மிகவும் திறமையானவை, ஆனால் உற்பத்தி விதிகள் கட்டுப்படுத்தப்பட்ட இலக்கணங்களை மட்டுமே பகுப்பாய்வு செய்ய முடியும். கொள்கையளவில், சூழல் கட்டமைப்பை ஒரு சூழல்-உணர்திறன் இலக்கணத்தால் விவரிக்க முடியும், மேலும் பண்புக்கூறு இலக்கணங்கள் போன்ற வழிமுறைகளால் தானாகவே பகுப்பாய்வு செய்யப்படலாம், இருப்பினும், பொதுவாக, இந்த படி கைமுறையாக, பெயர் தெளிவுத்திறன் விதிகள் மற்றும் வகை சரிபார்ப்பு மூலம் செய்யப்படுகிறது, மேலும் ஒரு குறியீட்டு அட்டவணை வழியாக செயல்படுத்தப்படுகிறது ஒவ்வொரு நோக்கத்திற்கும் பெயர்கள் மற்றும் வகைகளை சேமிக்கிறது. வழக்கமான வெளிப்பாடுகளில் எழுதப்பட்ட ஒரு லெக்சிகல் விவரக்குறிப்பிலிருந்து தானாகவே ஒரு லெக்ஸரை உருவாக்கும் கருவிகள் எழுதப்பட்டுள்ளன, மேலும் பி. என். எஃப் இல் எழுதப்பட்ட இலக்கண சொற்றொடரிலிருந்து ஒரு பார்ஸரை உருவாக்குகின்றனஃ இது நடைமுறை அல்லது செயல்பாட்டு நிரலாக்கத்தைக் கொண்டிருப்பதற்குப் பதிலாக, அறிவிப்பு நிரலாக்கத்தைப் பயன்படுத்த ஒருவரை அனுமதிக்கிறது. ஒரு குறிப்பிடத்தக்க உதாரணம் லெக்ஸ்-யாக் ஜோடி ஆகும். இவை தானாகவே ஒரு கான்கிரீட் தொடரியல் மரத்தை உருவாக்குகின்றன; இது ஒரு சுருக்கமான தொடரியல் மரமாக எவ்வாறு மாற்றப்படுகிறது என்பதை விவரிக்கும் குறியீட்டை பாகுபடுத்தும் எழுத்தாளர் கைமுறையாக எழுத வேண்டும். சூழல் பகுப்பாய்வும் பொதுவாக கைமுறையாக செயல்படுத்தப்படுகிறது. இந்த தானியங்கி கருவிகள் இருந்தபோதிலும், பகுப்பாய்வு பெரும்பாலும் கைமுறையாக செயல்படுத்தப்படுகிறது, பல்வேறு காரணங்களுக்காக-ஒருவேளை சொற்றொடர் அமைப்பு சூழல் இல்லாதது அல்ல, அல்லது ஒரு மாற்று செயல்படுத்தல் செயல்திறன் அல்லது பிழை-அறிக்கையிடலை மேம்படுத்துகிறது, அல்லது இலக்கணத்தை மிகவும் எளிதாக மாற்ற அனுமதிக்கிறது. பாகங்கள் பெரும்பாலும் ஹாஸ்கெல் போன்ற செயல்பாட்டு மொழிகளில் அல்லது பைதான் அல்லது பெர்ல் போன்ற ஸ்கிரிப்டிங் மொழிகளில் அல்லது சி அல்லது சி + + இல் எழுதப்படுகின்றன. பிழைகளின் எடுத்துக்காட்டுகள் எடுத்துக்காட்டாக, (1 1 ஐச் சேர்க்கவும்) என்பது 1 மற்றும் 1 ஐச் சேர்க்கும் ஒரு சொல்லியல் ரீதியாக செல்லுபடியாகும் லிஸ்ப் நிரலாகும் ('சேர்' செயல்பாடு இருப்பதாகக் கருதினால், இல்லையெனில் பெயர் தீர்மானம் தோல்வியடையும்). இருப்பினும், பின்வருபவை செல்லுபடியாகாதுஃ (_ 1 1) சொற்பொருள் பிழைஃ '_' செல்லுபடியாகாது (1 1 பகுப்பாய்வு பிழையைச் சேர்க்கவும்ஃ மூடுவதைக் காணவில்லை ')' லெக்ஸர் முதல் பிழையை அடையாளம் காண முடியவில்லை-அது அறிந்திருப்பது என்னவென்றால், டோக்கனை LEFT _ PAREN ஐ உருவாக்கிய பிறகு, '(' நிரலின் எஞ்சிய பகுதி செல்லாது, ஏனெனில் எந்த சொல் விதியும் '_' உடன் தொடங்காது. இரண்டாவது பிழை பகுப்பாய்வு கட்டத்தில் கண்டறியப்படுகிறதுஃ '(' டோக்கன் (ஒரே பொருத்தமாக) காரணமாக "பட்டியல்" உற்பத்தி விதியை பாகுபடுத்துபவர் அடையாளம் கண்டுள்ளார், இதனால் ஒரு பிழை செய்தியை வழங்க முடியும்; பொதுவாக இது தெளிவற்றதாக இருக்கலாம். வகை பிழைகள் மற்றும் அறிவிக்கப்படாத மாறி பிழைகள் சில நேரங்களில் தொகுப்பு நேரத்தில் கண்டறியப்படும் போது தொடரியல் பிழைகளாக கருதப்படுகின்றன (இது பொதுவாக வலுவாக தட்டச்சு செய்யப்பட்ட மொழிகளை தொகுக்கும் போது நிகழ்கிறது), இருப்பினும் இந்த வகையான பிழைகளை சொற்பொருள் பிழைகளாக வகைப்படுத்துவது பொதுவானது. எடுத்துக்காட்டாக, பைதான் குறியீடு 'a' + 1 ஒரு வகை பிழையைக் கொண்டுள்ளது, ஏனெனில் இது ஒரு முழு எண் எழுத்துக்கு ஒரு சரம் எழுத்தை சேர்க்கிறது. தொகுப்பு நேரத்தில் இந்த வகையான பிழைகளைக் கண்டறியலாம்ஃ தொகுப்பாளர் "இன்டெஜர் லிட்டரல் + இன்டெஜர் லிட்டரல்" ஐ அனுமதிக்கும் தனித்தனி விதிகளைப் பயன்படுத்தினால் அவற்றைப் பகுப்பாய்வு செய்யும் போது (சொற்றொடர் பகுப்பாய்வு) கண்டறிய முடியும், ஆனால் "ஸ்ட்ரிங் லிட்டரல் + இன்டெஜர் லிட்டரல்" அல்ல, இருப்பினும் தொகுப்பாளர் "லிட்டரல் ஆர் ஐடென்டிபையர் + லிட்டரல் ஆர் ஐடென்டிபையர்" வடிவத்தின் அனைத்து வெளிப்பாடுகளையும் அனுமதிக்கும் ஒரு பாகுபடுத்தும் விதியைப் பயன்படுத்துவார், பின்னர் சூழல் பகுப்பாய்வின் போது பிழை கண்டறியப்படும் (வகைச் சரிபார்ப்பு ஏற்படும் போது). சில சந்தர்ப்பங்களில் இந்த சரிபார்ப்பு தொகுப்பாளரால் செய்யப்படவில்லை, மேலும் இந்த பிழைகள் இயக்க நேரத்தில் மட்டுமே கண்டறியப்படுகின்றன. ஒரு மாறும் தட்டச்சு மொழியில், இயக்க நேரத்தில் மட்டுமே வகையை தீர்மானிக்க முடியும், பல வகை பிழைகள் இயக்க நேரத்தில் மட்டுமே கண்டறிய முடியும். எடுத்துக்காட்டாக, பைதான் குறியீடு a + b சொற்றொடர் மட்டத்தில் சொல்லியல் ரீதியாக செல்லுபடியாகும், ஆனால் a மற்றும் b வகைகளின் சரியான தன்மையை இயக்க நேரத்தில் மட்டுமே தீர்மானிக்க முடியும், ஏனெனில் மாறிகளுக்கு பைத்தானில் வகைகள் இல்லை, மதிப்புகள் மட்டுமே செய்கின்றன. தொகுப்பாளரால் கண்டறியப்பட்ட ஒரு வகை பிழையை தொடரியல் பிழை என்று அழைக்க வேண்டுமா என்பது குறித்து கருத்து வேறுபாடு இருந்தாலும் (நிலையான சொற்பொருள் பிழையை விட), நிரல் செயல்படுத்தும் நேரத்தில் மட்டுமே கண்டறியக்கூடிய வகை பிழைகள் எப்போதும் தொடரியல் பிழைகளை விட சொற்பொருள் என்று கருதப்படுகின்றன. தொடரியல் வரையறை உரை நிரலாக்க மொழிகளின் தொடரியல் பொதுவாக வழக்கமான வெளிப்பாடுகள் (சொற்பொருள் கட்டமைப்புக்கு) மற்றும் பேக்கஸ்-நௌர் வடிவம் (இலக்கண கட்டமைப்பிற்கு) ஆகியவற்றின் கலவையைப் பயன்படுத்தி வரையறுக்கப்படுகிறது, இது தொடரியல் பிரிவுகள் (முனையமற்றவை) மற்றும் முனைய சின்னங்களை தூண்டுகிறது. சொற்பொருள் பிரிவுகள் தயாரிப்புகள் எனப்படும் விதிகளால் வரையறுக்கப்படுகின்றன, அவை ஒரு குறிப்பிட்ட சொற்பொருள் வகையைச் சேர்ந்த மதிப்புகளைக் குறிப்பிடுகின்றன. முனைய சின்னங்கள் என்பது எழுத்துக்களின் உறுதியான எழுத்துக்கள் அல்லது சரங்கள் (எடுத்துக்காட்டாக வரையறுக்கவும், இருந்தால், விடுங்கள் அல்லது வெற்றிடமாக்குதல் போன்ற முக்கிய வார்த்தைகள்) இதில் இருந்து தொடரியல் ரீதியாக செல்லுபடியாகும் நிரல்கள் உருவாக்கப்படுகின்றன. ஒரு மொழி வெவ்வேறு சமமான இலக்கணங்களைக் கொண்டிருக்கலாம், அதாவது சமமான வழக்கமான வெளிப்பாடுகள் (லெக்சிகல் மட்டங்களில்) அல்லது ஒரே மொழியை உருவாக்கும் வெவ்வேறு சொற்றொடர் விதிகள். எல்ஆர் இலக்கணங்கள் போன்ற ஒரு பரந்த வகை இலக்கணங்களைப் பயன்படுத்துவது, எல்எல் இலக்கணங்கள் போன்ற மிகவும் கட்டுப்படுத்தப்பட்ட வகைகளுடன் ஒப்பிடும்போது குறுகிய அல்லது எளிமையான இலக்கணங்களை அனுமதிக்கும், இதற்கு அதிக விதிகளுடன் நீண்ட இலக்கணங்கள் தேவைப்படலாம். அடிப்படை மொழி (செல்லுபடியாகும் ஆவணங்களின் தொகுப்பு) ஒரே மாதிரியாக இருந்தாலும், வெவ்வேறு ஆனால் சமமான சொற்றொடர் இலக்கணங்கள் வெவ்வேறு பகுப்பாய்வு மரங்களை வழங்குகின்றன. எடுத்துக்காட்டுஃ Lisp S-வெளிப்பாடுகள் கீழே ஒரு எளிய இலக்கணமாகும், இது வழக்கமான வெளிப்பாடுகள் மற்றும் நீட்டிக்கப்பட்ட பேக்கஸ்-நௌர் வடிவத்தின் குறியீட்டைப் பயன்படுத்தி வரையறுக்கப்படுகிறது. இது நிரலாக்க மொழியான லிஸ்பின் தரவு தொடரமைப்பான எஸ்-வெளிப்பாடுகளின் தொடரமைவை விவரிக்கிறது, இது சொற்றொடர் வகைகளுக்கான வெளிப்பாடு, அணு, எண், சின்னம் மற்றும் பட்டியலுக்கான தயாரிப்புகளை வரையறுக்கிறதுஃ வெளிப்பாடு = அணு | பட்டியல் அணு = எண் | சின்னம் எண் = [+-]? ['0'-'9'] + சின்னம் = ['A'-'Z'] ['A'-'Z' 0 '-' 9 ']. * பட்டியல் = '(', வெளிப்பாடு *, ')' இந்த இலக்கணம் பின்வருவனவற்றைக் குறிப்பிடுகிறதுஃ ஒரு வெளிப்பாடு ஒரு அணு அல்லது ஒரு பட்டியல்; ஒரு அணு ஒரு எண் அல்லது ஒரு சின்னம்; ஒரு எண் என்பது ஒன்று அல்லது அதற்கு மேற்பட்ட தசம இலக்கங்களின் உடைக்கப்படாத வரிசை, விருப்பப்படி ஒரு கூட்டல் அல்லது கழித்தல் அடையாளத்திற்கு முன்னதாக; ஒரு சின்னம் என்பது பூஜ்ஜியம் அல்லது அதற்கு மேற்பட்ட எழுத்துக்களைத் தொடர்ந்து வரும் ஒரு எழுத்து (வெள்ளை இடத்தை தவிர்த்து); மற்றும் ஒரு பட்டியல் என்பது பூஜ்ஜியம் அல்லது அதற்கு மேற்பட்ட வெளிப்பாடுகளுடன் பொருந்தக்கூடிய ஜோடி அடைப்புக்குறிகளாகும். இங்கே தசம இலக்கங்கள், பெரிய மற்றும் சிறிய எழுத்துக்கள் மற்றும் அடைப்புக்குறிகள் முனைய சின்னங்களாகும். இந்த இலக்கணத்தில் நன்கு உருவாக்கப்பட்ட டோக்கன் வரிசைகளின் எடுத்துக்காட்டுகள் பின்வருமாறுஃ '12345', '()', '(A B C232 (1))' சிக்கலான இலக்கணங்கள் ஒரு நிரலாக்க மொழியைக் குறிப்பிடத் தேவையான இலக்கணத்தை சோம்ஸ்கி படிநிலையில் அதன் நிலையைப் பொறுத்து வகைப்படுத்தலாம். பெரும்பாலான நிரலாக்க மொழிகளின் சொற்றொடர் இலக்கணத்தை வகை-2 இலக்கணத்தைப் பயன்படுத்தி குறிப்பிடலாம், அதாவது, அவை சூழல் இல்லாத இலக்கணங்கள், இருப்பினும் ஒட்டுமொத்த தொடரியல் சூழல்-உணர்திறன் கொண்டது (மாறி அறிவிப்புகள் மற்றும் உள்ளமைக்கப்பட்ட அளவுகோல்கள் காரணமாக), எனவே வகை-1. இருப்பினும், விதிவிலக்குகள் உள்ளன, மேலும் சில மொழிகளுக்கு இலக்கண சொற்றொடர் வகை-0 (டூரிங்-முழுமையானது) ஆகும். பெர்ல் மற்றும் லிஸ்ப் போன்ற சில மொழிகளில் மொழியின் விவரக்குறிப்பு (அல்லது செயல்படுத்தல்) பகுப்பாய்வு கட்டத்தில் செயல்படுத்தப்படும் கட்டமைப்புகளை அனுமதிக்கிறது. மேலும், இந்த மொழிகள் புரோகிராமர் பாகுபடுத்தியின் நடத்தையை மாற்ற அனுமதிக்கும் கட்டமைப்புகளைக் கொண்டுள்ளன. இந்த கலவையானது பகுப்பாய்வு மற்றும் செயல்படுத்தலுக்கு இடையிலான வேறுபாட்டை திறம்பட மங்கச் செய்கிறது, மேலும் இந்த மொழிகளில் தொடரியல் பகுப்பாய்வை ஒரு தீர்க்கமுடியாத சிக்கலாக ஆக்குகிறது, அதாவது பகுப்பாய்வு கட்டம் முடிவடையாமல் போகலாம். எடுத்துக்காட்டாக, பெர்லில் ஒரு பெகின் அறிக்கையைப் பயன்படுத்தி பகுப்பாய்வு செய்யும் போது குறியீட்டை இயக்க முடியும், மேலும் பெர்ல் செயல்பாட்டு முன்மாதிரிகள் சொற்பொருள் விளக்கத்தை மாற்றலாம், மேலும் மீதமுள்ள குறியீட்டின் சொற்பொருள் செல்லுபடியை கூட மாற்றலாம். பேச்சுவழக்கில் இது "பெர்ல் மட்டுமே பெர்லை பகுப்பாய்வு செய்ய முடியும்" (ஏனெனில் பகுப்பாய்வு செய்யும் போது குறியீடு செயல்படுத்தப்பட வேண்டும், மேலும் இலக்கணத்தை மாற்றியமைக்க முடியும்) அல்லது இன்னும் வலுவாக "பெர்ல் கூட பெர்லை பகுப்பாய்வு செய்ய முடியாது" (ஏனெனில் இது தீர்மானிக்க முடியாதது) என்று குறிப்பிடப்படுகிறது. இதேபோல், டெஃப்மாக்ரோ தொடரியல் மூலம் அறிமுகப்படுத்தப்பட்ட லிஸ்ப் மேக்ரோக்களும் பகுப்பாய்வின் போது செயல்படுத்தப்படுகின்றன, அதாவது ஒரு லிஸ்ப் கம்பைலர் ஒரு முழு லிஸ்ப் ரன்-டைம் அமைப்பைக் கொண்டிருக்க வேண்டும். இதற்கு மாறாக, சி மேக்ரோக்கள் வெறுமனே சரம் மாற்றீடுகளாகும், மேலும் குறியீடு செயல்படுத்தல் தேவையில்லை. ஒரு மொழியின் தொடரியல் ஒரு செல்லுபடியாகும் நிரலின் வடிவத்தை விவரிக்கிறது, ஆனால் நிரலின் பொருள் அல்லது அந்த நிரலை செயல்படுத்துவதன் முடிவுகள் பற்றிய எந்த தகவலையும் வழங்காது. குறியீடுகளின் கலவையில் கொடுக்கப்பட்ட பொருள் சொற்பொருள்களால் கையாளப்படுகிறது (ஒரு குறிப்பு செயல்பாட்டில் முறையான அல்லது கடினமான குறியீடு). அனைத்து சொல்லியல் ரீதியாக சரியான நிரல்களும் சொற்பொருள் ரீதியாக சரியானவை அல்ல. பல சொல்லியல் ரீதியாக சரியான நிரல்கள் இருப்பினும், மொழியின் விதிகளின்படி சரியாக வடிவமைக்கப்படவில்லை; மேலும் (மொழி விவரக்குறிப்பு மற்றும் செயல்படுத்தலின் உறுதியைப் பொறுத்து) மொழிபெயர்ப்பு அல்லது செயல்பாட்டில் பிழையை ஏற்படுத்தலாம். சில சந்தர்ப்பங்களில், அத்தகைய நிரல்கள் வரையறுக்கப்படாத நடத்தையை வெளிப்படுத்தலாம். ஒரு நிரல் ஒரு மொழிக்குள்ளேயே நன்கு வரையறுக்கப்பட்டிருந்தாலும், அதை எழுதிய நபரின் நோக்கம் இல்லாத ஒரு அர்த்தத்தை அது கொண்டிருக்கலாம். இயற்கையான மொழியை ஒரு எடுத்துக்காட்டாக பயன்படுத்துவதன் மூலம், இலக்கண ரீதியாக சரியான வாக்கியத்திற்கு ஒரு பொருளை ஒதுக்குவது சாத்தியமில்லை அல்லது வாக்கியம் தவறாக இருக்கலாம்ஃ "நிறமற்ற பச்சை கருத்துக்கள் கோபமாக தூங்குகின்றன". இலக்கண ரீதியாக நன்கு உருவாக்கப்பட்டது, ஆனால் பொதுவாக ஏற்றுக்கொள்ளப்பட்ட அர்த்தம் இல்லை. "ஜான் ஒரு திருமணமான இளங்கலை". இலக்கண ரீதியாக நன்கு உருவாக்கப்பட்டது, ஆனால் உண்மையாக இருக்க முடியாத ஒரு பொருளை வெளிப்படுத்துகிறது. பின்வரும் சி மொழித் துண்டு சொல்லியல் ரீதியாக சரியானது, ஆனால் சொற்பொருள் ரீதியாக வரையறுக்கப்படாத ஒரு செயல்பாட்டைச் செய்கிறது (ஏனெனில் இது ஒரு பூஜ்ய சுட்டிக்காட்டி, செயல்பாடுகள் மற்றும் எந்த அர்த்தமும் இல்லை): சிக்கலானது * பி = என். யு. எல். எல்; சிக்கலானது ஏபிஎஸ். பி = ஸ்க்வார்ட் (பி-> உண்மையான * பி-> உண்மையான + பி-> இம் * பி-> இம்); ஒரு எளிய எடுத்துக்காட்டாக, இன்ட் எக்ஸ்; பிரின்ட்எஃப் ("% டி", எக்ஸ்); சொற்பொருள் ரீதியாக செல்லுபடியாகும், ஆனால் சொற்பொருள் ரீதியாக வரையறுக்கப்படவில்லை, ஏனெனில் இது ஒரு துவக்கப்படாத மாறியைப் பயன்படுத்துகிறது. சில நிரலாக்க மொழிகளுக்கான தொகுப்பான்கள் (எ. கா., ஜாவா மற்றும் சி #) இந்த வகையான துவக்கப்படாத மாறி பிழைகளைக் கண்டறிந்தாலும், அவை தொடரியல் பிழைகளை விட சொற்பொருள் பிழைகளாக கருதப்பட வேண்டும். மேலும் காண்கஃ பெயரிடும் முறை (நிரலாக்கம்) நிரலாக்க மொழிகளின் ஒப்பீடு (சொற்றொடர்) பல்வேறு நிரலாக்க மொழிகளின் சொற்றொடரை விரைவாக ஒப்பிட, "ஹலோ, வேர்ல்ட்!" என்ற பட்டியலைப் பாருங்கள். நிரல் எடுத்துக்காட்டுகள்ஃ புரோலாக் தொடரியல் மற்றும் சொற்பொருள் பெர்ல் தொடரியல் பிஎச்பி தொடரியல் மற்றும் சொற்பொருள் சி தொடரியல் சி + + ஜாவா தொடரியல் ஜாவாஸ்கிரிப்ட் தொடரியல் பைதான் தொடரியல் மற்றும் சொற்பொருள் லுவா தொடரியல் ஹாஸ்கெல் தொடரியல் குறிப்புகள் வெளிப்புற இணைப்புகள் கணினி நிரலாக்க மொழிகளில் பயன்படுத்தப்படும் பல்வேறு தொடரியல் கட்டமைப்புகள் பைதான் பிழை "இறக்குமதி பிழைஃ" ஏன்? எப்படி? கட்டளை வரிசை? [தீர்க்கப்பட்டது2021] நிரலாக்க மொழி தலைப்புகள் மூலக் குறியீடு