Structural synthesis of programs
நிரல்களின் கட்டமைப்பு தொகுப்பு (எஸ்எஸ்பி) என்பது முன்மொழிவு கால்குலஸை அடிப்படையாகக் கொண்ட (தானியங்கி) நிரல் தொகுப்பின் ஒரு சிறப்பு வடிவமாகும். இன்னும் துல்லியமாக, இது ஒரு நிரலின் கட்டமைப்பை விவரிக்க உள்ளுணர்வு தர்க்கத்தைப் பயன்படுத்துகிறது, இதனால் நிரல் தானாகவே சப்ரூட்டின்கள் அல்லது கணினி கட்டளைகள் போன்ற துண்டுகளிலிருந்து உருவாக்கப்படலாம். இந்த துண்டுகள் சரியாக செயல்படுத்தப்பட்டுள்ளன என்று கருதப்படுகிறது, எனவே இந்த துண்டுகளின் சரியான சரிபார்ப்பு தேவையில்லை. சேவை சார்ந்த கட்டமைப்புகளுக்கான சேவைகளின் தானியங்கி கலவைக்கும், பெரிய உருவகப்படுத்துதல் திட்டங்களின் தொகுப்புக்கும் எஸ்எஸ்பி மிகவும் பொருத்தமானது. தானியங்கி நிரல் தொகுப்பு செயற்கை நுண்ணறிவு துறையில் தொடங்கியது, தானியங்கி சிக்கலைத் தீர்ப்பதற்கான மென்பொருளுடன். முதல் நிரல் ஒருங்கிணைப்பானது 1969 இல் கார்டெல் கிரீன் என்பவரால் உருவாக்கப்பட்டது. ஏறத்தாழ அதே நேரத்தில், ஆர். கான்ஸ்டபிள், இசட் உட்பட கணிதவியலாளர்கள். மன்னா மற்றும் ஆர். வால்டிங்கர் ஆகியோர் தானியங்கி நிரல் தொகுப்புக்கான முறையான தர்க்கத்தின் சாத்தியமான பயன்பாட்டை விளக்கினர். நடைமுறையில் பொருந்தக்கூடிய நிரல் தொகுப்பான்கள் கணிசமாக பின்னர் தோன்றின. 1979 ஆம் ஆண்டில் ஆண்ட்ரே எர்ஷோவ் மற்றும் டொனால்ட் க்னுத் ஆகியோரால் ஏற்பாடு செய்யப்பட்ட நவீன கணிதம் மற்றும் கணினி அறிவியலில் வழிமுறைகள் குறித்த மாநாட்டில் நிரல்களின் கட்டமைப்பு தொகுப்பு பற்றிய யோசனை அறிமுகப்படுத்தப்பட்டது. சிக்கலைத் தீர்ப்பது குறித்த ஜி. போல்யாவின் நன்கு அறியப்பட்ட புத்தகத்திலிருந்து இந்த யோசனை உருவானது. எஸ்எஸ்பியில் ஒரு சிக்கலைத் தீர்ப்பதற்கான திட்டத்தை வகுப்பதற்கான முறை ஒரு முறையான அமைப்பாக வழங்கப்பட்டது. இந்த அமைப்பின் அனுமான விதிகள் 1982 ஆம் ஆண்டில் ஜி. மின்ட்ஸ் மற்றும் ஈ. டியுகு ஆகியோரால் மறுசீரமைக்கப்பட்டு தர்க்கத்தில் நியாயப்படுத்தப்பட்டன. எஸ்எஸ்பியைப் பயன்படுத்தும் ஒரு நிரலாக்க கருவி பிரைஸ் 1980 களில் உருவாக்கப்பட்டது. எஸ்எஸ்பியை ஆதரிக்கும் சமீபத்திய ஒருங்கிணைந்த மேம்பாட்டு சூழல் கோகோவிலா ஆகும்-இது டொமைன் குறிப்பிட்ட மொழிகளை செயல்படுத்துவதற்கும் பெரிய ஜாவா நிரல்களை உருவாக்குவதற்கும் ஒரு மாதிரி அடிப்படையிலான மென்பொருள் மேம்பாட்டு தளமாகும். எஸ்எஸ்பியின் தர்க்கம் நிரல்களின் கட்டமைப்பு தொகுப்பு என்பது ஏற்கனவே செயல்படுத்தப்பட்ட கூறுகளிலிருந்து நிரல்களை உருவாக்குவதற்கான ஒரு முறையாகும் (எ. கா. கணினி கட்டளைகள் அல்லது மென்பொருள் பொருள் முறைகளிலிருந்து) அவை செயல்பாடுகளாகக் கருதப்படலாம். செயல்பாடுகளின் பொருந்தக்கூடிய தன்மை பற்றிய கோட்பாடுகளை எழுதுவதன் மூலம் உள்ளுணர்வு முன்மொழிவு தர்க்கத்தில் தொகுப்புக்கான ஒரு விவரக்குறிப்பு வழங்கப்படுகிறது. ஒரு சார்பு f இன் பொருந்தக்கூடிய தன்மையைப் பற்றிய ஒரு கோட்பாடு ஒரு தர்க்கரீதியான உட்பொருளாகும் X1wX2w. wXm → Y1w Y2. Yn, இங்கு X1, X2,. Xm என்பது முன் நிபந்தனைகள் மற்றும் Y1, Y2,. Yn என்பது சார்பு f இன் பயன்பாட்டின் பிந்தைய நிபந்தனைகள். உள்ளுணர்வு தர்க்கத்தில், சார்பு f இந்த சூத்திரத்தின் உணர்தல் என்று அழைக்கப்படுகிறது. ஒரு முன்நிபந்தனை என்பது உள்ளீட்டு தரவு உள்ளது என்று குறிப்பிடும் ஒரு முன்மொழிவாக இருக்கலாம், எ. கா. "மாறி xi ஒரு மதிப்பைப் பெற்றுள்ளது" என்ற பொருளைக் கொண்டிருக்கலாம், ஆனால் இது வேறு சில நிபந்தனைகளையும் குறிக்கலாம், எ. கா. f செயல்பாட்டைப் பயன்படுத்துவதற்குத் தேவையான வளங்கள் கிடைக்கின்றன, போன்றவை. ஒரு முன் நிபந்தனை மேலே கொடுக்கப்பட்ட கோட்பாட்டின் அதே வடிவத்தின் உட்குறிப்பாகவும் இருக்கலாம்; பின்னர் அது ஒரு சப்டாஸ்க் என்று அழைக்கப்படுகிறது. ஒரு சப்டாஸ்க் என்பது f செயல்பாட்டைப் பயன்படுத்தும்போது உள்ளீடாக கிடைக்க வேண்டிய ஒரு செயல்பாட்டைக் குறிக்கிறது. இந்த செயல்பாடு எஸ்எஸ்பியின் செயல்பாட்டில் ஒருங்கிணைக்கப்பட வேண்டும். இந்த வழக்கில், கோட்பாட்டை உணர்தல் என்பது ஒரு உயர் வரிசை செயல்பாடு, அதாவது, மற்றொரு செயல்பாட்டை உள்ளீடாகப் பயன்படுத்தும் செயல்பாடு. எடுத்துக்காட்டாக, சூத்திரம் (நிலை → அடுத்த நிலை) ஆரம்ப நிலை → முடிவு இரண்டு உள்ளீடுகள் மற்றும் வெளியீட்டு முடிவுடன் ஒரு உயர் வரிசை செயல்பாட்டைக் குறிப்பிடலாம். முதல் உள்ளீடு என்பது நிலையிலிருந்து அடுத்த நிலையைக் கணக்கிடுவதற்கு ஒருங்கிணைக்கப்பட வேண்டிய ஒரு செயல்பாடாகும், இரண்டாவது உள்ளீடு ஆரம்ப நிலை ஆகும். உயர் வரிசை செயல்பாடுகள் எஸ்எஸ்பிக்கு பொதுவான தன்மையை அளிக்கின்றன-ஒரு ஒருங்கிணைந்த நிரலில் தேவைப்படும் எந்தவொரு கட்டுப்பாட்டு கட்டமைப்பும் முன்கூட்டியே திட்டமிடப்பட்டு அந்தந்த விவரக்குறிப்புடன் தானாகவே பயன்படுத்தப்படலாம். குறிப்பாக, இங்கே வழங்கப்பட்ட கடைசி கோட்பாடு ஒரு சிக்கலான நிரலின் விவரக்குறிப்பாகும்-அடுத்த நிலையை அமைப்பின் நிலையிலிருந்து கணக்கிடக்கூடிய மாதிரிகளில் மாறும் அமைப்புகளை உருவகப்படுத்துவதற்கான உருவகப்படுத்துதல் இயந்திரம். குறிப்புகள் வெளிப்புற இணைப்புகள் தானியங்கி மென்பொருள் பொறியியல் முகப்புப்பக்கம் மென்பொருள் பொறியியல் தர்க்க நிரலாக்கம்