கணினிகள், மென்பொருள்
RPN: வழிமுறை, முறைகள் மற்றும் உதாரணங்கள்
RPN ஒருமுறை உலகில் ஒரு கணினி புரோகிராமர் அடிப்படையில் உருவாக்கப்பட்டது. இன்று அது நன்றாக தெரியவில்லை. எனவே, காமிக் விளக்கம் வெளியே ஒரு "தலைகீழாக" போலிஷ் தொத்திறைச்சி சுருள்கள் சித்தரிக்கும், இன்னும் சில அறிவார்ந்த புரோகிராமர்களால் தவறாக புரிந்து முடியும். இல்லை நன்றாக ஜோக் விளக்க, ஆனால் இந்த வழக்கில் அது முற்றிலும் நியாயமானதே இருக்கும்.
இடையமை
அனைத்து புரோகிராமர்கள், மற்றும் மிகவும் மாணவர்கள் ஆபரேட்டர்கள் பயன்படுத்தி தெரிந்திருந்தால். உதாரணமாக, மாறிகள் x மற்றும் y பயன்படுத்தப்படும் கூட்டல் கருத்துரிமைக்கான X + கூட்டுத்தொகை மதிப்புகள். குறைவான நன்கு அறியப்பட்ட இந்த இடையமை குறியீடு எனப்படும் கணிதம் குறியீடில் பெறப்பட்டதாகும் என்று உண்மையில் இயந்திரங்களுக்கு பெரிய பிரச்சினை உள்ளது உண்மை. உள்ளீடு இரண்டு மதிப்புகள் இடது மற்றும் வலது பதிவு செய்யப்படுகிறது இந்த ஆபரேட்டர் பெறுகிறது. நிரலாக்கங்களில் குறியீட்டில் அறிகுறிகள் செயல்பணிகள் விருப்பப்பட்டால் பயன்படுத்தப்படும். உதாரணமாக, X + Y தொகுப்பி மற்றும் இறுதியில் இடையமை குறிமானம் மாற்றுகிறது இதில் மடிப்பு (எக்ஸ், y) ஒரு செயல்பாடு, பின்வருமாறு எழுதலாம். எனினும், அனைவருக்கும் கணித கிட்டத்தட்ட ஒவ்வொரு நிரலாக்க மொழியில் உள் சிறு-மொழி ஒரு வகையான இவை கணித வெளிப்பாடுகள், பயன்படுத்த வேண்டாம் கூட நல்லது தெரியும்.
சூத்திரம் மொழிபெயர்ப்பாளர்
முதல் உண்மையில் வெற்றிகரமான Fortran நிரலாக்க மொழி மாறிவிட்டது எனவே பெரும்பாலும் ஏனெனில் எண் கணித கோவையை (அதாவது சூத்திரம் ..) அது குறியீடு (ஒளிபரப்பு) மாற்றப்பட்ட, அது எனவே பெயர் - ஃபார்முலா மொழிபெயர்ப்பு. அதற்கு முன்பு, அவர்கள், எடுத்துக்காட்டாக, எழுத செயல்பாடுகளை வடிவில் மடிந்த வேண்டியிருந்தது ((மற்றும் பெருக்கி ஆ, இ)). புரோகிராமர்கள் சி மூலம் பி Mutliply எ சேர் போன்ற விஷயங்களை எழுத வேண்டியிருந்தது ஏனெனில் தானியங்கி மாற்றுவதற்கான சூத்திரத்தில் செயல்படுத்தும் COBOL பிரச்சனை மிகவும் கடினமான கருதப்பட்டது
என்ன இடையமை தவறு இருக்கிறது?
பிரச்சனை ஆபரேட்டர்கள் முன்னுரிமை மற்றும் associativity போன்ற பண்புகள் கொண்ட உள்ளது. இதன் காரணமாக, இடையமை செயல்பாடு வரையறை சாரமற்றதல்லாத பணியாகிறது. உதாரணமாக, பெருக்கல் எந்த செயலுக்கு 2 + 3 * 4 இடமிருந்து வலமாக ஆபரேட்டர்கள் செயல்திறனை இருக்கும் என, 2 மற்றும் 3 தொகை, 4 பெருக்கி சமமாக இல்லை என்று பொருள் கூடுதலாக அல்லது கழித்தல் விட அதிக முன்னுரிமை உள்ளது. உண்மையில், 4 பெருக்கி 3 மற்றும் 2. சேர்க்க இந்த உதாரணம் இடையமை வெளிப்பாடு கணக்கீடு அடிக்கடி ஆபரேட்டர்கள் மற்றும் ஏற்பிகளும் வரிசையில் ஒரு மாற்றம் தேவை என்று விளக்குகிறது. கூடுதலாக, இது மிகவும் தெளிவான குறியீட்டில் பார்க்க ப்ரேஸ் பயன்படுத்த வேண்டும். உதாரணமாக, (2 + 3) * (4 + 5) ஏனெனில் 2 + 3 * 4 + 5 நீங்கள் 4 3 பெருக்கவும், 2 மற்றும் 5 சேர்க்க வேண்டும் என்று அர்த்தம் அடைப்புக்குறிக்குள் இல்லாமல் எழுத முடியாது.
நீங்கள் ஆபரேட்டர்கள் கணக்கிட வேண்டும் எந்த வரிசையில் நீண்ட நினைவில் தேவைப்படுகிறது. இதன் காரணமாக, அடிக்கடி, கணித அறிய தொடங்க யார் மாணவர்கள் உண்மையான நடவடிக்கைகளை சரியாக செய்யப்படுகின்றன கூட, தவறான முடிவு கிடைக்கும். அது இதயம் நடவடிக்கை அறிக்கைகள் ஆர்டர் கற்பிக்க வேண்டும். முதலாவதாக, நடவடிக்கை அடைப்புக்குறிக்குள், பின்னர் பெருக்கல், வகுத்தல், மற்றும் இறுதியாக கூட்டல் கழித்தலிலும் மேற்கொள்ளப்பட்ட வேண்டும். ஆனால் கணித வெளிப்பாடுகள் எழுதி இடையமை குறிமானம் மட்டுமே மேலும் சேர்க்க முடியும் என்று சாத்தியம் "சிறிய மொழிகள்" ஒன்றாகும் மற்றொரு வழி உள்ளது.
முன்னொட்டு மற்றும் பின்இணைப்பு குறியீட்டில்
மிகவும் நன்கு அறியப்பட்ட மாற்று இரண்டு முன் அல்லது அதன் ஏற்பிகளும் பிறகு ஆபரேட்டர் பதிவு செய்ய உள்ளது. அவர்கள் முன்னொட்டு மற்றும் பின்இணைப்பு குறியீடு என்று அறியப்படுகிறது. தருக்கநூல் யான் Lukasevich 1920 முதல் கண்டுபிடித்தவர்களில். அவர் போலந்து வசித்து வந்தார்கள் சாதனை போலிஷ் அழைக்கப்படுகிறது. பின்இணைப்பு பதிப்பு, முறையே, ரிவர்ஸ் போலிஷ் குறிப்பு (ARF) அழைப்பு விடுத்தார். அது அவற்றில் ஒன்றான விரிவாக கருத்தில் கொள்ள போதுமானதாக எனவே இந்த இரண்டு முறைகளுக்கு இடையே ஒரே வித்தியாசம், (இடமிருந்து அல்லது வலது இடது இடமிருந்து) சாதனையை படிக்க இதில் திசையில் உள்ளது. OPN ஆபரேட்டர் அதன் ஏற்பிகளும் பிறகு எழுதப்படுகிறது. இவ்வாறு, AB + ஒரு + பி ஒரு உதாரணம் RPN பிரதிபலிக்கிறது
ஏற்பிகளும் வரம்பற்ற
குறியீட்டில் உடனடியாக பயன்படுத்தி அதனை n-adic ஆபரேட்டர் சுருக்கமாக விவரிக்கும் மற்றும் இடையமை குறிமானம் உண்மையில் மட்டுமே இரண்டு ஏற்பிகளும் வேலை, டி. ஈ இயல்பாகவே மட்டுமே பைனரி நடவடிக்கைகளுக்கு பொருத்தமான வேண்டுமா. உதாரணமாக, ஏபிசி @ எந்த ஆபரேட்டர் மூன்று செயலி தன்னை இடது செயல்படுகிறது இந்த வழக்கில் அதிகபட்ச ஏ, பி மற்றும் சி மதிப்பு மற்றும் ஒரு செயல்பாடு அழைப்பு @ ஒத்துள்ளது triadic குறி பயன்படுத்தி தலைகீழ் போலிஷ் வெளிப்பாடாக இருக்கிறது (ஏ, பி, சி). நீங்கள் போன்றிருக்கும் ஒரு @ கி.மு. அல்லது அந்த மாதிரி ஏதாவது இடையமை, அதனால் @ சின்னமாக எழுத முயற்சி என்றால், அது பயன் தராது என என்பது தெளிவாகும்.
ஆர்டர் கொடுத்த முன்னுரிமை
RPN ஆபரேட்டர்கள் முன்னுரிமை தங்கள் தோற்றத்தை உத்தரவால் குறிப்பிடப்படுகின்றன முடியும் என்று மற்றொரு பயன்படுத்தி உள்ளது. எழுத்துக்கள் நடவடிக்கைகளை இடையமை குறிப்பில் இருந்து மாற்றம் ஏற்பாடு செய்யும் விதமாக அவர்கள் சேர்க்கப்பட்டுள்ளது இருப்பினும் அதே நேரத்தில், ப்ரேஸ் அவசியமே ஏற்படாது. உதாரணமாக, ab + c * - குழப்பமற்ற சமானம் (a + b) * சி, பெருக்கல் பெருக்கல் இரண்டாவது செயலி கொடுக்கிறது செய்யப்படுகிறது கூடுதலாக வரை கணக்கிட முடியாது எனவே. > (AB +) * சி - -> (a + b) * சி கணக்கிடப்பட்ட ab + c * ஒரு நேரத்தில் ஒரு ஆபரேட்டர் மூலம் நமக்கு கிடைக்கும் மதிப்பு என்றால் ab + c * அதாவது,
கணக்கீடு வழிமுறை
OPN ஆபரேட்டர் வாதங்கள் இரண்டு மதிப்புகள் அவரது இடது எழுதப்பட்ட எடுக்கும் என்று ஒரு செயல்பாடு அதே தெரிகிறது. கூடுதலாக, அதன் கணக்கீடு செய்யப்படும் முறை ஸ்டாக் நடவடிக்கைகளை ஒத்துள்ளது மற்றும் பாகுபடுத்தி தேவை நீங்கியது என, நிரலாக்க மொழிகளில் பயன்படுத்த ஒரு இயற்கை குறியீட்டு முறையாகும். உதாரணமாக, வெளிப்பாடு போட்டியில் 5 + 6 * 7 ஒடுக்கிக் ஒரு 5, 6, 7 *, + போன்ற தோன்றும், மற்றும் இடமிருந்து வலமாக அது ஸ்கேனிங் மூலம் வெறுமனே கணக்கிடவும் முடியும் ஒரு அடுக்கில் மதிப்புகள் எழுத. செயல்படும் ஒரு பொதுவான அடையாளம், கணினி நினைவகம் மேல் உறுப்பு 2 தேர்வு, ஆபரேட்டர் பயன்படுத்துகிறது மற்றும் போதெல்லாம் விளைவாக நினைவக திரும்பினார். போது கணக்கீடு வெளிப்பாடு இறுதி விளைவாக ஸ்டேக் மேல் இருக்கும்.
உதாரணமாக:
- எஸ் = () 5, 6, 7, * + 5 ஸ்டாக் நிலைத்து நின்றது.
- எஸ் = (5) 6, 7, * + 6 ஸ்டாக் நிலைத்து நின்றது.
- எஸ் = (5, 6), 7 *, 7 ஸ்டாக் வைக்க.
- எஸ் = (5, 6, 7), ஆனால் * 2 + ஸ்டாக், பயன்பாடு * இருந்து மதிப்புகளை தேர்ந்தெடுக்க மற்றும் அடுக்கில் விளைவாக வைக்கவும்.
- எஸ் = (5, 6 * 7) = (5, 42) +2 மதிப்புகள், ஸ்டாக் இருந்து தேர்ந்தெடுக்கப்பட்ட + விண்ணப்பிக்க மற்றும் அடுக்கில் விளைவாக வைக்க.
- எஸ் = (5 + 42) = (47) கணக்கீடு நிறைவு சரி, விளைவு ஸ்டாக் மேல் சேமிக்கப்படுகிறது.
இந்தப் படிமுறை மீண்டும் மீண்டும் RPN சரிபார்க்கப்பட முடியும், ஆனால் ஒவ்வொரு முறையும் அது எந்தளவுக்குப் சிக்கலான எண் கணித கோவையை விஷயம், வேலை செய்யும்.
OPN மற்றும் அடுக்குகள் நெருக்கமாக இணைக்கப்பட்டிருக்கும். இந்த உதாரணம் தலைகீழ் போலிஷ் குறிமுறையின் மதிப்பு கணக்கிட நினைவக எவ்வாறு பயன்படுத்த வேண்டும் என்பதை நிரூபிக்கிறது. அதிகம் வெளிப்படாத நீங்கள் தீவிரமான சிறுநீரகச் செயலிழப்பு நிலையான இடையமை வெளிப்பாடு மாற்றும், ஸ்டாக் பயன்படுத்த முடியும்.
நிரலாக்க மொழிகளில் எடுத்துக்காட்டுகள்
இந்த (திட்டத்தின் ஒரு பகுதியாக காட்டுகிறது) போன்ற பாஸ்கல் RPN உணர்ந்தேன்.
டோக்கன் எண் அல்லது கையொப்ப செயல்பாட்டைச் என்பதை தீர்மானிக்கிறது நடைமுறை என்று சுழற்சியில் எண்கள் மற்றும் ஆபரேட்டர்கள் படிக்கவும். முதல் வழக்கில், ஸ்டாக் சேமிக்கப்படும் மதிப்பு, இரண்டு மேல் ஸ்டாக் எண்கள் பொருத்தமான நடவடிக்கையை இரண்டாவது செய்யப்படுகிறது மற்றும் விளைவாக சேமிக்கப்படுகிறது.
toktype: = எண்;
படிக்க (ங்கள்);
இ [+ ',' - ',' * ',' / '] என்றால் தொடங்கும்
பின்னர் eoln என்றால் CN: = '' வேறு படிக்க (CN);
என்றால் CN = '' பின்னர்
ஒரு வழக்கில்
+ ': Toktype: = சேர்க்க; '-': toktype: = துணை;
'*': Toktype: =: mul; '/': Toktype: = கிராம
இறுதியில்
வேறு தொடங்கும்
ஒரு = '-' பின்னர் SGN: = -1 வேறு பிழை: = கேட்ச் <> + ';
உடன்: = CN
இறுதியில்
முடிவுக்கு;
என்றால் getnumber (இல்லை பிழை) மற்றும் (toktype = எண்);
toktype <> எண் தொடங்குகின்றனர் என்றால்
ஒய் = பாப்; எக்ஸ்: = பாப்;
இல்லை என்றால் பிழைக்கு
வழக்கில் toktype
சேர்க்க இசட்: = X + Y; துணை இசட்: = எக்ஸ்-ஒய்; : mul இசட்: = எக்ஸ் * Y; கிராம இசட்: = X / Y
இறுதியில்
மிகுதி (Z);
சி செயல்படுத்த RPN (திட்டம் காட்டப்பட்டுள்ளது பகுதி):
{(; S வரை = strtok (0, வாட்) ங்கள் = strtok (கள், வாட்)) க்கான
ஒரு = strtod (ங்கள், & இ);
என்றால் (உ> ங்கள்) மிகுதி (அ);
வரையறுத்து rpnop (x) என்பது வைட்டமின் ( "% கேட்ச்:", * கள்), ஆ = பாப் (), ஒரு = பாப் (), மிகுதி (x) என்பது
வேறு என்றால் (* ங்கள் == + ') rpnop (ஒரு + ஆ);
வேறு என்றால் (* ங்கள் == '-') rpnop (அ - ஆ);
வேறு (* ங்கள் == '*') rpnop (அ * ஆ) என்றால்;
வேறு என்றால் (* ங்கள் == '/') rpnop (அ / ஆ);
#undef rpnop
}
வன்பொருள் அமலாக்கங்களைக்
அந்த நாட்களில், கணினி தொழில்நுட்பம் மிகவும் விலையுயர்ந்த இருந்த போது, அது ஒரு நல்ல யோசனை மக்கள் எழுச்சி arresters பயன்படுத்த கட்டாயப்படுத்த கருதப்பட்டது. 1960-ஆ-ல்., இப்போது, அது சாத்தியமான தலைகீழ் போலிஷ் குறியீட்டில் வேலை இது கால்குலேட்டர்கள், வாங்க இருந்தது. 2 சேர்க்க அவர்களில் 3 2, பின்னர் 3 உள்ளிட வேண்டும், மற்றும் "பிளஸ்" பொத்தானை அழுத்தவும். முதல் பார்வையில், ஆபரேட்டர் உள்ளீடு ஏற்பிகளும் சிக்கலான மற்றும் நினைவில் கொள்வது மிகவும் கடினமானதாகும் தோன்றியது, ஆனால் சிறிது நேரத்திற்கு பிறகு சில சிந்தனை இந்த வழியில் அடிமையாகி வருகின்றனர் மற்றவர்களும் அதையே சிக்கலான உள்ளது, எனவே மட்டுப்படுத்தப்பட்ட இது முட்டாள் இடையமை, வலியுறுத்துகின்றனர் ஏன் புரிந்து கொள்ள முடியவில்லை.
பர்ரோவை நிறுவனம் கூட இது ஸ்டேக் தவிர, வேறு எந்த நினைவகத்தை நம்பவில்லை ஒரு மெயின்ஃப்ரேம், கட்டப்பட்டது. இயந்திரம் காட்டும் ஒரே விஷயம் - மத்திய அடுக்கிற்கு நெறிமுறைகள் மற்றும் முறைகள் RPN பயன்படுத்தப்படும். அதன் இயக்கங்களின் அனைத்து மேல் N மதிப்புகள் பொருந்தும் இது arresters ஆபரேட்டர்கள், போற்றப்பட்டன. உதாரணமாக, அணி மிகவும் பொதுவான கட்டமைப்புகளுடன் கூடிய போட்டியிட ஸ்டாக் மேல் இருந்து திரும்பும் முகவரி எடுத்து, பல. டி போன்ற ஒரு இயந்திரம் கட்டிடக்கலை எளிய இருந்தது, ஆனால் வேகமாக போதாது. பல இருப்பினும், ஒவ்வொரு திட்டம் OPN ஒரு வெளிப்பாடாக இருந்தது எங்கே கம்ப்யூட்டிங் போன்ற ஒரு எளிய மற்றும் நேர்த்தியான அணுகுமுறை, அதன் தொடர்ச்சி ஏற்படுத்தி விடவில்லை என்கிற உண்மையை வருத்தத்துடன் தெரிவித்துக் கொள்கிறோம்.
RPN கொண்டு ஒரு முறை கால்குலேட்டர்கள் பிரபலமாக இருந்தன, மற்றும் சில மக்கள் இன்னும் அவர்களை விருப்பம் கொடுக்க. கூடுதலாக, அவர்கள் போன்ற ஆனது ஒரு ஸ்டேக்-சார்ந்த மொழிகளில் உருவாக்கிக் கொண்டிருந்தது. இன்று அது சிறிய பயன்படுத்தப்படும், ஆனால் அவரது முன்னாள் பயனர்கள் இன்னும் பழமையான நினைவை உள்ளது.
எனவே என்ன பின்னோக்கு போலிஷ் தொத்திறைச்சி பற்றி பொருள் நகைச்சுவைகளை உள்ளது?
நாங்கள் தொத்திறைச்சி தயாரிப்பது ஆபரேட்டர், இடையமை குறியீடில் அது ரோல் உள்ள வழக்கமான ஹாட் டாக் என இருக்க வேண்டும் என்று கருதி இருந்தால். RPN வலது இரண்டு பகுதிகளாக கணக்கீடு பிறகு தயாராக therebetween பெற அமைந்துள்ளது. இப்போது கடினமான பகுதியாக வருகிறது - கடுகு. அவள் டி, தொத்திறைச்சி ஏற்கனவே அனுப்பப்பட்டுள்ளது. ஈ முன்பே ஒரு ஒரும ஆபரேட்டர் கணக்கிடப்பட்டுள்ளது. அது கடுகு கூட uncalculated காட்டப்படுகிறார் வேண்டும் என்று ஆகையால் தொத்திறைச்சி வலது நகர்த்தப்படும் வேண்டும் நம்பப்படுகிறது ... ஆனால் அது சாத்தியம், இந்த மிகவும் பெரியதாக ஸ்டாக் தேவைப்படும் ...
Similar articles
Trending Now