[Powered by Google Translate] ராப் BOWDEN: நாம் கம்பைலர்களை பற்றி பேச.
இந்த புள்ளி வரை, நீங்கள் உங்கள் மூல குறியீடு போல தட்டச்சு
சில கோப்புகள், என்று இந்த பெரிய கருப்பு பெட்டி மூலம் அவர்களை அனுப்பி
கணகண வென்ற சப்தம், மற்றும் அவுட் என்று உங்கள் இயங்கக்கூடிய கோப்பு வருகிறது
சரியாக என்ன உங்கள் மூல குறியீடு எழுதினார்.
ஆகிவிட்டது என்று மந்திர என, நாம் ஒரு நெருக்கமான போகிறாய்
உண்மையில் என்ன நடக்கிறது பாருங்கள்
நாம் ஒரு கோப்பு தொகுக்க போது.
அதனால் என்ன, அது ஏதோ தொகுக்க அர்த்தம்?
>> சரி, மிகவும் பொதுவாக, அது பொருள்
மாற்றும் குறியீடு ஒரு எழுதப்பட்ட
மற்றொரு மொழி நிகழ்ச்சிகளை.
ஆனால் மக்கள் என்று பொதுவாக போது அவர்கள், ஏதோ தொகுத்தல்
அவர்கள் ஒரு உயர்ந்த நிலை நிரலாக்க இருந்து அதை எடுத்து
குறைந்த அளவில் நிரலாக்க மொழி மொழி.
இந்த மிக தற்சார்புடைய சொற்கள் போல தோன்றலாம்.
உதாரணமாக, நீங்கள் ஒரு உயர் போன்ற சி நினைக்கவில்லை
நிலை நிரலாக்க மொழி, ஆனால் நீங்கள் அதை தொகுக்க வேண்டும்.
ஆனால் அது அனைத்து உறவினர்.
நாம் பார்க்கலாம் என, சட்டசபை குறியீடு மற்றும் இறுதியில் இயந்திரம்
நாம் கீழே தொகுக்க அந்த குறியீடு undeniably குறைந்த அளவு
சி விட
நாம் இன்று ஆர்ப்பாட்டத்தில் கணகண வென்ற சப்தம் பயன்படுத்தி இருக்க வேண்டும் என்றாலும், ஒரு
இங்கே கருத்துக்கள் நிறைய மற்ற கம்பைலர்களை வழியாக செல்லும்.
>> கணகண வென்ற சப்தம் செய்ய, ஒட்டுமொத்த நான்கு முக்கிய படிநிலைகள் உள்ளன
தொகுப்பு.
இரண்டு; இந்த ஒரு, Preprocessor செய்ய preprocessing இருக்கும்
தொகுப்பி செய்ய தொகுப்பு; மூன்று, பூட்டு
, மற்றும் நான்கு; அசெம்பிளர் செய்யப்படுகிறது
இணைக்கும் தொடுப்பி செய்யப்படுகிறது.
இது குழப்பமானதாக இருக்கலாம் என்று ஒட்டுமொத்த substeps ஒன்று
கணகண வென்ற சப்தம் கம்பைலர்களை தொகுப்பி என்று, ஆனால்
நாம் அது கிடைக்கும்.
நாம் உதாரணமாக ஒரு எளிய ஹலோ உலக நிரலை பயன்படுத்தி
இந்த வீடியோ முழுவதும்.
ஒரு பார்க்கலாம்.
>> முதல் படி preprocessing உள்ளது.
Preprocessor என்ன செய்ய?
நீங்கள் படித்ததிலேயே அல்லது எழுதப்பட்ட நான் மிகவும் அதிகமாக ஒவ்வொரு சி திட்டத்தில்,
நீங்கள் ஒரு ஹாஷ் தொடங்கும் என்று குறியீடு வரிகளை பயன்படுத்தப்படுகிறது.
நான் அதை ஹெஷ் அழைக்கிறேன், ஆனால் நீங்கள் அதை பவுண்டுகள், எண் கூப்பிடு
கையெழுத்திட, அல்லது கூர்மையான.
அத்தகைய வரி ஒரு Preprocessor உத்தரவு உள்ளது.
ஒருவேளை நீங்கள் # முன் வரையறுத்து # அடங்கும் பார்த்து, ஆனால் அங்கு
Preprocessor அங்கீகரிக்கிறது என்று இன்னும் பல உள்ளன.
ஒரு # எங்கள் ஹலோ உலக உதாரணம் வரையறை சேர்க்க.
இப்போது இந்த கோப்பு மட்டும் Preprocessor இயக்க அனுமதிக்க.
Clage-மின் கொடி கடந்து மூலம், நீங்கள் அதை இயக்க அறிவுரைகள்
வெறும் Preprocessor.
என்ன நடக்கிறது என்று பார்ப்போம்.
கணகண வென்ற சப்தம் எல்லாம் வெளியே துப்புகின்றார் தெரிகிறது
கட்டளை வரியில்.
என்று ஒரு புதிய கோப்பு இந்த வெளியீடு அனைத்து காப்பாற்ற
hello2.c, நம் கட்டளைக்கு> hello2.c சேர்க்க வேண்டும்.
இப்போது நாம் செயல்பட தொடங்குகிறது கோப்பு பாருங்கள் நாம்.
>> ஓ, என்ன நமது குறுகிய சிறிய நிரல் என்ன நடந்தது?
நாம் இந்த கோப்பு கீழே அனைத்து வழி சென்றால், நாம் பார்க்கலாம்
நாம் உண்மையில் எழுதியது என்று குறியீடு சில.
# வரையறை போய்விட்டது என்று அறிவிப்பு மற்றும் பெயர் அனைத்து நிகழ்வுகளையும்
நாம் குறிப்பிட்ட சரியாக என்ன என மாற்றப்பட்டுள்ளது
# வரி வரையறை.
எனவே இந்த typedefs மற்றும் செயல்பாடு அறிவிப்புக்கள் என்ன
கோப்பு மேலே?
# வரையறுக்க மட்டும் Preprocessor என்று அறிவிப்பு
நாம் குறிப்பிட்ட அந்த உத்தரவு.
நாங்கள் # stdio.h அடங்கும்.
துடுக்கானது அனைத்து வரிகளும் தான் stdio.h நகல் உண்மையில்
இந்த கோப்பின் மேல் நோக்கி ஒட்டப்படும்.
தலைப்பு கோப்புகள் செயல்பாடு மிகவும் பயனுள்ளதாக இருக்கும் அதனால் தான்
அறிவிப்புக்கள்.
அதற்கு பதிலாக செயல்பாடு அனைத்து நகலெடுத்து ஒட்டவும் தேவைப்படும் என்று
உங்கள் கோப்பின் மேல் பயன்படுத்தி திட்டமிட்டு அறிவிப்புக்கள்,
Preprocessor தலைப்பு அவற்றை நகலெடுத்து ஒட்டவும்
நீங்கள் தாக்கல்.
>> இப்போது நாம் preprocessing செய்து, நாம் மீது நடவடிக்கை
தொகுப்பு.
இந்த என்பதால் இந்த நடவடிக்கை தொகுப்பு அழைக்க காரணம்
கணகண வென்ற சப்தம் உண்மையில் அதன் சி இருந்து ஒடுக்குவதற்கான அங்கு படி
சட்டசபை குறியீடு.
கணகண வென்ற சப்தம் சட்டசபை ஒரு கோப்பு கீழே தொகுக்க வேண்டும், ஆனால் பொருட்டு
மேலும் தொடர்ந்து, அதை கடந்து எஸ் கொடி
கட்டளை வரியில்.
நாம் சட்டசபை பாருங்கள்
கோப்பு என்று outputted.
இது முற்றிலும் வேறுபட்ட மொழி போல்.
சட்டமன்ற குறியீடு மிக செயலி குறிப்பிட்ட ஆகும்.
இந்த வழக்கில், முதல் CS50 பயன்பாட்டிற்கான ஒரு இயங்கும்
மெய்நிகர் x86 செயலி, இந்த x86 சட்டசபை குறியீடு உள்ளது.
மிக சில மக்கள், இந்த நாட்களில் சட்டசபை குறியீடு நேரடியாக எழுத
ஆனால் நீங்கள் எப்போதாவது எழுத ஒவ்வொரு சி நிரல் கீழே மாற்றம்
சட்டசபை வரும்.
மீண்டும், நாம் சட்டமன்றத்தில் ஒரு சி ஒடுக்குவதற்கான இந்த படி அழைப்பு
நாம் அதிக அளவில் இருந்து குறைந்த அளவில் போகிறோம் இருந்து
மொழி நிகழ்ச்சிகளை.
>> என்ன சி விட சட்டசபை குறைந்த அளவில் இருக்கிறது?
நன்றாக, சட்டமன்றத்தில், நாம் மிக நாங்கள் என்ன செய்ய முடியும் என்ற மட்டுமே.
எந்த எந்த நாட்டின் என்றால், அது போது, தான் செய்ய, அல்லது சுழல்கள் உள்ளன.
ஆனால் அதே காரியங்களை சாதிக்க முடியும் என்று இந்த கட்டுப்பாடு
கட்டமைப்புகள் மட்டுப்படுத்தப்பட்ட நடவடிக்கைகளை பயன்படுத்தி வழங்கும்
சட்டசபை வழங்குகிறது.
ஆனால் குறைந்த அளவில் சட்டசபை உண்மையில் எப்படி பார்க்க போகலாம்
நம் தொகுப்பு மேலும் ஒரு படி, யாகும்.
அது சட்டமன்ற குறியீடு மாற்றும் அசெம்பிளர் வேலை தான்
பொருள் அல்லது இயந்திர குறியீடு மாற்றும்.
அசெம்பிளர் வெளியீடு சட்டமன்ற இல்லை என்பதை நினைவில்;
மாறாக, அது சட்டசபை மற்றும் வெளியீடுகளை இயந்திர குறியீடு எடுத்து.
இயந்திர குறியீடு உண்மையான 1 மற்றும் 0 என்ற அந்த ஒரு CPU தான் முடியும்
நாம் இன்னும் வேலை ஒரு சிறிய பிட் உள்ளது என்றாலும், புரிந்து கொள்ள
நாம் நிரலை இயக்க முடியும் முன்.
நாம் கடந்து எங்கள் சட்டமன்ற குறியீடு வரிசைப்படுத்துங்கள்
கணகண வென்ற சப்தம்-கேட்ச் கொடி.
இப்போது கூடியிருந்த கோப்பில் என்ன என்று பார்ப்போம்.
>> சரி, அது மிகவும் உதவும் இல்லை.
இயந்திர குறியீடு ஒன்றாக மற்றும் பூஜ்ஜியங்களாக என்று நினைவில்
உங்கள் கணினி புரிந்து கொள்ள முடியும்.
அது நம்மை புரிந்து கொள்ள எளிதாக அர்த்தம் இல்லை.
எனவே சட்டசபை எவ்வளவு குறைந்த அளவு?
அது பொருள் குறியீடு கிட்டத்தட்ட ஒரே மாதிரியாக தான்.
சட்டமன்ற இருந்து பொருள் குறியீடு சென்று ஒரு மிக அதிகமாக உள்ளது
ஒரு மாற்றத்தை விட மொழிபெயர்ப்பு, அது ஏன்
ஒரு அசெம்பிளர் கருதவில்லை என்று கூறலாம்
எந்த உண்மையான தொகுக்கப்பட்ட செய்ய.
உண்மையில், இது கைமுறையாக இருந்து மொழிபெயர்க்க அழகாக எளிதாக
இயந்திர குறியீட்டை சட்டசபை.
முதல் வரி, ஒரு முக்கிய விழாவிற்கு சட்டமன்ற பார்க்க
அறுபதின்ம 0x55 தொடர்புடைய நடக்கிறது.
பைனரி உள்ள, அந்த 1010101 தான்.
இரண்டாவது வரி அறுபதின்ம 0x895 தொடர்ந்து நடக்கிறது.
அடுத்த, 0x56.
ஒரு எளிய அட்டவணை வழங்கப்பட்டது, நீங்கள் மொழிபெயர்க்க முடியும்
இயந்திரங்கள் கூட புரிந்து கொள்ள முடியும் குறியீடு மீண்டும் சட்டசபை.
>> எனவே ஒரு மீதமுள்ள படி இல்லை
இணைக்கும் எந்த தொகுப்பு.
இணைக்கும் ஒரு பெரிய கோப்பில் பொருள் கோப்புகள் ஒரு கொத்து ஒருங்கிணைக்கிறது
நீங்கள் உண்மையில் இயக்க முடியும்.
இணைக்கும் மிக அமைப்பு சார்ந்து இருக்கும்.
ஒரு பொருள் இணைக்க கணகண வென்ற சப்தம் பெறுவது மிக எளிதான வழி
ஒன்றாக கோப்புகளை கோப்புகளை அனைத்து கணகண வென்ற சப்தம் அழைக்க வேண்டும்
நீங்கள் ஒன்றாக இணைக்க வேண்டும்.
நீங்கள் குறிப்பிட வேண்டும். ஓ கோப்புகள், அது, மறுசெயலாக்கம் செய்ய தேவையில்லை
தொகுத்தல், உங்கள் மூல குறியீடு அனைத்து வரிசைப்படுத்துங்கள்.
நம்முடைய கோப்பு ஒரு கணித செயல்பாட்டை தூக்கி விட, அதனால் நாம்
உள்ளே இணைக்க ஏதாவது
இப்போது தான் பொருள் குறியீடு மீண்டும் அதை தொகுக்க அனுமதியுங்கள்
இது கணகண வென்ற சப்தம் அழைப்பு.
Oops.
நாம் ஒரு கணித செயல்பாடு உள்ளிட்ட பின்னர், நாம் இணைக்க வேண்டும்
கணித நூலகம் மூலம், LM.
>> நாம் ஒரு கொத்து ஒன்றாக இணைக்க வேண்டும் என்றால். ஓ கோப்புகள் என்று நாம்
நம் சொந்த எழுதினார், நாம் தான் அவர்களை எல்லாம் குறிப்பிட விரும்புகிறேன்
கட்டளை வரி.
கட்டுப்பாடு இந்த கோப்புகளை ஒரே ஒரு அவசியம்
உண்மையில் ஒரு முக்கிய செயல்பாடு குறிப்பிட, அல்லது வேறு
இதன் விளைவாக இயங்கக்கூடிய அங்கு தொடங்க தெரியாது
உங்கள் குறியீடு இயங்கும்.
இணைக்க ஒரு கோப்பு குறிப்பிடாமல் என்ன வித்தியாசம்
உடன்-l மற்றும் நேரடியாக ஒரு கோப்பு குறிப்பிடாமல்?
எதுவும்.
அது அந்த கணகண வென்ற சப்தம் சரியாக என்ன கோப்பு என்று நடந்தால் தான்
எதோ-LM பார்க்கவும் நடக்கிறது.
நீங்கள் அந்த கோப்பு உங்களை தெரியும் என்றால், நீங்கள் இதை குறிப்பிட முடியும்
வெளிப்படையாக.
இப்போது அனைத்து எல் கொடிகள் இறுதியில் வர வேண்டும் என்று நினைவில்
உங்கள் வாடிக்கையாளர் தேவை.
>> மற்றும் அது அங்கே தான்.
நீங்கள் சில கோப்புகளை கணகண வென்ற சப்தம் ரன் போது, இது என்ன ஆகும்
உண்மையில் என்ன.
என் பெயர் ராப் Bowden, மற்றும் இந்த CS50 உள்ளது.