Data-driven programming
கணினி நிரலாக்கத்தில், தரவு-உந்துதல் நிரலாக்கம் என்பது ஒரு நிரலாக்க முன்னுதாரணமாகும், இதில் நிரல் அறிக்கைகள் பொருத்தப்பட வேண்டிய தரவு மற்றும் எடுக்க வேண்டிய படிகளின் வரிசையை வரையறுப்பதை விட தேவையான செயலாக்கத்தை விவரிக்கின்றன. தரவு-உந்துதல் மொழிகளின் நிலையான எடுத்துக்காட்டுகள் உரை-செயலாக்க மொழிகள் செட் மற்றும் ஏ. டபிள்யூ. கே, மற்றும் ஆவண மாற்ற மொழி எக்ஸ். எஸ். எல். டி, இதில் தரவு ஒரு உள்ளீட்டு நீரோட்டத்தில் உள்ள வரிகளின் வரிசையாகும்-எனவே இவை வரி-சார்ந்த மொழிகள் என்றும் அழைக்கப்படுகின்றன-மற்றும் முறை பொருத்தம் முதன்மையாக வழக்கமான வெளிப்பாடுகள் அல்லது வரி எண்கள் வழியாக செய்யப்படுகிறது. தொடர்புடைய முன்னுதாரணங்கள் தரவு-உந்துதல் நிரலாக்கம் நிகழ்வு-உந்துதல் நிரலாக்கத்தைப் போன்றது, இதில் இரண்டும் முறை பொருத்தம் மற்றும் விளைவாக செயலாக்கம் என கட்டமைக்கப்பட்டுள்ளன, மேலும் அவை பொதுவாக ஒரு முக்கிய வளையத்தால் செயல்படுத்தப்படுகின்றன, இருப்பினும் அவை பொதுவாக வெவ்வேறு களங்களுக்கு பயன்படுத்தப்படுகின்றன. நிபந்தனை/செயல் மாதிரியும் அம்சம் சார்ந்த நிரலாக்கத்தைப் போன்றது, அங்கு ஒரு இணைப்புப் புள்ளியை (நிபந்தனை) அடையும் போது, ஒரு பாயிண்ட்கட் (செயல்) செயல்படுத்தப்படுகிறது. டி ட்ரேஸ் போன்ற சில தடமறிதல் கட்டமைப்புகளில் இதேபோன்ற முன்னுதாரணம் பயன்படுத்தப்படுகிறது, அங்கு ஒருவர் ஆய்வுகள் (கருவி புள்ளிகள்) மற்றும் தொடர்புடைய செயல்களை பட்டியலிடுகிறார், அவை நிபந்தனை திருப்தி அடையும் போது செயல்படுத்தப்படுகின்றன. சுருக்க தரவு வகை வடிவமைப்பு முறைகளை பொருள் சார்ந்த நிரலாக்கத்திற்கு மாற்றியமைப்பது தரவு-உந்துதல் வடிவமைப்பில் விளைகிறது. இந்த வகை வடிவமைப்பு சில நேரங்களில் பொருள் சார்ந்த நிரலாக்கத்தில் ஒரு மென்பொருளின் கருத்தாக்கத்தின் போது வகுப்புகளை வரையறுக்க பயன்படுத்தப்படுகிறது. பயன்பாடுகள் தரவு-உந்துதல் நிரலாக்கம் பொதுவாக கட்டமைக்கப்பட்ட தரவுகளின் நீரோடைகளுக்கு பயன்படுத்தப்படுகிறது, வடிகட்டுதல், மாற்றுதல், திரட்டுதல் (கம்ப்யூட்டிங் புள்ளிவிவரங்கள் போன்றவை) அல்லது பிற நிரல்களை அழைத்தல். வழக்கமான ஸ்ட்ரீம்களில் பதிவு கோப்புகள், வரையறுக்கப்பட்ட-பிரிக்கப்பட்ட மதிப்புகள் அல்லது மின்னஞ்சல் செய்திகள் ஆகியவை அடங்கும், குறிப்பாக மின்னஞ்சல் வடிகட்டலுக்காக. எடுத்துக்காட்டாக, ஒரு AWK நிரல் பதிவு அறிக்கைகளின் ஒரு ஸ்ட்ரீமை உள்ளீடாக எடுத்துக் கொள்ளலாம், எடுத்துக்காட்டாக அனைத்தையும் கன்சோலுக்கு அனுப்பலாம், எச்சரிக்கையுடன் தொடங்கி "எச்சரிக்கை" கோப்புக்கு எழுதலாம், மேலும் எந்தவொரு வரியும் "பிழை" உடன் தொடங்கினால் ஒரு sysadmin க்கு மின்னஞ்சல் அனுப்பலாம். ஒரு நாளைக்கு எத்தனை எச்சரிக்கைகள் பதிவு செய்யப்படுகின்றன என்பதையும் இது பதிவு செய்யலாம். மாற்றாக, வரையறுக்கப்பட்ட மதிப்புகளின் நீரோடைகளை ஒருவர் செயலாக்கலாம், ஒவ்வொரு வரியையும் செயலாக்கலாம் அல்லது கூட்டுத்தொகை அல்லது அதிகபட்சம் போன்ற ஒருங்கிணைந்த கோடுகளையும் செயலாக்கலாம். மின்னஞ்சலில், ப்ரோக்மெயில் போன்ற ஒரு மொழி சில மின்னஞ்சல்களில் பொருந்துவதற்கான நிபந்தனைகளைக் குறிப்பிடலாம், மேலும் என்ன நடவடிக்கைகள் எடுக்க வேண்டும் (வழங்குதல், துள்ளல், நிராகரிப்பு, முன்னோக்கி போன்றவை). சில தரவு-உந்துதல் மொழிகள் டூரிங்-முழுமையானவை, அதாவது AWK மற்றும் செட் கூட, மற்றவை வேண்டுமென்றே மிகவும் குறைவாகவே உள்ளன, குறிப்பாக வடிகட்டுவதற்கு. பிந்தையது ஒரு தீவிர உதாரணம் pcap ஆகும், இது வடிகட்டலை மட்டுமே கொண்டுள்ளது, ஒரே நடவடிக்கை "பிடிப்பு" ஆகும். குறைவான அளவில், சல்லடையில் வடிப்பான்கள் மற்றும் செயல்கள் உள்ளன, ஆனால் அடிப்படை தரத்தில் மாறிகள் அல்லது சுழல்கள் எதுவும் இல்லை, இது நிலையற்ற வடிகட்டுதல் அறிக்கைகளை மட்டுமே அனுமதிக்கிறதுஃ ஒவ்வொரு உள்ளீட்டு உறுப்பும் சுயாதீனமாக செயலாக்கப்படுகிறது. மாறிகள் மாநிலத்தை அனுமதிக்கின்றன, இது ஒன்றுக்கு மேற்பட்ட உள்ளீட்டு உறுப்புகளைச் சார்ந்த செயல்பாடுகளை அனுமதிக்கிறது, அதாவது திரட்டல் (உள்ளீடுகளைச் சுருக்குதல்) அல்லது சுருட்டுதல் (ஒவ்வொரு அனுப்புநரிடமிருந்தும் ஒரு மணி நேரத்திற்கு அதிகபட்சம் 5 அஞ்சல்களை அனுமதிப்பது அல்லது மீண்டும் மீண்டும் பதிவு செய்திகளைக் கட்டுப்படுத்துவது). தரவுகளால் இயக்கப்படும் மொழிகள் அடிக்கடி இயல்புநிலை நடவடிக்கையைக் கொண்டுள்ளனஃ எந்த நிபந்தனையும் பொருந்தவில்லை என்றால், வரி சார்ந்த மொழிகள் வரியை அச்சிடலாம் (செட் போல), அல்லது ஒரு செய்தியை வழங்கலாம் (சல்லடை போல). வடிகட்டுதல் போன்ற சில பயன்பாடுகளில், பொருத்தம் பிரத்தியேகமாக செய்யப்படலாம் (எனவே முதல் பொருந்தும் அறிக்கை மட்டுமே), மற்ற சந்தர்ப்பங்களில் அனைத்து பொருந்தும் அறிக்கைகளும் பயன்படுத்தப்படுகின்றன. எந்தவொரு சந்தர்ப்பத்திலும், எந்தவொரு வடிவத்தையும் பொருத்தத் தவறியது "இயல்புநிலை நடத்தை" அல்லது ஒரு பிழையாகப் பார்க்கப்படலாம், இறுதியில் ஒரு கேட்ச்-ஆல் அறிக்கையால் பிடிக்கப்படலாம். நன்மைகள் மற்றும் சிக்கல்கள் அமலாக்கத்திற்கு இடையில் நன்மைகள் மற்றும் சிக்கல்கள் மாறுபடலாம் என்றாலும், இந்த முன்னுதாரணத்துடன் சில பெரிய சாத்தியமான நன்மைகள் மற்றும் சிக்கல்கள் உள்ளன. செயல்பாட்டிற்கு அது வேலை செய்யும் மாறிகளின் சுருக்க தரவு வகையை அறிந்திருக்க வேண்டும். செயல்பாடுகள் மற்றும் இடைமுகங்கள் ஒரே தரவு புலங்களைக் கொண்ட அனைத்து பொருட்களிலும் பயன்படுத்தப்படலாம், எடுத்துக்காட்டாக பொருளின் "நிலை". தரவை விருப்பத்திற்கு ஏற்ப பொருள்கள் அல்லது "நிறுவனங்கள்" என வகைப்படுத்தலாம், இதனால் எந்த விளைவும் ஏற்படாது. தரவு-உந்துதல் வடிவமைப்பு தரவு மற்றும் செயல்பாட்டின் இணைப்பைத் தடுக்கும் அதே வேளையில், சில சந்தர்ப்பங்களில், தரவு-உந்துதல் நிரலாக்கம் மோசமான பொருள்-சார்ந்த வடிவமைப்பிற்கு வழிவகுக்கும் என்று வாதிடப்பட்டுள்ளது, குறிப்பாக மிகவும் சுருக்கமான தரவைக் கையாளும் போது. ஏனென்றால், முற்றிலும் தரவுகளால் இயக்கப்படும் பொருள் அல்லது நிறுவனம் அது குறிப்பிடப்படும் விதத்தால் வரையறுக்கப்படுகிறது. பொருளின் கட்டமைப்பை மாற்றுவதற்கான எந்தவொரு முயற்சியும் அதை நம்பியிருக்கும் செயல்பாடுகளை உடனடியாக உடைக்கும். உதாரணமாக, ஓட்டுநர் வலது அல்லது இடதுபுறம் திரும்ப வேண்டிய தொடர்ச்சியான குறுக்குவெட்டுகள் (இரண்டு குறுக்குவெட்டு தெருக்கள்) ஓட்டுநர் திசைகளைக் குறிக்கலாம். ஒரு குறுக்குவெட்டு (அமெரிக்காவில்) ஜிப் குறியீடு (5 இலக்க எண்) மற்றும் இரண்டு தெரு பெயர்கள் (உரையின் சரங்கள்) மூலம் தரவுகளில் குறிப்பிடப்பட்டால், தெருக்கள் பல முறை சந்திக்கும் ஒரு நகரம் எதிர்கொள்ளும்போது பிழைகள் தோன்றலாம். இந்த உதாரணம் மிகைப்படுத்தப்பட்டதாக இருந்தாலும், பிழைகளை அகற்றுவதற்கும், செயல்திறனை அதிகரிப்பதற்கும் அல்லது புதிய அம்சங்களை ஆதரிப்பதற்கும் மென்பொருள் பொறியியலில் தரவை மறுசீரமைப்பது மிகவும் பொதுவான சிக்கலாகும். மொழிகள் ஏ. டபிள்யூ. கே. ஓஸ் பெர்ல்-ஏ. டபிள்யூ. கே மற்றும் செட் போன்ற தரவு-உந்துதல் நிரலாக்கமானது பெர்ல் செட் லுவா க்ளோஜூர் தாவல் (மொழி) எஃப். டி. எம் அஞ்சல் முனை புரோகைமில் சல்லடை பேசிக் எக்ஸ். எஸ். எல். டி ஆல் ஆதரிக்கப்படும் ஒரு முன்னுதாரணமாகும், மேலும் வரிசை நிரலாக்க பேக்கஸ்-நௌர் வடிவ வெளிப்புற குறிப்புகள் இணைப்புகளைப் பார்க்கவும் "முக்கிய பகுதி நிரல் தர்க்கத்தை கடின கம்பி கட்டுப்பாட்டு கட்டமைப்புகளிலிருந்து தரவுகளுக்கு நகர்த்துவதாகும்". நிரலாக்க முன்னுதாரணங்கள்