මූලික මට්ටම්:
අපි සරලම හා මූලික මට්ටමින් දේවල් දෙස බලමු.
ගණිතය සඳහා, අපට ඇත්තේ:
2 + 3 = 5
මම ඒ ගැන ඉගෙනගත්තේ මම ඉතා තරුණ අවධියේදී. මට වඩාත් මූලික අංග දෙස බැලිය හැකිය: වස්තු දෙකක් සහ වස්තු තුනක්. මහා.
පරිගණක වැඩසටහන් සඳහා, බොහෝ අය ඉහළ මට්ටමේ භාෂාවක් භාවිතා කිරීමට නැඹුරු වෙති. සමහර ඉහළ මට්ටමේ භාෂාවන්ට සී සී වැනි පහළ ඉහළ පෙළේ භාෂාවකට “සම්පාදනය” කළ හැකිය. එවිට එකලස් කිරීමේ භාෂාවට පරිවර්තනය කළ හැකිය. එකලස් කිරීමේ භාෂාව යන්ත්ර කේත බවට පරිවර්තනය වේ. බොහෝ අය සිතන්නේ සංකීර්ණත්වය එතැනින් අවසන් වන නමුත් එය එසේ නොවේ: නූතන CPUs යන්ත්ර කේතය උපදෙස් ලෙස සලකයි, නමුත් එම උපදෙස් සත්ය වශයෙන්ම ක්රියාත්මක කිරීම සඳහා “මයික්රෝ කේතය” ධාවනය කරන්න.
මෙයින් අදහස් කරන්නේ, වඩාත් මූලික මට්ටමින් (සරලම ව්යුහයන් සමඟ කටයුතු කරන), අපි දැන් කටයුතු කරන්නේ දෘඩාංග තුළ අන්තර්ගත කර ඇති සහ බොහෝ ක්රමලේඛකයින් කෙලින්ම භාවිතා නොකරන හෝ යාවත්කාලීන නොකරන ක්ෂුද්ර කේත සමඟ ය. ඇත්ත වශයෙන්ම, බොහෝ ක්රමලේඛකයින් මයික්රෝ කේතයට අත නොතබනවා පමණක් නොව (මයික්රෝ කේතයට වඩා මට්ටම් 0 ක් ඉහළයි), බොහෝ ක්රමලේඛකයින් යන්ත්ර කේත ස්පර්ශ නොකරයි (මයික්රෝ කේතයට වඩා 1 මට්ටම ඉහළයි), එකලස් කිරීම (මයික්රෝ කේතයට වඩා මට්ටම් 2 ක්) ( හැර, සමහර විට, විද්යාලයේ විධිමත් පුහුණුවක් සඳහා). බොහෝ ක්රමලේඛකයින් කාලය ගත කරන්නේ මට්ටම් 3 ක් හෝ වැඩි ගණනක් පමණි.
තවද, අපි එකලස් කිරීම දෙස බැලුවහොත් (එය සාමාන්යයෙන් මිනිසුන්ට ලැබෙන මට්ටමට වඩා අඩුය), එක් එක් පියවර සාමාන්යයෙන් පුහුණු කර ඇති පුද්ගලයින්ට තේරුම් ගත හැකි අතර එම පියවර අර්ථ නිරූපණය කිරීමට සම්පත් ඇත. මේ අර්ථයෙන් ගත් කල, එකලස් කිරීම ඉහළ මට්ටමේ භාෂාවකට වඩා සරල ය. කෙසේ වෙතත්, එකලස් කිරීම කෙතරම් සරලද යත්, සංකීර්ණ කාර්යයන් හෝ මධ්යස්ථ කාර්යයන් පවා කිරීම ඉතා වෙහෙසකරය. ඉහළ මට්ටමේ භාෂා අපව එයින් නිදහස් කරයි.
“ප්රතිලෝම ඉංජිනේරු විද්යාව” පිළිබඳ නීතියක දී විනිසුරුවරයෙකු ප්රකාශ කළේ කේතය න්යායාත්මකව වරකට එක් බයිටයක් හැසිරවිය හැකි වුවද නවීන වැඩසටහන් සඳහා බයිට් මිලියන ගණනක් සම්බන්ධ වන බැවින් සමහර වාර්තා (කේත පිටපත් වැනි) සෑදිය යුතු බවයි. කළ හැකි උත්සාහයක්. (එබැවින් අභ්යන්තර සංවර්ධනය යනු ප්රකාශන හිමිකම් නීතියේ සාමාන්යකරණය කරන ලද “පිටපත් නොකිරීම” රීතිය උල්ලං violation නය කිරීමක් ලෙස නොසැලකේ.) (මම බොහෝ විට අනවසර සීගා ජෙනසිස් කාට්රිජ් සෑදීමට සිතමින් සිටිමි, නමුත් ගේම් ජෙනී නඩුවේදී පැවසූ දෙයක් ගැන සිතමින් සිටින්නට ඇත. )
නවීකරණය:
ඔබ 286s සඳහා වූ කේතය ධාවනය කරනවාද? නැත්නම් ඔබ 64-බිට් කේතය ධාවනය කරනවාද?
ගණිතය සහස්ර ගණනාවක් පුරා විහිදෙන මූලධර්ම භාවිතා කරයි. පරිගණක සමඟ මිනිසුන් සාමාන්යයෙන් දශක දෙකකට වඩා පැරණි දෙයක් ආයෝජනය කිරීම සම්පත් නාස්ති කිරීමක් ලෙස සලකති. ඒ කියන්නේ ගණිතය වඩාත් හොඳින් පරීක්ෂා කළ හැකිය.
භාවිතා කළ මෙවලම්වල ප්රමිති:
සී පිරිවිතරයන්ට අනුකූලව දෝෂ රහිත සී සම්පාදකයෙකු වැනි දෙයක් නොමැති බව මට (මට වඩා විධිමත් පරිගණක ක්රමලේඛන පුහුණුවක් ලැබූ මිතුරෙකු විසින්) ඉගැන්වීය. මෙයට හේතුව සී භාෂාව මූලික වශයෙන් උපකල්පනය කරන්නේ තොගයක් සඳහා අනන්ත මතකය භාවිතා කිරීමේ හැකියාවයි. නිසැකවම, එවැනි කළ නොහැකි අවශ්යතාවයක් ස්වභාවධර්මයේ තරමක් සීමිත වූ සැබෑ යන්ත්ර සමඟ වැඩ කරන භාවිතා කළ හැකි සම්පාදකයින් සෑදීමට මිනිසුන් උත්සාහ කළ විට වෙනස් විය යුතුව තිබුණි.
ප්රායෝගිකව, වින්ඩෝස් ස්ක්රිප්ට් සත්කාරකයේ ජේස්ක්රිප්ට් සමඟ, වස්තූන් භාවිතා කරමින් හොඳ දේ කිරීමට මට හැකි වී තිබේ. (මම පරිසරයට කැමතියි නව කේතයක් අත්හදා බැලීමට අවශ්ය මෙවලම් කට්ටලය මයික්රොසොෆ්ට් වින්ඩෝස් හි නවීන සංස්කරණ තුළට ගොඩනගා ඇති නිසා.) මෙම පරිසරය භාවිතා කරන විට, සමහර විට වස්තුව ක්රියා කරන ආකාරය පිළිබඳ පහසුවෙන් සොයාගත හැකි ලියකියවිලි නොමැති බව මට පෙනී ගියේය. කෙසේ වෙතත්, වස්තුව භාවිතා කිරීම කොතරම් වාසිදායකද, මම කෙසේ හෝ එසේ කරමි. ඉතින් මම කරන්නෙ කේතය ලිවීම, එය හෝනට් කූඩුවක් ලෙස දෝෂ සහිත විය හැකි අතර, හොඳ ප්රති sand ල දැකිය හැකි මනරම් වැලිපිලි සහිත පරිසරයක එසේ කරන්න, සහ එය සමඟ අන්තර්ක්රියා කරන අතරතුර වස්තුවේ හැසිරීම් ගැන ඉගෙන ගන්න.
වෙනත් අවස්ථාවල දී, සමහර විට මම වස්තුවක් හැසිරෙන ආකාරය හදුනා ගැනීමෙන් පසුව පමණක්, වස්තුව (මෙහෙයුම් පද්ධතිය සමඟ බැඳී) දෝෂ සහිත බව මට පෙනී ගොස් ඇති අතර එය මයික්රොසොෆ්ට් හිතාමතාම තීරණය කර ඇති දන්නා කරුණක් වන අතර එය නිවැරදි නොවනු ඇත. .
එවැනි තත්වයන් තුළ, වසර 10 කට වැඩි කාලයක් තුළ “දුරස්ථ සිදුරු දෙකක් පමණක්” පිළිබඳ සුප්රසිද්ධ ආරක්ෂක වාර්තාවක් සහිතව, නිතිපතා (වසරකට දෙවරක්) නියමිත වේලාවට නව නිකුතුවන් නිර්මාණය කරන දක්ෂ වැඩසටහන්කරුවන් විසින් නිර්මාණය කරන ලද OpenBSD මත මම විශ්වාසය තබනවාද? (අඩු බරපතල ගැටළු සඳහා ඔවුන් සතුව දෝෂ සහිත පැච් ඇත.) නැත, කිසිසේත් නැත. මම එතරම් උසස් තත්ත්වයේ නිෂ්පාදනයක් මත විශ්වාසය තබන්නේ නැත, මන්ද මම වැඩ කරන්නේ මයික්රොසොෆ්ට් වින්ඩෝස් භාවිතා කරන යන්ත්ර සපයන පුද්ගලයින්ට සපයන ව්යාපාරවලට සහාය වන ව්යාපාරයක් සඳහා වන නිසා මගේ කේතය ක්රියාත්මක වීමට අවශ්ය වන්නේ එයයි.
ප්රායෝගිකත්වය / භාවිතයට අවශ්ය වන්නේ මිනිසුන්ට ප්රයෝජනවත් වන වේදිකාවල මා වැඩ කළ යුතු අතර එය ආරක්ෂාව සඳහා ප්රසිද්ධියක් උසුලන වේදිකාවකි (සහස්රයේ මුල් දිනවල සිටම එම සමාගමේ නිෂ්පාදන වඩා නරක අතට හැරුණු විට විශාල දියුණුවක් ලබා ඇත). .
සාරාංශය
පරිගණක ක්රමලේඛනය වඩාත් දෝෂ සහිත වීමට හේතු රාශියක් ඇති අතර එය පරිගණක භාවිතා කරන්නන්ගේ ප්රජාව විසින් පිළිගනු ලැබේ. ඇත්ත වශයෙන්ම, බොහෝ කේත ලියා ඇත්තේ දෝෂ රහිත උත්සාහයන් නොඉවසන පරිසරවල ය. (ආරක්ෂක ප්රොටෝකෝල සංවර්ධනය කිරීම වැනි සමහර ව්යතිරේකයන්ට මේ සම්බන්ධයෙන් තව ටිකක් උත්සාහයක් ලැබිය හැකිය.) ව්යාපාරවලට වැඩි මුදලක් ආයෝජනය කිරීමට අකමැති වීම සහ ගනුදෙනුකරුවන් සතුටු කිරීම සඳහා කෘතිම කාලසීමාවන් මග හැරීම යන පොදු සිතුවිලි වලට අමතරව, එහි බලපෑම ද ඇත ඔබ වැඩි කාලයක් ගත කරන්නේ නම්, ඔබ යල්පැනගිය වේදිකාවක් මත වැඩ කරනු ඇති බව සරලව පවසන තාක්ෂණයේ ගමන දශකයක් තුළ දේවල් සැලකිය යුතු ලෙස වෙනස් වන බැවිනි.
අක්රීයව, strlen සහ strcpy සඳහා ප්රභව කේත කිහිපයක් දුටු විට ඉතා ප්රයෝජනවත් හා ජනප්රිය කාර්යයන් කෙතරම් කෙටිද යන්න ගැන මා පුදුමයට පත් වූ බව මට මතකයි. නිදසුනක් ලෙස, strlen යනු "int strlen (char * x) {char y = x; අතර ( (y ++)); ආපසු (yx) -1;}" වැනි දෙයක් විය හැකිය.
කෙසේ වෙතත්, සාමාන්ය පරිගණක වැඩසටහන් ඊට වඩා දිගු වේ. එසේම, නවීන ක්රමලේඛන බොහොමයක් වෙනත් කේත භාවිතා කරනු ඇති අතර ඒවා තරයේ පරීක්ෂා කළ හෝ දෝෂ සහිත යැයි දන්නා විය හැකිය. වර්තමාන පද්ධති පහසුවෙන් සිතිය හැකි දේට වඩා විස්තීර්ණ ය, “කුඩා මට්ටම් හසුරුවන විස්තර” ලෙස කුඩා ප්රමාණයක් අතහැර දැමීම හැර.
මෙම අනිවාර්ය සංකීර්ණතාවය සහ සංකීර්ණ හා වැරදි පද්ධති සමඟ වැඩ කිරීමේ නිශ්චිත භාවය නිසා පරිගණක ක්රමලේඛනය බොහෝ ගණිතයට වඩා සත්යාපනය කිරීමට බොහෝ දෘඩාංග බවට පත් කරයි, එහිදී දේවල් බොහෝ සරල මට්ටම් කරා තල්ලු වේ.
ඔබ ගණිතයේ දේවල් බිඳ දැමූ විට, ඔබට දරුවන්ට තේරුම් ගත හැකි තනි කොටස් ලබා ගනී. බොහෝ අය ගණිතය විශ්වාස කරති; අවම වශයෙන් මූලික අංක ගණිතය (හෝ, අවම වශයෙන්, ගණන් කිරීම).
කබාය යටතේ සිදුවන්නේ කුමක්දැයි බැලීමට ඔබ සැබවින්ම පරිගණක ක්රමලේඛනය බිඳ දැමූ විට, ඔබ අවසන් වන්නේ බිඳුණු ප්රමිතීන් සහ කේතයන් බිඳී යාමෙන් අවසානයේදී ඉලෙක්ට්රොනික් ආකාරයෙන් ක්රියාත්මක වන අතර භෞතිකව ක්රියාත්මක කිරීම මයික්රෝ කේතයට වඩා එක් පියවරක් පමණි. ස්පර්ශ කිරීමට එඩිතර නැත (ඔවුන් ඒ ගැන දැනුවත් නම්).
දෝෂ රහිත කේත ලිවිය හැකිය යන මතයට තරයේ විරුද්ධ වන විද්යාලයේ සිටින සමහර උපාධිධාරීන් හෝ මෑත කාලීන උපාධිධාරීන් සමඟ මම කතා කර ඇත්තෙමි. ඔවුන් හැකියාව කපා හැර ඇති අතර, සමහර ආකර්ෂණීය උදාහරණ (මට පෙන්වීමට හැකි) සමහර ඒත්තු ගැන්වෙන තර්ක බව ඔවුන් පිළිගත්තද, ඔවුන් එවැනි සාම්පල නියෝජනය නොකරන දුර්ලභ නළා ලෙස සලකන අතර, ගණන් කිරීමට ඇති හැකියාව තවමත් ප්රතික්ෂේප කරයි. එවැනි උසස් ප්රමිතීන් තිබීම මත. (ගණිතයේ අප දකින වඩා විශ්වාසදායක පදනමට වඩා බොහෝ වෙනස් ආකල්පයකි.)