[సంగీతాన్ని] SPEAKER 1: అన్ని కుడి, ఈ CS50, మరియు ఈ వారం నాలుగు ప్రారంభంలో ఉంది మరియు మీరు విన్న ఉండవచ్చు లేదా చదివి, ప్రపంచంలో ముగిసిన చెయ్యబడింది. ఇంటర్నెట్ చుట్టూ అన్ని గోయింగ్ ఉన్నారు జ్ఞానం మరియు అవగాహన ఉంది ఒక కార్యక్రమం, ఒక ఒక బగ్ యొక్క బాష్ అని ప్రోగ్రామింగ్ భాష. ఈ అద్భుతంగా బ్రాండ్ చెయ్యబడింది Shellshock, లేదా బాష్ తలుపు వంటి, కానీ ఈ వంటి వ్యాసాలు అసాధారణం లేవు. నిజానికి, వాటిని అనేక తీసుకుని Heartbleed వెనుక జ్ఞాపకాలు, మీరు గమనించి ఉండవచ్చు ఈ గత వసంత తిరిగి నొక్కండి ఇది అదేవిధంగా బొత్తిగా నాటకీయ ఉంది. ఇప్పుడు మీరు ఆ ఇక్కడ నేడు, ఎన్ని మీరు కలిగి మీరు అర్థం లేదు ఉంటే కూడా ఏమి ఇది Shellshock విన్న అన్ని గురించి? All right, మరియు మీరు ఎన్ని ప్రభావితమవుతాయి ఆ కంప్యూటర్లను కలిగి? సరే, చాలా, చాలా చేతులు అక్కడ ఉండాలి ప్రస్తుతం అప్, కారణాల కోసం మేము చూడండి కలదు. యొక్క ఏమి పరిశీలించి లెట్ మీడియా లో జరుగుతున్నాయి మరియు అప్పుడు అది కొంచెం వివరించండి ఇక్కడ మాకు సాంకేతికంగా. SPEAKER 2: సెక్యూరిటీ నిపుణులు హెచ్చరించారు ఒక తీవ్రమైన దోషం అని వందల ప్రభావితం గురించి ప్రపంచంలో వెబ్ వినియోగదారుల మిలియన్ల. కాబట్టి ఖచ్చితంగా ఉండేవి ఆ బగ్ ఏమిటి Shellshock ఇచ్చేటట్టు చేసింది, మరియు అది ఏమి చేస్తుంది? వెల్, Shellshock కూడా అంటారు బాష్ బగ్ కాదు, అది పాడు సాఫ్ట్వేర్. హ్యాకర్లు హాని స్కాన్ వైరస్ ఉపయోగించే Linux మరియు యునిక్స్ నడుస్తోంది వ్యవస్థలు కార్యాచరణ వ్యవస్థలను ఆపై వాటిని నష్టపరుస్తాయి. బాష్ ఒక కమాండ్ లైన్ షెల్ ఉంది. ఈ వినియోగదారులు సమస్య ప్రారంభించటానికి ఆదేశాలను అనుమతిస్తుంది సాఫ్ట్వేర్ లోపల ప్రోగ్రామ్లు మరియు ఫీచర్లు టెక్స్ట్ లో టైప్ చేయడం ద్వారా. ఇది సాధారణంగా ప్రోగ్రామర్లు ఉపయోగించే, మరియు విస్తృత ప్రపంచాన్ని ఓపెన్ ఉండకూడదు, Shellshock మార్పులు అయితే. వెల్, worringly, కొందరు విశ్లేషకులు అది ఒక పెద్ద ముప్పు అని హెచ్చరిస్తుంది, Shellshock పూర్తి అనుమతిస్తుంది ఎందుకంటే ఒక సోకిన యంత్రం యొక్క నియంత్రణ, Heartbleed అయితే కేవలం అనుమతి హ్యాకర్లు కంప్యూటర్లు గూఢచర్యం. ఇది, కనుక తీవ్రమైన వార్తలు 10 బయటకు 10 రేట్ చేయబడింది నేషనల్ ద్వారా తీవ్రతకు లోపాల సమాచార. అన్ని వెబ్ సర్వర్లు 2/3 వద్ద ఉన్నాయి కొన్ని Mac కంప్యూటర్లు సహా ప్రమాదం. సరే, మీరు నిర్ధారించుకోండి ఇప్పుడు మీ వ్యవస్థలు సరిదిద్దటానికి. ఒక వెబ్ సైట్ రన్ హోస్టింగ్ ఎవరైనా ప్రభావితం ఆపరేటింగ్ వ్యవస్థలు సాధ్యమైనంత త్వరలో చర్య తీసుకోవాలి. ఇది కనిపించాలి కోరుకుంటాను ఎవరైనా వారి పర్యవేక్షణ మరియు వెబ్ అప్లికేషన్ ఫైర్ ఏ దాడుల కోసం చూడండి. SPEAKER 3: చెత్త విషయం జరిగి ఉంది ఎవరైనా కోడ్ రాస్తుంది ఆ స్వయంచాలకంగా వెళ్ళి స్కాన్ చేస్తుంది ఇంటర్నెట్ మరియు ప్రభావితం చేస్తుంది ఈ కంప్యూటర్లను అన్ని. మరియు వారు బాగా అలా ఒకసారి, వారు చేయగల నీచమైన కేవలం ప్రతిదీ తొలగించండి ఉంది, లేదా డౌన్ సైట్లు మూసివేసింది. కాబట్టి మేము నష్టం చూడగలిగారు వీక్షణ ఆ సమయంలో నుండి, మేము హానికరమైన ప్రజలు నామమాత్రంగా ఉన్న ఎవరు కేవలం అలజడిని నిర్ణయించుకుంటారు వ్యవస్థలు డౌన్ తీసుకురావడం లేదా తొలగించడం ద్వారా ఆ వంటి ఫైళ్ళను, మరియు విషయాలు. SPEAKER 2: కొన్ని ఈ ఒకటి చెబుతా అతి క్లిష్టమైన కొలవటానికి సంవత్సరాలలో దోషాలు, మరియు అది వారాలు పడుతుంది లేదా ఉండవచ్చు నెలల దాని అంతిమ ప్రభావం గుర్తించడానికి. SPEAKER 1: సో ఆ అన్ని నిజం కానీ ఫన్నీ విషయం దాదాపు అన్ని ఉంటుంది చిత్రాలను మీరు చూసింది, బహుశా కీబోర్డ్ తప్ప, ఏమీ సంబంధం ఉంది లేనే బగ్. సర్వర్లు మరియు తీగలు మొదలగునవి, అది విధమైన అసందర్భంగా సంబంధించిన, కానీ కోర్ వద్ద అందంగా నిజానికి వార్తలు తెలిసిన ఇక్కడ ఏం జరగబోతోంది. నిజానికి, నాకు లోకి వీడలేదు మా CS50 ఉపకరణం. నాకు ముందుకు వెళ్లి పెంచడానికి లెట్ ఇక్కడ టెర్మినల్ విండో. మీరు అబ్బాయిలు, దీనిని ఉపయోగించడం జరిగింది లేదా వాటి వెర్షన్ పొందుపరచబడింది కార్యక్రమాలు రాయడానికి క్రమంలో gedit లో, మొదలగునవి ఆదేశాలను టైప్ చేసి, మరియు ఈ నిజంగా ఉంది, మరియు ఉంది వారాలు, బాష్, b-a-S-H కోసం పరిష్కరించగలుగుతున్నాము. ఈ బోర్న్ మళ్లీ SHELL, ఇది చెప్పడం ఒక ఫాన్సీ మార్గం, ఈ ఒక కార్యక్రమం ఉంది సమర్థవంతంగా, ప్రాంప్ట్ మెరిసే, ఆ వేచి ఉన్నాయి కూర్చుని మీరు కోసం ఇన్పుట్ కోసం. మరియు అది ఆదేశం వార్తలు పంక్తి అంతర్ముఖం ఇది ద్వారా మీరు అబ్బాయిలు ఆదేశాలను అమలు చేయబడ్డాయి మరియు చివరికి కంపైల్ మరియు అప్పుడు నడుస్తున్న కార్యక్రమాలు. కానీ బాష్ కూడా ఒక ప్రోగ్రామింగ్ ఉంది కింది అర్థంలో భాష. మీరు వంటి ఆదేశాలను ఉన్నాయి తెలుసు CD మరియు ls మరియు కూడా గణగణమని ద్వని చేయు మరియు ఇతరులు, కానీ మీరు మీ స్వంత ఆదేశాలను నిర్వచించలేదు బాష్ వాటిని అమలు ద్వారా. ఇప్పుడు మేము వెళ్ళడం లేదు చేస్తున్నాం గొప్ప వివరాలు లోకి వెళ్ళి ప్రోగ్రామింగు భాష హోరు కానీ తెలుసు, ఉదాహరణకు, సమయంలో ఆ, అని ఎవరూ ఆదేశం ఉంది "హలో." కాబట్టి అది చూడవచ్చు ఈ ప్యాకేజీలను ఒకటి. ఇది నా కంప్యూటర్లో ఇన్స్టాల్ కాదు. మీ నిర్వాహకుని అడగండి. కానీ నేను అక్కడ అనుకుంటే ఒక ప్రోగ్రామ్గా బాష్లో లేదా నా ప్రాంప్ట్ వద్ద "హలో" అని, నేను నిజానికి ఆ యొక్క సింటాక్స్ ఉపయోగించడానికి చేయవచ్చు చాలా C. లాగా, చాలా అదే కాదు కానీ అది ఒక అందంగా పోలి ఉంది ఫంక్షన్, కొన్ని వివరాలు లేదు అయినప్పటికీ. అక్కడొక తెలుస్తోంది, కానీ ఇప్పుడు నేను "హలో" అని టైప్ మీరు నిజంగా ఒక వ్రాయగలరు కార్యక్రమం, కాదు సి, కాదు జావా లో, మరొక ప్రోగ్రామింగ్ భాష, కానీ బాష్ లోనే. ఇప్పుడు ఇక్కడ కీ నేను రాసిన ఉంది నేను ఈ కొత్త ఆదేశం ఇవ్వాలని కోరారు నామము మరియు బ్రాకెట్లు కూడా ఉన్నాయి ఈ సంకేతం ఫంక్షన్. జనాంతికంగా, మీరు కూడా సరదాగా చేయవచ్చు , మరియు నిజానికి, మాక్ OS లో విషయాలు, ఈ టెర్మినల్ అనే ప్రోగ్రామ్. ఇది ఎవరి నిర్మించిన వస్తాడు ఈ గది లో ఒక Mac కలిగి కంప్యూటర్, మరియు మీరు Mac లో ఇలాంటి పనులు చేయవచ్చు OS, కానీ మీరు ఆ మించి ఎక్కువ వెళ్ళవచ్చు. మరియు ఈ, కొద్దిగా ఊహించిన విధంగా జరుగు కానీ అది సరదాగా ఉంటాము. నేను ఈ ఉదయం గుర్తు చేశారు, ఈ ద్వారా ఆలోచిస్తూ ఉన్నప్పుడు, ఒక చిన్న ఆట యొక్క నేను పోషించారు CS50 యొక్క మాజీ TFS ఒకటి తో ఏ సమయంలో అతను దూరంగా నడిచి వుండి తన స్క్రీన్ తో అతని కీబోర్డ్ అన్లాక్, నేను కమాండ్ అమలుపరుస్తుంది ఈ వంటి "హలో చెప్పండి." ఇప్పుడు ఏ సమయంలో అతను తిరిగి వచ్చిన తన కీబోర్డ్ నేను తెర క్లియర్ తర్వాత మరియు అతను డౌన్ కూర్చుని కొన్ని పని చేయడానికి ప్రయత్నించండి, తన డైరెక్టరీ యొక్క కంటెంట్లను జాబితా [ఆడియో ప్లేబ్యాక్] -Hello. హలో. న్యాయంగా కాబట్టి,: స్పీకర్ 1 అది "హలో." నిజానికి కాదు ఇది సాధారణంగా ఏదో ఉంది ఆ పోలిన [ఆడియో ప్లేబ్యాక్] -Beep. SPEAKER 1: నేను would-- --that కాబట్టి తన కంప్యూటర్ చేస్తాను అతను నిజానికి అతనికి ఏ సమయంలోనైనా ప్రమాణ అతని కీబోర్డ్ వద్ద డౌన్ కూర్చున్నాడు. మరియు చాలా త్వరగా అతను కనుగొన్నారు తన స్క్రీన్ అన్లాక్ విడిచి లేదు. కానీ ఈ విధమైన సూచిస్తుంది స్టుపిడ్ సరదాగా మీరు బాష్ వంటి ఏదో తో కలిగి. కానీ అది కొంచెం వార్తలు తీవ్రమైన, ఆ కంటే, తప్పకుండా. నిజానికి, ఈ ఒకటి అత్యంత ప్రమాదకరమైన మరియు దీర్ఘ శాశ్వత దోషాలు నిజంగా ప్రపంచవ్యాప్తంగా ప్రపంచంలో సాధించాడు. ఈ బగ్ చుట్టూ ఉంది కొన్ని 20 సంవత్సరాలు, మరియు మీరు కేవలం ఒక లో చలించిపోయారు అవుతారు దాని సంబంధిత సరళత ద్వారా క్షణం. కాబట్టి ఈ ఒక ప్రతినిధి ఆ ఆదేశాన్ని మీరు ఉంటే అక్షరాలా కుడి ఇప్పుడు ఒక Mac స్వంతం మీరు మీ మూత ఓపెన్ ఉన్నప్పుడు, మీరు టైప్ ప్రయత్నించవచ్చు టెర్మినల్ అనే కార్యక్రమం. టెర్మినల్ ఉంది అప్లికేషన్స్ Utilities-- ఒకసారి కోసం, Windows వినియోగదారులు లేదు ఈ ప్రత్యేక threat-- గురించి ఆందోళన కానీ Macs తో మీరు ఆ టైపు చెయ్యవచ్చు ఒక విండో లోకి నేను ఇక్కడ చేస్తాను వంటి, మరియు మీరు టైప్ లేకపోతే ఈ కార్యక్రమం ఆ నేను ఇప్పుడు చేస్తాను వంటి, టెర్మినల్ అనే, మీరు పదం చూసినట్లయితే "అసహాయ," మీ కంప్యూటర్లో ఉంది దోపిడీ హాని. ఇప్పుడు ఆ నిజానికి అర్థం ఏమిటి? మరియు ఈ ఆమోదం ఉంది కొన్ని అందంగా క్రేజీ వాక్యనిర్మాణం, కానీ కనీసం డ్రా తెలియజేయండి ఆసక్తికరమైన అంశాలు కొన్ని. కాబట్టి కనిపించే కొన్ని సింటాక్స్ కనీసం సి నుండి, కొద్దిగా తెలిసిన మరియు మరింత సాధారణంగా ప్రోగ్రామింగ్. నేను కొన్ని కుండలీకరణాలు చూడండి, సెమికోలన్లు, గిరజాల జంట కలుపులు, మరియు, కానీ అది ఈ హాజరవుతారు పసుపు ఇక్కడ స్టుపిడ్ విషయం ఒక ఫంక్షన్ తప్పనిసరిగా ఉంది ఆ ఏమీ లేదు. పెద్దప్రేగు అంటే ఏమీ మరియు సెమికోలన్ ఏమీ చేయడం నిలిపివేసింది అర్థం. ఈ లోపల కాబట్టి వంకర జంట కలుపులు, నిజానికి నేను సమాన కలిగి ఎడమ, ఈ సైన్ ముఖ్యంగా సృష్టిస్తుంది ఒక కమాండ్, లేదా ఒక వేరియబుల్, x అనే, మరియు అది కేటాయించి అక్కడ కోడ్ పసుపు బిట్. ఆ "echo వంటి ఏదో జరిగి హలో "లేదా" సే బీప్ "లేదా ఏదో ఆ వంటిదని. కానీ మీ కళ్ళు ఉంటే గమనించవచ్చు కుడి మరింత తిరుగు కంటే ఈ లైన్ కు ఎక్కువ ఉంది ఆ సెమికోలన్ కేవలం ముగింపు. "అప్పుడు, హాని ఎకో" మరియు ఆ మించి మరింత ఉంది. మరో సెమికోలన్, బాష్ -c :. సో లాంగ్ కథ చిన్న, కోడ్ యొక్క ఈ లైన్ బలవంతపు సరిపోతుంది ఆ కంప్యూటర్ ఏదో చేయడం హాని మీరు చేయాలనుకుంటున్నారా, బాష్ అనగా లో ఒక బగ్ ఉంది ఎందుకంటే బాష్ ఆపడానికి ఉండాల్సి అయినప్పటికీ కమాండ్ కుడి పఠన పంక్తులు అక్కడ పసుపు టెక్స్ట్ తర్వాత, 20 ప్లస్ సంవత్సరాల బగ్ కోసం, బాష్ నిజానికి చదవటం ఉంది ఆ సెమికోలన్ దాటి మరియు అందంగా చాలా చెప్పారు ఏమి. కాబట్టి అంత ఏది ఆ చివరికి? నేను "హలో ఎకో" అన్నాడు లేదా "హాని echo" కానీ మీరు ఏదో చేస్తే నిజానికి హానికరమైన, RM-RF * వంటి, ఇది మీరు కాకపోవచ్చు ముందు ఎప్పుడూ టైప్ చేసిన తర్వాత, మరియు స్పష్టముగా మీరు బహుశా చాలా త్వరగానే తప్పక, మీరు ఒక చెయ్యవచ్చు ఎందుకంటే దానితో నష్టం చాలా. ఎందుకు? RM కోర్సు ఏమి చేస్తుంది? తొలగిస్తుంది. * అంటే? అన్ని. కనుక ఇది ఒక అని పిలవబడే వార్తలు వైల్డ్ కార్డు, అది అర్థం కాబట్టి ప్రతిదీ తొలగించండి ప్రస్తుత డైరెక్టరీ. -r పునరావృత అర్థం నిర్మాణము, మీరు తొలగించడం ఏమి ఉంటే ఇది అర్ధం ఒక డైరెక్టరీ, మరియు అక్కడ లోపలి ఇతర ఫైల్స్, డైరెక్టరీలు ఉంది పునరావృతంగా అక్కడ ప్రవేశిస్తాడు మరియు అన్ని తొలగించండి. మరియు -f వాటిని అన్ని యొక్క చెత్త ఉంది. ఎవరైనా -f ఇక్కడ అర్థం ఏమి తెలుసు? ఫోర్స్. సో కూడా, అంటే బలవంతం ఈ ఒక చెడు ఆలోచన ఉంటే, నాకు ప్రాంప్ట్ లేకుండా దీన్ని మరింత నిర్ధారణ కోసం. కాబట్టి, మీకు తెలుసా, మేము చూసి ఈ, కానీ స్పష్టముగా, నేను బహుశా ఈ అనేకసార్లు టైప్ ఒక రోజు, రియాలిటీ ఎందుకంటే ఇది వేగవంతమైన మార్గం ఉంది వాటిలో మొత్తం బంచ్ తొలగించండి. కానీ కూడా నేను కొంత నష్టం చేసారు. కానీ మీరు ఒక కంప్యూటర్ మోసపూరిత ఒకవేళ కొన్ని స్టుపిడ్ వేరియబుల్ నిర్వచించు లోకి లేదా చర్య అని x, కానీ అప్పుడు అమలు లోకి కంప్యూటర్ నమ్మబలికి ఆ సరిహద్దులు దాటి ఫంక్షన్, ఆ సెమికోలన్ దాటి, మీరు నిజంగా ఒక కంప్యూటర్ మోసపూరిత కాలేదు RM లాగ అమలు లోకి-RF లేదా ఇమెయిల్ ఆదేశం లేదా కాపీ ఆదేశం. ఏదైనా వాచ్యంగా మీరు తో చేయవచ్చు కంప్యూటర్, అది ఫైళ్లు తొలగించడం అయినా, , ఫైళ్ళను సృష్టించడం ఎవరైనా స్పామింగ్, రిమోట్గా కొన్ని సర్వర్ దాడి, మీరు వ్యక్తం చేయవచ్చు ఉంటే ఈ కమాండ్ తో మీరు ఆ చేయడం లోకి ఒక కంప్యూటర్ మోసపూరిత చేయవచ్చు. ఇప్పుడు ఒక ఉదాహరణ ఏది మీరు ఈ ఎలా చేయాలో తెలుసా? వెల్, కంప్యూటర్ల చాలా ఉంది ఇంటర్నెట్ నడుస్తున్న బాష్ న. మాకు Mac యూజర్లు అందరూ వాటిలో ఉన్నాయి. Linux సర్వర్ల చాలా ఉన్నాయి అలాగే వాటిని, మరియు Unix సర్వర్లు. విండోస్ మళ్లీ గెట్స్ సాపేక్షంగా హుక్ ఆఫ్ మీరు ఇన్స్టాల్ చేసిన తప్ప ప్రత్యేక సాఫ్ట్వేర్. సర్వర్లు ఇప్పుడు చాలా కోసం ఉదాహరణకు, అమలు వెబ్ సర్వర్లు, మరియు నిజానికి Linux బహుశా ఉంది అత్యంత ప్రసిద్ధ ఆపరేటింగ్ వ్యవస్థ ఇంటర్నెట్ కంప్యూటర్లలో అమలు వెబ్ పేజీలు సర్వ్ చేస్తారు. ఇప్పుడు మేము తరువాత చూస్తారు వంటి సెమిస్టర్, ఉన్నప్పుడు మీరు నుండి ఒక అభ్యర్థనను పంపడానికి మీ browser-- క్రోమ్, ఇంటర్నెట్ ఎక్స్ప్లోరర్, ఎలాగైనా ఒక రిమోట్ సర్వర్కు, దాన్ని మారుతుంది అయినప్పటికీ మీరు కేవలం టైప్ www.example.com, మీ బ్రౌజర్ ఒక సందేశాన్ని పంపుతోంది ఒక చిన్న రహస్య, ఈ వంటిది. కానీ వింత కొద్దిగా ఏదో గమనించవచ్చు. మొదటి రెండు లైన్లు నేను ముందు ఎప్పుడూ చూడలేదు కానీ వారు కనిపించడం లేదు ముఖ్యంగా ప్రమాదకరమని. కానీ నేను దొంగతనం చేసిన ఏమి గమనిస్తారు ఇక్కడ మూడవ లైన్ కోసం. ఒక చెడ్డ వ్యక్తి ఒక సందేశాన్ని పంపడానికి అయితే అతని లేదా ఆమె కంప్యూటర్ నుండి ఈ వంటి ఒక హాని Mac లేదా కు హాని Linux సర్వర్, ఫన్నీ విషయం, ఆ బాష్ ఉంది సాధారణ కొద్దిగా కమాండ్ ప్రాంప్ట్, సర్వాంతర్యామిగా ఉంది మరియు తరచుగా ఉంది ముఖ్యంగా అమలు ఉపయోగిస్తారు ఒక యొక్క కంటెంట్లను అది అందుకున్న సందేశం. ఆ తర్కం ద్వారా, మీరు చెయ్యవచ్చు అందువలన, ఒక వెబ్ సర్వర్ మోసపూరిత, అలాంటిదే పంపడం ద్వారా ఏజెంట్, సాధారణంగా ఇది చెప్పటానికి కోరుకుంటున్నాము మీ బ్రౌజర్ యొక్క పేరు లో. యూజర్ ఏజెంట్ క్రోమ్ యూజర్ ఏజెంట్ ఇంటర్నెట్ ఎక్స్ప్లోరర్, ఏజెంట్ ఫైర్ఫాక్స్, ఈ కేవలం మీ బ్రౌజర్ యొక్క ఉంది గుర్తించబడిన యొక్క మార్గం. కానీ ఒక చెడ్డ వ్యక్తి చాలా తెలివిగా mm-mm, నేను ఉన్నాను, చెప్పారు మీరు చెప్పడానికి వెళ్ళడం లేదు ఏమి నా బ్రౌజర్, నేను బదులుగా మీరు ఈ పంపడానికి వెళుతున్న ఒక RM-RF మాట గుప్తమైన చూస్తున్న * ఇది, మీరు వాచ్యంగా ఒక మోసపూరిత చేయవచ్చు ఇంటర్నెట్ హాని వెబ్ సర్వర్ సరిగ్గా ఆ అమలు లోకి అక్కడ ఫైళ్లు అన్ని తొలగించడం కోసం. మరియు స్పష్టముగా, ఆ కాదు అది కూడా చెత్త. మీరు ఏదైనా చేయవచ్చు. మీరు మొదలు కాలేదు పంపిణీ సేవ దాడి నిరాకరణ మీరు ఈ సందేశాన్ని పంపారు ఉంటే వెబ్ సర్వర్లు మొత్తం పుష్పగుచ్ఛాలు ఆపై వాటిని అన్ని, పడుట కలిగి ఉదాహరణకు, Harvard.edu సర్వర్లపై, మరియు మీరు బ్యాంగ్ యొక్క క్రమం చేయవచ్చు వాటిని బయటకు హెక్ అని ఒక నెట్వర్క్ ట్రాఫిక్ లేకపోతే ఈ చెడ్డ వ్యక్తి ఊపందుకున్న. కాబట్టి, దీర్ఘ కథ చిన్న, దాదాపు ఒక Mac యాజమాన్య ఈ గదిలో ప్రతిఒక్కరూ ఈ దెబ్బతింది. సిల్వర్ లైనింగ్ మీరు తప్ప ఉంది మీ ల్యాప్టాప్లో ఒక వెబ్ సర్వర్ నడుస్తున్న, మరియు మీరు నిజంగానే కాన్ఫిగర్ చేసిన తప్ప అది లోకి SSH లాగ అనుమతించడానికి మీరు నిజంగా సురక్షితంగా ఉన్నారు. ఇది హానికరంగా యొక్క, కానీ ఉంది ఒక మీ ల్యాప్టాప్ పొందడానికి ప్రయత్నిస్తున్న, కాబట్టి మీరు విధమైన హామీ విశ్రాంతి చేయవచ్చు. అయితే, Apple త్వరలోనే దీనికి పరిష్కారంగా నవీకరించుటకు ఉంటుంది. Linux యొక్క ప్రపంచ ఇప్పటికే విడుదల చేసింది ఫెడోరా మరియు ఉబుంటు కోసం పరిష్కారాలను మరియు ఇతర Linux యొక్క సంస్కరణలు మరియు నిజానికి మీరు ఉపకరణం అప్డేట్ 50 అమలు చేస్తే, చాలా ఉంటుంది కూడా ఆ నవీకరించబడింది మరియు సరి. కానీ ఆ చాలా ఉంది నిజంగా, హాని మీరు చేసిన తప్ప ఎందుకంటే ఉపకరణం తో tinkered బహిరంగంగా మీ ల్యాప్టాప్ తయారు కాదు, ఇంటర్నెట్ యాక్సెస్ అప్రమేయంగా, మీరు చేసిన వాస్తవానికి ఎందుకంటే జరిమానా ఫైర్వాలింగ్ మరియు ఇతర పద్ధతులు. కానీ అది ఒక బగ్ యొక్క ఒక ఉదాహరణ మేము అక్షరాలా 20 నివసించారు చేసిన సంవత్సరాలు, మరియు ఎవరైనా ఉంటే ఎవరికి అన్ని ఈ సమయంలో దాని గురించి తెలిసిన? నిజానికి, ఈ ఒకటి ప్రాథమిక సవాళ్లు మేము తరువాత చూస్తారు భద్రత గురించి సెమిస్టర్, కేవలం వాస్తవిక ప్రపంచంలో లాగా ఉంది మంచి అబ్బాయిలు నష్టంలో ఉన్నాయి. చెడు అబ్బాయిలు దూరంగా ఉంచడానికి, మేము కలిగి ప్రతి తలుపు లాక్ చెయ్యబడిందని నిర్ధారించుకోండి, ప్రతి విండో ఆ, సురక్షితం అని ఒక ఇంటి ప్రవేశం ప్రతి పాయింట్ చెడు అబ్బాయిలు దూరంగా ఉంచాలని సురక్షితం. కానీ ఏమి చెడ్డ వ్యక్తి కలిగి నిజంగా మీ ఇంటి రాజీ చేయండి మరియు మీరు నుండి దొంగిలించి? అతను లేదా ఆమె కేవలం అన్లాక్ ఒక కనుగొనేందుకు ఉంది తలుపు, ఒక బ్రోకెన్ విండో, లేదా ఏదో ఆ తరహాలో, మరియు అది వార్తలు కంప్యూటర్ భద్రతా ఇదే. మేము మిలియన్ల వ్రాయగలవు ప్రోగ్రామింగ్ కోడ్ రేఖలు మరియు వందల లేదా వేల ఖర్చు ఇది సరైన పొందుటకు ప్రయత్నిస్తున్న గంటల, కానీ మీరు కేవలం ఒక చేయడానికి సవ్యత తప్పు, మీరు మొత్తం వ్యవస్థ ఉంచవచ్చు మరియు నిజానికి ఈ సందర్భంలో, మొత్తం ఇంటర్నెట్ మరియు ప్రమాదం ప్రపంచం. మీరు మరింత తెలుసుకోవడానికి చెయ్యాలనుకుంటే కాబట్టి ఈ గురించి ఇక్కడ ఈ URL కు వెళ్ళండి. చర్యకు ఎటువంటి అవసరం ఉంది టునైట్ మీరు తప్ప ఆ మరింత సౌకర్యవంతమైన మధ్య మీ సొంత వెబ్ నడుస్తున్న చేశారు సర్వర్, ఇది మీరు తప్పక సందర్భంలో, నిజానికి, మీ డేట్. మరియు ఈ చాలా టైటిల్ ఒక ప్రసంగంలో, మరియు ఇప్పుడు ఒక కాగితం, మేము లింక్ చేసిన నేడు కోర్సు యొక్క వెబ్సైట్. ఇది తోటి ఉంది అనే కెన్ థాంప్సన్, ఎవరు చాలా ప్రసిద్ధ అంగీకరించడం కంప్యూటర్ సైన్స్ లో అవార్డు, మరియు అతను కొన్ని సంవత్సరాల ఈ ఉపన్యాసం ఇచ్చారు క్రితం, ముఖ్యంగా ఈ అదే అంశంపై. ప్రశ్న చేసారో అడుగుతూ, మీరు తప్పక నిజంగా ట్రస్ట్, చివరికి, సాఫ్ట్వేర్ మీరు ఇచ్చిన పరిష్కరించగలుగుతున్నాము? ఉదాహరణకు, మేము అన్ని కార్యక్రమాలు రాయడం, మరియు మేము కంపైల్ చేసిన గణగణమని ద్వని చేయు తో వాటిని. మరియు మీ జ్ఞానాన్ని, మీరు రాసిన CS50 కోసం ఏ కార్యక్రమాలు ఇక్కడ రకాల ఒక వెనుక తలుపు, ఒక మార్గం ఉంది ఒక చెడ్డ వ్యక్తి, మీ ప్రోగ్రామ్ అమలు చేస్తే, మీ కంప్యూటర్ పై పడుతుంది? బహుశా, కుడి? మారియో, మరియు అత్యాశ, మరియు క్రెడిట్. ఈ అన్ని అందంగా చిన్న ప్రోగ్రామ్ల ఉన్నాయి. మీరు అందంగా ఉండాలి కావలసిన చెడు నిజానికి మీరు ఉంటే మీ మొత్తం కంప్యూటర్ హాని చేసిన కోడ్ యొక్క 10 లేదా 20 పంక్తులు వ్రాయడం తర్వాత, లేదా కొన్ని కనీసం తెలియదు భద్రతా చిక్కులు. ఇప్పుడు నేను ఆ facetiously సే కానీ మనం నేడు చూసే వెళుతున్న మరియు ఈ వారం నిజానికి వార్తలు నిజంగా, నిజంగా సులభం చెడు మరియు కూడా చేయడానికి చిన్న కార్యక్రమాలు హాని. కానీ ఇప్పుడు కోసం, కనీసం, తెలుసుకోవటం ప్రశ్నను ఇక్కడ అడిగినప్పుడు ఒక కంపైలర్, గణగణమని ద్వని గురించి. ఎందుకు మేము గణగణమని ద్వని చేయు నమ్ముతూ చేశారు గత రెండు లేదా మూడు వారాల? ఎవరు ఎవరైతే గణగణమని ద్వని చేయు రాసిన చెప్పటానికి వార్తలు అక్కడ ఒక "ఉంటే" పరిస్థితి లేదు ముఖ్యంగా కొన్ని సున్నాలు లోపలికి మరియు ప్రతి కార్యక్రమంపై వాటిని కూర్చింది ఆ వీలు అతనికి లేదా ఆమె యాక్సెస్ మీ కంప్యూటర్లో ఉన్నప్పుడు మీరు నిద్రలోకి ఉన్నాము మరియు మీ లాప్టాప్ lid తెరిచి ఉంది మరియు మీ కంప్యూటర్ అమలు ఉంది? కుడి? మేము గౌరవంగా సిస్టమ్ కుడి ఈ విధమైన కలిగి ఇప్పుడు మేము గణగణమని ద్వని చేయు సక్రమం అని నమ్మండి పేరు. మీరు ఉపకరణం సక్రమం అని నమ్మండి. మీరు నమ్మండి ఆ వాచ్యంగా ప్రతి కార్యక్రమం మీ Mac లేదా PC లో నమ్మదగినదని. మరియు ఈ సాధారణ బగ్ సూచించినట్లు, ఇది హానికరమైన కాదు అయినా, లేరో కాదు కేసు ఉండే అవకాశం ఉంది. కాబట్టి మీరు నరకం వంటి భయపడ్డాను ఉండాలి. స్పష్టముగా, ఏ సాధారణ ఉంది ఈ ఇతర పరిష్కారం సామాజిక చైతన్యం విధమైన కంటే పెరుగుతున్న క్లిష్టత మేము పైన నిర్మించడం చేస్తున్న మా కంప్యూటర్ వ్యవస్థలు, మరియు ఎలా పెరుగుతున్న హాని మేము చాలా బాగా కావచ్చు. ఇప్పుడు ఆ బ్రేక్అవుట్, అన్నారు. కాబట్టి బ్రేక్అవుట్ సమస్య మూడు సెట్, మరియు బ్రేక్అవుట్ ఒకప్పటి నుండి ఒక గేమ్ మీరు రీకాల్ ఉండవచ్చు, కానీ మాకు సమస్య, మూడు సెట్ అది మాకు తీసుకోవాలని అనుమతిస్తుంది విషయాలు ఒక గీత అప్ వెనుకకు , మేము కార్యక్రమాలు రాయడం చేసినప్పుడు కాబట్టి ఈ వంటి ఒక టెర్మినల్ విండో లో, మేము నిజానికి, చివరికి, అమలు చేయవచ్చు గ్రాఫికల్ కార్యక్రమాలను ఆ కాకుండా మేము కలిగి స్క్రాచ్ లో యాక్సెస్. కాబట్టి ఈ సిబ్బంది యొక్క ఉంది బ్రేక్అవుట్ యొక్క అమలు, ఇది కేవలం ఈ ఇటుక బ్రేకింగ్ ఆట, మీరు తిరిగి మీ తెడ్డు తరలించడానికి ఆ ముందుకు వెనుకకు, మరియు మీరు బంతి హిట్ టాప్ ఆ రంగు ఇటుకలు వ్యతిరేకంగా. కాబట్టి ఈ మాకు తెచ్చింది విధమైన వెనుక ఉన్న కు మేము చాలా త్వరగా ఉంటుంది సాధించారు స్క్రాచ్ తో, మరియు ఇప్పుడు C తో, మా స్వంత అమలు గ్రాఫికల్ వినియోగదారు ఇంటర్ఫేస్లు. కానీ కంటే, ఈ సమస్య సెట్ మొదటి సూచిస్తుంది దీనిలో మనం ఇచ్చిన చేస్తున్నారు మీరు కోడ్ యొక్క ఒక సమూహం. నిజానికి, నేను స్పష్టమైన తీసుకుని ఈ దృష్టిని, ముఖ్యంగా ఎందుకంటే ఆ తక్కువ సౌకర్యవంతమైన, ఈ సమస్య, కనీసం మొదటి చూపులో, సెట్ భావిస్తాను అన్నారు మేము ఒక గీత అది అప్ తీసుకున్నారు. , మేము మీరు ఇచ్చిన చేసిన ఎందుకంటే శోధన కొన్ని కోసం మరియు pset సమస్యలు సార్టింగ్, మేము రాసిన కోడ్ కొంత, మరియు వ్యాఖ్యల ఒక జంట ఆ ", చేయడానికి" సే ఇక్కడ మీరు ఖాళీలను పూరించడానికి కలిగి. కాబట్టి చాలా భయానకంగా కాదు, కానీ ఇది మొదటిసారి వార్తలు మేము మీరు కోడ్ ఇవ్వడానికి మీరు మీకు అవసరం మొదటి, చదివి అర్థం, మరియు అప్పుడు జోడించండి మరియు అది పూర్తి. ఆపై బ్రేక్అవుట్ తో, మేము అదే చేయబోతున్నామని మీరు కొన్ని డజన్ల మరిన్ని పంక్తులు ఇవ్వడం కోడ్ యొక్క, స్పష్టముగా, మీరు ఇచ్చే ఫ్రేమ్ చాలా కోసం ఆట కాని చిన్న ఆపడానికి ఇటుకలు అమలు మరియు బంతి మరియు తెడ్డు, కానీ మేము కొన్ని ఇతర లక్షణాలను అమలు చేయండి. మరియు మొదటి చూపులో ఆ, మళ్ళీ, ముఖ్యంగా తక్కువ సౌకర్యవంతమైన ఉంటే ముఖ్యంగా వీరిని అనిపించవచ్చు ఉండవచ్చు మరియు మీరు చాలా కొత్త విధులు అక్కడ అనుకుంటున్నాను మీరు మీ మనస్సు మూసివేయాలని అవసరం చుట్టూ, మరియు ఆ నిజం. కానీ ఇది, గుర్తుంచుకొను చాలా స్క్రాచ్ వంటి. ఆడ్స్ మీరు అన్ని ఉపయోగించడానికి లేదు ఉంటాయి స్క్రాచ్ లో పజిల్ ముక్కలు. ఆడ్స్ మీరు మూసివేయాలని పట్టించుకోను ఉంటాయి వాటిని అన్ని చుట్టూ మీ మనస్సు అది పట్టింది ఎందుకంటే ఒక ఒక్కసారి, OH, అర్థం ఆ నేను చెయ్యగలరు వార్తలు ఆ పజిల్ ముక్క తో. నిజానికి, సమస్య సెట్ 3 వివరాలను, మేము మీరు అభిప్రాయపడుతున్నారు చేస్తాము డాక్యుమెంటేషన్ వద్ద ఆ రెడీ కొన్ని కొత్త విధులు మీరు పరిచయం చివరకు ప్రోగ్రామింగ్ మీరు ఉపయోగించడానికి నిర్మిస్తుంది. , ఉచ్చులు పరిస్థితులు, వేరియబుల్స్ మరియు ఫంక్షన్స్ ఒకేలా ఉంటుంది మనం ఇప్పటివరకు చూసిన చేసిన. కాబట్టి నిజంగా, మేము ఏమి ఇస్తాము మీరు కొన్ని నమూనా కోడ్ అని మీరు ఒక విండో సృష్టించడానికి అనుమతిస్తుంది ఆ, ఈ కాకుండా కనిపిస్తోంది చివరకు మార్చడానికి చాలా ఈ వంటి ఏదో. కాబట్టి CS50 యొక్క ప్రయోజనాన్ని, , ఆఫీస్ అవర్స్ మరియు మరింత చర్చించడానికి మరియు నిజానికి ఆ సౌకర్యం పడుతుంది మీరు వ్రాసే కలిగి కోడ్ మొత్తాన్ని నిజానికి అన్ని ఆ చాలా ఉంది. మొదటి సవాలు కేవలం పరిసర స్థితిగతులకు ఉంది మీరే కొంత కోడ్కు మేము వ్రాయలేదు. Pset3 ఏదైనా ప్రశ్నలు, Shellshock, లేదా? ప్రేక్షకులు: ఇది వంటి అనిపించింది బ్రేక్అవుట్ తో ద్వారా వెళుతున్న కోడ్ దాదాపు అని ఒక ఆబ్జెక్ట్ ఓరియంటెడ్ శైలిలో, కానీ నేను సి ఒక భావించారు ఆబ్జెక్ట్ ఓరియంటెడ్ కార్యక్రమం. SPEAKER 1: ఎన్ అద్భుతమైన ప్రశ్న. కాబట్టి ద్వారా చూడటం లో పంపిణీ కోడ్, కోడ్ మేము pset3 రాశారు తెలిసిన వారికి, అది అది ఒక కనిపిస్తోంది చిన్న వస్తువు-ఆధారిత. చిన్న సమాధానం ఇది ఉంది. ఇది మీరు ఎలా ఒక ఉజ్జాయింపు వార్తలు ఉపయోగించి ఆబ్జెక్ట్ ఆధారిత కోడ్ అలా ఉండవచ్చు సి వంటి భాష, అయితే ఇది ఇప్పటికీ చివరికి విధానపరమైన. లోపల ఏ పద్ధతులు ఉన్నాయి వేరియబుల్స్, మీరు చూస్తారు వంటి. కానీ ఆ గుర్తుచేస్తుంది. మరియు మేము మళ్ళీ ఆ ఫీచర్ చూస్తారు మేము PHP మరియు JavaScript ను ముగింపు సెమిస్టర్ వైపు. కానీ ఇప్పుడు కోసం, ఆలోచించి ఏది సూచనను వచ్చిన. మంచి ప్రశ్న. అన్ని కుడి. కాబట్టి విధమైన ఉంది విలీనం ఎలా మేము ఎడమ విషయాలు చివరిసారి. మరియు విధమైన లో చల్లని ఉంది విలీనంతో భావన అది చాలా వేగంగా అని, కనీసం తొందరలో పరీక్షల ఆధారంగా మేము బుడగ సే, కంటే, గత వారం చేశాడు సార్ట్, ఎంపిక విధమైన, చొప్పించడం విధమైన. మరియు ఏమి చాలా చక్కగా ఉంది కేవలం ఉంది ఎలా క్లుప్తమైన మరియు సజావుగా మీరు వ్యక్తం చేయవచ్చు. మరియు మేము అది ఒక ఉన్నత ఏమి చేశారు విలీనంతో నడుస్తున్న సమయం బౌండ్ క్రమం? అవును? ప్రేక్షకులు: n లాగ్? SPEAKER 1: n సరైన, n లాగ్. n లాగ్. మరియు మేము ఏమి ఆ వచ్చి చేస్తాము నిజంగా అర్థం లేదా నుండి వస్తుంది, కానీ ఈ మంచి ఉంది ఏమి రన్నింగ్ సమయం కంటే మేము బుడగ కోసం చూసిన ఎంపిక మరియు చొప్పించడం విధమైన? కాబట్టి n స్క్వేర్డ్. స్క్వేర్డ్ n ఈ కంటే పెద్దది మరియు అది మరేదో కాదు అయినా, ఆ లాగ్ n n కంటే తక్కువగా ఉంది తెలుసు, కాబట్టి మీరు n సార్లు ఇలా చేస్తే n కంటే చిన్న ఏదో, అది స్క్వేర్డ్ n కంటే తక్కువ ఉండాలి జరగబోతోంది. ఇది అక్కడ ఊహ ఒక బిట్ ఉంటుంది. కానీ మేము ఈ కోసం ఒక ధర చెల్లించారు. ఇది వేగంగా ఉంది, కానీ ఒక థీమ్ ప్రారంభించారు గత వారం పుంజుకుంటుందని ఈ బేరీజుగా ఉంది. నేను మంచి ప్రదర్శన లేవు సమయం వారీగా, కానీ ఏమి నేను ఇతర ఖర్చు లేదు చేతి క్రమంలో ఆ సాధించడానికి? ప్రేక్షకులు: మెమరీ. SPEAKER 1: మళ్ళీ సే? ప్రేక్షకులు: మెమరీ. SPEAKER 1: మెమొరీ లేదా ఎక్కువ ఖాళీ సాధారణంగా. మరియు అది సూపర్ కాదు మా మనుషులు స్పష్టమైన, కానీ మా వాలంటీర్లు గుర్తుచేసుకున్నారు ముందుకు అడుగు మరియు పునాది అయితే వంటి తిరిగి వ్యూహం ఉంది అయితే, ఇక్కడ మరియు అక్కడ ఇక్కడ ఒక రెండవ శ్రేణి వారు వాడేవారు మేము ఎందుకంటే అవసరమైన సమ్ప్లేస్ చేసారో విలీనం. మేము కేవలం స్థానంలో వాటిని మార్పిడి కాలేదు. కాబట్టి విధమైన పరపతి విలీనం మరింత స్థలం, ఇది మేము అవసరం లేదు ఇతర అల్గోరిథంలు కానీ పైకి ఇది చాలా వేగంగా అని ఉంది. మరియు స్పష్టముగా, రియల్ వరల్డ్ స్పేస్ లో ఈ days-- RAM, హార్డ్ డిస్క్ space-- సాపేక్షంగా చౌకగా, మరియు అలా ఆ కాదు ఒక చెడ్డ అంశం అవసరం. కాబట్టి, శీఘ్ర పరిశీలించి కొద్దిగా తెలియజేయండి మరింత methodically, మేము ఏమి మరియు ఎందుకు మేము అది n లాగ్ n తెలిపారు. కాబట్టి ఇక్కడ ఎనిమిది సంఖ్యలు మరియు ఎనిమిది వాలంటీర్లు మేము చివరిసారి వచ్చింది. మరియు విలీనం మొదటి విషయం క్రమీకరించు చేయాలో మాకు ఏమి చెప్పాడు? ప్రేక్షకులు: రెండు డివైడ్. SPEAKER 1: మళ్ళీ సే? ప్రేక్షకులు: రెండు డివైడ్. SPEAKER 1: రెండు భాగహారం, కుడి. ఈ చాలా జ్ఞాపకం ఉంది డివైడ్ ఫోన్ బుక్, మరియు మరింత సాధారణంగా జయించటానికి. కాబట్టి మేము ఎడమ సగం చూశారు. మరియు మేము విధమైన అన్నారు అప్పుడు ఒకసారి అంశాల ఎడమ అర్ధ, మేము తదుపరి ఏమి చెప్పాలి? ఎడమ ఎడమ అర్ధ క్రమీకరించు సగం, మాకు అనుమతి రెండు విభజించిన తరువాత, నాలుగు మరియు రెండు దృష్టి. ఎలా మీరు ఇప్పుడు జాబితా క్రమబద్ధీకరించాలి పసుపు, విలీనం విధమైన ఉపయోగించి పరిమాణం ఇద్దరు? బాగా సగం లో విభజించి, మరియు ఎడమ అర్ధ క్రమం. మరియు ఈ విషయాలు ఉంది కొద్దిగా స్టుపిడ్ క్లుప్తంగా వచ్చింది. మీరు ఒక జాబితా క్రమబద్ధీకరించాలి ఎలా పరిమాణం ఒకటి, ఇక్కడ ఈ సంఖ్య నాలుగు వంటి? ఇది క్రమబద్ధీకరించబడతాయి. మీరు పూర్తి చేసిన. కానీ ఎలా మీరు ఒక జాబితా క్రమబద్ధీకరించాలి పరిమాణం సంఖ్య రెండు ఉన్నప్పుడు ఒక? Well, కానీ ఇప్పుడు ఏమి అదే విషయం మూడవ మరియు విలీనంతో విధమైన లో కీలక దశ? మీరు ఎడమ విలీనం వచ్చింది అర్ధ మరియు కుడి సగం. మేము ఆ చేశాడు మరియు ఒకసారి మేము చూసారు నాలుగు వద్ద, మేము రెండు చూశారు. మేము అన్ని కుడి నిర్ణయించుకుంది ఖచ్చితంగా రెండు, మొదటి వస్తుంది కాబట్టి మేము రెండు ఉంచండి దాని నాలుగు తరువాత స్థానంలో. ఇప్పుడు మీరు రకమైన రివైండ్ కలిగి, మరియు ఈ లక్షణం యొక్క విధమైన ఉంది విలీనం వంటి ఒక అల్గోరిథం యొక్క విదంగా మెమరీ రివైండ్. కథ తరువాతి లైన్ ఏమిటి? నేను తదుపరి ఏమి దృష్టి సారించడం చేయాలి? ఎడమ కుడి సగం ఆరు నుంచి ఎనిమిది ఏది సగం. కాబట్టి నాకు ఈ ద్వారా అడుగు తెలియజేయండి చాలా పాయింట్ belaboring లేకుండా. సిక్స్, ఎనిమిది, అప్పుడు ఆరు ఉంది క్రమబద్ధీకరించబడింది, ఎనిమిది క్రమబద్ధీకరించబడింది. ఆ వంటి వాటిని కలిసి విలీనం, మరియు ఇప్పుడు తదుపరి పెద్ద అడుగు , కోర్సు యొక్క, నుండి కుడి సగం క్రమం ఉంది ఈ అల్గోరిథం యొక్క మొట్టమొదటి అడుగు. కాబట్టి మేము ఒక మూడు, ఏడు, ఐదు దృష్టి. మేము అప్పుడు ఎడమ సగం దృష్టి. ఆ ఎడమ సగం కుడి సగం , ఆపై ఒక మరియు మూడు విలీనం. అప్పుడు కుడి సగం, అప్పుడు సగం వదిలి అది, దానికి కుడి సగం. అడుగు మిగిలిపోయింది ఇప్పుడు అది విలీనం, మరియు? పెద్ద ఎడమ సగం మరియు పెద్ద విలీనం కుడి సగం, కాబట్టి ఒకటి, అక్కడ పని చెయ్యకపోతే అప్పుడు అప్పుడు రెండు, మూడు, నాలుగు, ఐదు, ఆరు, ఏడు, ఎనిమిది. కాబట్టి ఇప్పుడు ఎందుకు ఈ చివరకు వెల్లడించడం, ముఖ్యంగా n మరియు సంవర్గమానాలుగా మరింత సాధారణంగా కాకుండా, మీరు తప్పించుకోవడానికి కనీసం ఇటీవల స్మృతిలో? Well, ఈ విషయం యొక్క ఎత్తు గమనించవచ్చు. మేము ఎనిమిది అంశాలను కలిగి, మరియు మేము రెండు, రెండు, రెండు విభజించబడింది. కాబట్టి బేస్ లాగిన్ ఎనిమిది రెండు మాకు మూడు ఇస్తుంది. మరియు ఆ నాకు విశ్వసిస్తే ఆ పై చిన్న మబ్బుగా. కానీ, ఎనిమిది రెండు మూడు బేస్ లాగిన్ కాబట్టి మేము విలీనం మూడు పొరలు చేశాను. మరియు మేము విలీనం అంశాలు, ఎన్ని అంశాలు మేము ఆ వరుసలు ప్రతి లో చూడండి లేదు? N మొత్తం, కుడి? పై వరుస విలీనం వలన, మేము piecemeal అది చేసింది అయినప్పటికీ, మేము చివరికి ఒకసారి ప్రతి సంఖ్య చేరింది. మరియు రెండవ వరుసలో, కు పరిమాణం రెండు జాబితాలు విలీనం మేము ఒకసారి ప్రతి మూలకం టచ్ వచ్చింది. మరియు ఇక్కడ నిజంగా స్పష్టంగా గత వరుసగా, మేము ఆ ప్రతి టచ్ వచ్చింది ఒకసారి, కానీ మాత్రమే ఒకసారి అంశాలు, కాబట్టి ఇక్కడ మా n లాగ్ n, అప్పుడు, ఉంది. ఇప్పుడు కేవలం విషయాలు కొద్దిగా చేయడానికి కేవలం ఒక క్షణం కోసం లాంఛనప్రాయ మరింత, మీరు ఉంటే ఇప్పుడు ఈ విశ్లేషించడానికి ఉన్నారు అధిక స్థాయి ఒక విధమైన మరియు ఎలా బాగా నిర్ణయించే ప్రయత్నించండి మీరు వ్యక్తం గురించి వెళ్ళవచ్చు ఈ అల్గోరిథం యొక్క రన్నింగ్ సమయం దీనిని మరియు చూడటం ద్వారా ఒక కంట్రైవ్డ్ ఉదాహరణ ఉపయోగించి? వెల్, ఎంత సమయం మీరు ఒక చెబుతా పసుపు లో ఈ పడుతుందని వంటి అడుగు, N <2 తిరిగి ఉంటే? ఆ ఏమి ఒక పెద్ద O? కాబట్టి నేను ఒక, కనుక ఒక అడుగు చూసిన వెబ్ బహుశా రెండు దశలను అది ఎందుకంటే ఆపై తిరిగి, కానీ అది వార్తలు స్థిర సమయం, కుడి? కాబట్టి మేము O (1), మరియు ఆ చెప్పారు నేను ఈ వ్యక్తీకరించడానికి చేస్తాము ఎలా. టి, కేవలం సమయం నడుస్తున్న. N, ఇన్పుట్ పరిమాణం కాబట్టి T (n), కేవలం ఒక ఫాన్సీ మార్గం నడుస్తున్న చెప్పడం పరిమాణం n యొక్క సమయం ఇచ్చిన ఇన్పుట్ ఆర్డర్ న అవతరిస్తుంది స్థిరంగా సమయం, O లో (1). కానీ లేకపోతే, ఈ గురించి ఏమి? మీరు వ్యక్తం ఎలా ఈ పసుపు లైన్ అమలు సమయం? ఏమి టి? మీరు రకమైన ఇక్కడ మోసం చేయవచ్చు మరియు పున్యము నా ప్రశ్నకు సమాధానం. కాబట్టి నడుస్తున్న సమయంలో ఉంటే మేము చెప్పటానికి సాధారణ టి (n) ఉంది. ఇప్పుడు మీరు రకమైన ఇక్కడ punting చేస్తున్నారు మరియు బాగా, కేవలం ఎడమ అర్ధ క్రమం, చెప్పడం ఆపై కుడి సగం క్రమం. మేము ప్రతీకాత్మకంగా ప్రతిఫలించే ఎలా ఈ పసుపు లైన్ నడుస్తున్న సమయంలో ఏది? ఏమి టి? ఇన్పుట్ పరిమాణం ఏమిటి? రెండు న్. ఎందుకు నేను ఆ చెప్పటానికి లేదు? ఆపై ఈ మరొక టి (n / 2) ఆపై మళ్ళీ, నేను రెండు క్రమబద్ధీకరించబడతాయి విభజించటం విలీనం ఉంటే, ఎన్ని అంశాలు నేను వెళ్ళిపోతున్నాను మొత్తం తాకే కలిగి? ఎన్. నేను, ఈ వ్యక్తీకరించవచ్చు కేవలం రకమైన ఫాన్సీ ఉండాలి సాధారణంగా నడుస్తున్న సమయంలో. టి (N), T (n / 2) కేవలం నడుస్తున్న సమయం ఉంది ప్లస్ టి (n / 2), అర్ధ మరియు కుడి, ఎడమ అర్ధభాగంలో ప్లస్ బహుశా n దశలను ఉంది దీనిలో O (n), కానీ బహుశా, నేను రెండు వేళ్లు ఉపయోగించి నేను, అది అనేక రెండుసార్లు వంటి దశలు, కానీ అది సరళ. ఇది దశలను కొన్ని సంఖ్య వార్తలు ఆ n యొక్క ఒక అంశం ఉంది కాబట్టి మేము ఈ వంటి ఈ వ్యక్తపరిచారు ఉండవచ్చు. మరియు ఈ మేము రౌడీ చేస్తాము పేరు ఇప్పుడు ఉంది తిరిగి మా ఉన్నత పాఠశాల గణిత పాఠ్య పుస్తకం మేము చివరికి పునరావృత ఉన్నాము అప్ ముగుస్తుంది, ఈ సమం n సార్లు లాగ్ n మీరు నిజంగా అవుట్ లేకపోతే గణిత అధికారికంగా. కాబట్టి కేవలం రెండు దృక్కోణాలు వార్తలు. ఒక తో ఒక సంఖ్యాపరంగా ప్రతినిధి ఉదాహరణకు హార్డ్ కోడెడ్ ఎనిమిది సంఖ్యలు, మరియు మరింత ఉపయోగించి మేము అక్కడ ఎలా వద్ద సాధారణ రూపాన్ని. కానీ ఇక్కడ నిజంగా ఆసక్తికరమైన వార్తలు మళ్ళీ, సైక్లింగ్ యొక్క ఈ భావన ఉంది. నేను ఉచ్చులు కోసం ఉపయోగించి కాదు. నేను రకమైన నిర్వచించు చేస్తున్నాను కూడా పరంగా ఏదో, మాత్రమే ఈ గణిత ఫంక్షన్ కానీ కూడా ఈ నకిలీ కోడ్ పరంగా. ఈ నకిలీ కోడ్ పునరావృత ఉంది దాని రేఖల రెండు ముఖ్యంగా చెబుతున్నది వెళ్ళడానికి ఒక చిన్న పరిష్కరించడానికి కూడా ఉపయోగిస్తారు చిన్న పరిమాణం యొక్క సమస్య, ఆపై మళ్లీ మళ్లీ మళ్లీ వరకు మేము చెక్కకొయ్య ఇది ఈ అని పిలవబడే బేస్ కేసు డౌన్. కాబట్టి యొక్క వాస్తవానికి మరింత బలవంతపు డ్రా తెలియజేయండి టేక్ దూరంగా ఈ నుండి క్రింది విధంగా. నాకు gedit లోకి వెళ్ళి ఒక తీసుకుందాం నేటి సోర్స్ కోడ్ యొక్క కొన్ని చూడండి, ఈ ఉదాహరణ ఇక్కడ పెడుతోంది. స్పష్టంగా జోడిస్తుంది సిగ్మా 0, సంఖ్యలు N ద్వారా ఒక. సో వాట్ తెలిసిన చూద్దాం ఇక్కడ మరియు తెలియని. మొదటి మేము ఒక జంట కలిగి కలిగి, కాబట్టి అక్కడ కొత్త ఏమీ. ప్రోటోటైప్. నేను ఒక చిన్న మబ్బుగా ఉన్నాను ఈ కొన్ని రోజుల తర్వాత, కానీ మేము ఒక ఏమి లేదు ఒక ఫంక్షన్ యొక్క నమూనా ఉంది? ప్రేక్షకులు: [వినబడని]. SPEAKER 1: ఆ ఏమిటి? ప్రేక్షకులు: మేము ప్రకటించాలి. SPEAKER 1: మేము ప్రకటించాలి. కాబట్టి మీరు హే, గణగణమని ద్వని చేయు నేర్పేటప్పుడు నిజానికి ఇంకా ఈ అమలు కాదు, కానీ ఎక్కడో ఈ ఫైలు చాలావరకు ఒక ఫంక్షన్ పిలిచేవారు అన్నారు? సిగ్మా. మరియు ఈ కేవలం ఒక వాగ్దానం అని అది ఇలా జరగబోతోంది. ఇది పూర్ణాంకం తీసుకోవాలని జరగబోతోంది input-- మరియు నేను మరింత స్పష్టమైన ఉంటుంది మరియు Int n --and ఇది చెప్పాలి ఒక పూర్ణాంకానికి తిరిగి అన్నారు, కానీ సెమికోలన్ అంటే, MM, నేను చుట్టూ పొందుతారు ఒక చిన్న తరువాత ఈ అమలు. మళ్ళీ, గణగణమని ద్వని చేయు మూగ ఉంది. ఇది మాత్రమే ఏమి జరగబోతోంది మీరు పైనుంచి చెప్పాలి కాబట్టి మేము కనీసం ఇవ్వాలని అవసరం ఇది ఏమి యొక్క సూచనను వచ్చిన. ఇప్పుడు యొక్క ఇక్కడ ప్రధాన చూద్దాం. యొక్క ఇక్కడ స్క్రోల్ డౌన్ లెట్ మరియు చేస్తున్న ప్రధాన చూడటానికి. ఇది ఒక ఫంక్షన్ యొక్క దీర్ఘ కాదు, మరియు నిజానికి ఇక్కడ నిర్మాణం సుపరిచితమే. నేను ఒక వేరియబుల్ n ప్రకటించాడు, మరియు నేను మళ్ళీ మళ్ళీ యూజర్ pester GetInt ఉపయోగించి ఒక సానుకూల పూర్ణాంక, మరియు ఈ లూప్ నుండి మాత్రమే నిష్క్రమణ ఒకసారి యూజర్ కట్టుబడి. అయితే, మేము ఉపయోగిస్తారు చేసిన ఆ విధంగా యూజర్ pester. ఇప్పుడు ఈ ఆసక్తికరమైన ఉంది. నేను ఒక పూర్ణాంకానికి అని డిక్లేర్ "సమాధానం." నేను తిరిగి లెక్కించాల్సి అని ఒక ఫంక్షన్ యొక్క "సిగ్మా." నేను ఇంకా ఏమి తెలుసు, కానీ లేదు నేను ఒక క్షణం క్రితం ప్రకటించారు గుర్తుంచుకోవాలి. ఆపై నేను ప్రయాణిస్తున్న నేను విలువ వినియోగదారుడికి, లో టైప్, N ఆ ఆపై నేను సమాధానం రిపోర్ట్. Well యొక్క తిరిగి స్క్రోల్ అనుమతిస్తుంది కేవలం ఒక క్షణం. ఈ డైరెక్టరీలో ముందుకు వెళ్ళి తెలపండి, తయారు సిగ్మా 0, మరియు నిజానికి ఈ కార్యక్రమం అమలు మరియు ఏమి చూడండి. నేను ముందుకు వెళ్ళి అమలు చేస్తే ఈ కార్యక్రమం, ./sigma-0, మరియు నేను ఒక సానుకూల టైప్ రెండు వంటి పూర్ణాంక, సిగ్మా, గ్రీక్ గుర్తు సూచిస్తుంది, కేవలం ఉంది నుండి అన్ని సంఖ్యలు అప్ జోడించండి మాత్రం రెండు వరకు సున్నా. కాబట్టి 0 ప్లస్ 1 ప్లస్ 2. కాబట్టి ఈ ఆశాజనక నాకు 3 ఇవ్వాలి. ఆ చేయుచున్నాడు అంతే. ఇక అదే ఉంటే నేను మళ్ళీ ఈ అమలు మరియు నేను ఇది సంఖ్య మూడు ఇస్తాయి ఆ అని, కాబట్టి 3 ప్లస్ 2 వార్తలు 5, ప్లస్ 1 నాకు 6 ఇవ్వాలి. నేను నిజంగా క్రేజీ అప్పుడు ఉంటే పెద్ద సంఖ్యలో టైప్ చెయ్యడం ప్రారంభించండి అది నాకు ఇవ్వాలి పెద్ద మరియు పెద్ద మొత్తాలను. కాబట్టి అంతే. సో వాట్ సిగ్మా లాగా లేదు? సరే, అందంగా సూటిగా ఉంది. ఇది మేము అమలు ఉండవచ్చు ఎలా వార్తలు వారాల గత జంట కోసం ఈ. "Int" తిరిగి టైప్ అవతరిస్తుంది. సిగ్మా పేరు, మరియు అది పడుతుంది బదులుగా n యొక్క ఒక వేరియబుల్ చి. నేను పైనుంచి అప్ మారుస్తాము. అప్పుడు ఈ తెలివి చెక్ ఉంది. మేము ఒక క్షణం లో ఎందుకు చూస్తారు. ఇప్పుడు నేను మరొక వేరియబుల్ డిక్లేర్, మొత్తం సున్నాకి ప్రారంభించడం. అప్పుడు నేను లూప్ ఈ కలిగి స్పష్టంగా స్పష్టత కోసం, iterating, నేను = 1 నుండి అప్ ఒక = m కు, ఇది ఏ యూజర్ లో టైప్, మరియు అప్పుడు నేను ఈ వంటి మొత్తం పెంచడం. ఆపై మొత్తం తిరిగి. కాబట్టి ప్రశ్నలు ఒక జంట. ఒకటి, నేను ఈ నా వ్యాఖ్యలో దావా ఒక అనంతమైన లూప్ ప్రమాదం తొలగిస్తుంది. ఎందుకు ప్రతికూల సంఖ్య అక్కడ ఉంటుంది , సమర్థవంతంగా, ఒక అనంతమైన లూప్ ప్రేరేపించడానికి? ప్రేక్షకులు: మీరు m చేరతాయి ఎప్పటికీ. SPEAKER 1: M చేరుకోవడానికి ఎప్పుడూ. కానీ M లో ఆమోదించింది, కాబట్టి లెట్స్ ఒక చిన్న ఉదాహరణ భావిస్తారు. M ద్వారా జారీ ఉంటే ప్రతికూల ఒక యూజర్. సంబంధం లేకుండా ప్రధాన. ప్రధాన నుండి మాకు రక్షిస్తుంది ఈ చాలా, కాబట్టి నేను ఉన్నాను నిజంగా ఆసన ఉండటం సిగ్మా కూడా ఖచ్చితంగా చేయడానికి ఆ ఇన్పుట్ ప్రతికూల ఉండకూడదు. M ప్రతికూల చేస్తే, ప్రతికూల ఒక వంటి ఏదో. ఏమి జరగబోతోంది? Well, నేను అన్నారు ఒక initialized చేసుకోగా, ఆపై నేను మాత్రం ఉంది కంటే తక్కువ లేదా m సమానంగా? నిలిపాడు. ఆ కాదు, వీలు was-- యొక్క ఈ కథ నిక్స్ తెలియజేయండి. నేను ఎందుకంటే, ఆ ప్రశ్న అడగలేదు నేను alluding చేస్తున్నానని ప్రమాదం నేను ఎందుకంటే జరిగే లేదు ఎల్లప్పుడూ ఎక్కువ than-- సరే అన్నారు, నేను ఆ ప్రశ్న ఉపసంహరించుకుంటున్నాను. సరే. ఇక్కడ మాత్రమే ఈ భాగం దృష్టి లెట్. ఎందుకు నేను కొన్ని డిక్లేర్ లేదు లూప్ వెలుపల? లైన్ నేను చేసిన 49 న నోటీసు లూప్ యొక్క లోపల నేను డిక్లేర్డ్, కానీ ఆన్లైన్ 48 నేను చేసిన కొన్ని బయట ప్రకటించింది. అవును. ప్రేక్షకులు: [వినబడని]. SPEAKER 1: షూర్. కాబట్టి మొదటి మరియు అన్నిటికంటే నేను ఖచ్చితంగా లేదు ప్రకటించడాన్ని మొత్తం ప్రారంభించడం కావలసిన సున్నా లోపల ప్రతి మళ్ళా న లూప్, ఈ స్పష్టంగా ఓడించడానికి ఎందుకంటే సంఖ్యలు అప్ సంక్షిప్తం ప్రయోజనం. నేను మారుతున్న కొనసాగిస్తామని తిరిగి సున్నా విలువను. కూడా, మరో రహస్య వార్తలు అదే నిర్ణయానికి కారణం? అవును. ప్రేక్షకులు: [వినబడని]. SPEAKER 1: ఖచ్చితంగా. నేను బయట అది ఆక్సెస్ చెయ్యాలనుకుంటున్న చాలా ఏమిటో లైన్ లో లూప్? 53 న. మరియు thumb మా నియమం ఆధారంగా ఉపన్యాసాలు ఒక జంట క్రితం నుండి, వేరియబుల్స్, నిజంగా, దర్శిని ఉంటాయి వాటిని ఆవరించి ఆ గిరజాల జంట కలుపులు. నేను లోపల మొత్తం డిక్లేర్ లేకపోతే కనుక ఈ బాహ్య వంకర జంట కలుపులు, నేను లైన్ 53 లో ఉపయోగించలేరు. నేను ప్రకటించకూడదు ఉంటే, మరొక విధంగా ఉంచండి ఇక్కడ, లేదా లోపల మొత్తం లూప్, నేను 53 లో యాక్సెస్ కాలేదు. వేరియబుల్ సమర్థవంతంగా తొలగించబడతాయి ఉంటుంది. సో అక్కడ కారణాలు జంట. కానీ ఇప్పుడు యొక్క తిరిగి వెళ్ళి తెలపండి మరియు ఏమి చూడండి. కాబట్టి సిగ్మా అని చెపుతాడు. ఇది 1 ప్లస్ 2, లేదా 1 ప్లస్ 2 అప్ జతచేస్తుంది ప్లస్ 3, ఆపై విలువ తిరిగి సమాధానం దుకాణాలు, మరియు ఇక్కడ యొక్క printf నేను తెరపై చూసిన నేను ఎందుకు. కాబట్టి ఈ మేము పునరుత్థాన పిలుస్తాను ఏమిటి విధానం పేరు మళ్ళా కేవలం ఒక లూప్ ఉపయోగించి అర్థం. లూప్, కొంత లూప్ ఒక దో కొంతకాలం ఒక లూప్, కేవలం మళ్ళీ ఏదో చేయడం మళ్లీ మళ్లీ. కానీ సిగ్మా ఒక చక్కని ఫంక్షన్ లో రకం నేను భిన్నంగా అది అమలు కాలేదు. దీని గురించి ఏమి, ఇది కేవలం చల్లని రకం ఉండాలి నాకు నిజంగా వదిలించుకోవటం తెలియజేయండి పరధ్యానంగా చాలా ఈ ఫంక్షన్ ఎందుకంటే నిజంగా చాలా సులభం. లెట్ యొక్క చెక్కకొయ్య అది డౌన్ కేవలం దాని నాలుగు ప్రధాన లైన్లకు మరియు వదిలించుకోవటం అన్ని వ్యాఖ్యానాలు మరియు గిరజాల జంట కలుపులు. ఈ అద్భుతంగా రకం ప్రత్యామ్నాయ అమలు. అన్ని కుడి, బహుశా మైండ్ బ్లోయింగ్ కాదు, కానీ శృంగారపరంగా, అన్ని కుడి రకం, వార్తలు మరింత క్లుప్తమైన ఈ చూడండి. కోడ్ కేవలం నాలుగు గీతాలతో, నేను మొదటి ఈ తెలివి తనిఖీ చేశారు. M కంటే తక్కువ లేదా సమానం ఉంటే సున్నా, సిగ్మా అస్సలు అర్ధమే లేదు. ఇది కేవలం రావలసిన ధనాత్మక సంఖ్యలు కోసం ఈ సందర్భంలో, కాబట్టి నేను కేవలం వెళుతున్న ఏకపక్ష సున్నా తిరిగి మేము కనీసం కలిగి తద్వారా కొన్ని మూల కేసు పేరొందిన. కానీ ఇక్కడ అందం ఉంది. జోడించడం ఈ ఆలోచన యొక్క సంపూర్ణంగా n కు 1 నుండి సంఖ్యలు, లేదా ఈ సందర్భంలో చి, బక్ ప్రయాణిస్తున్న రకం ద్వారా చేయవచ్చు. వెల్, చి 1 మొత్తానికి? సరే, మీరు ఏమి తెలుసు? ఇది మీటర్ల మొత్తం సమానంగా వార్తలు ప్లస్ M మైనస్ 1 కు 1 మొత్తం. Well మీరు ఏమి తెలుసు? M మైనస్ 1 యొక్క సిగ్మా ఏమిటి? సరే, మీరు రకమైన ఈ అనుసరించండి తార్కికంగా, అది m మైనస్ 1 సేమ్ ప్లస్ M మైనస్ 2 యొక్క సిగ్మా. కాబట్టి మీరు రకమైన కేవలం చెయ్యవచ్చు కేవలం మీరు ఉన్నాము ఉంటే, ఈ వంటి ఉంది ఒక స్నేహితుడు బాధించు ప్రయత్నిస్తున్న మరియు వారు మీరు ఒక ప్రశ్న అడగండి మీరు రకమైన, ఒక ప్రశ్న స్పందిస్తారు మీరు రకమైన బక్ ప్రయాణిస్తున్న ఉంచుకోవచ్చు. కానీ ఏ కీ మీరు ఉంచుకుంటే ఉంది ప్రశ్న చిన్నది మరియు చిన్న, మీరు ఉన్నాము సిగ్మా ఏమిటి అడగడం లేదు n యొక్క, చెందిన సిగ్మా ఏమిటి n, N చెందిన సిగ్మా ఏమిటి? మీరు ఏమి అభ్యర్థిస్తున్నాము n యొక్క సిగ్మా, ఏమి సిగ్మా వార్తలు యొక్క n మైనస్ 1, N మైనస్ 2 చెందిన సిగ్మా ఏమిటి? చివరికి మీ ప్రశ్న ఏమి మారింది అన్నారు? ఒకటి లేదా చెందిన సిగ్మా ఏమిటి సున్నా, కొన్ని చాలా చిన్న విలువ, మరియు వెంటనే మీరు ఆ, మీ స్నేహితుడు పొందండి మీరు గోవా వెళ్ళడం లేదు మళ్ళీ అదే ప్రశ్న, మీరు, OH అది సున్నా, చెప్పడానికి వెళుతున్న. మేము ఈ విధమైన ఆడటం పూర్తి చేసిన స్టుపిడ్ చక్రీయ ఆట ఉంది. కాబట్టి సూత్రం ప్రోగ్రామింగ్ లో చర్య ఒక ఫంక్షన్ కూడా పిలుపునిచ్చింది. కంపైల్ మరియు అమలు చేసినప్పుడు ఈ కార్యక్రమం, ఉంది సరిగ్గా అదే విధంగా ప్రవర్తిస్తాయి అన్నారు, కానీ ఏ కీ అని లోపల ఉంది సిగ్మా అనే ఫంక్షన్, కోడ్ ఇందులో ఒక లైన్ ఉంది మేము మమ్మల్ని కాల్ చేస్తున్నారు ఇది సాధారణంగా చెడు ఉంటుంది. ఉదాహరణకు, ఏమి మొదటి నేను ఉంటే ఈ సంకలనం, కాబట్టి sigma-- తయారు సిగ్మా 1 ./sigma-1 చేస్తాయి. సానుకూల పూర్ణాంక, దయచేసి, 50 1275. సో వాట్ ఫంక్షన్ తెలుస్తోంది సరైన ఒక పరీక్ష ఆధారంగా, అని. కానీ నేను చిన్న ప్రమాదకరమైన ఏమిటి వస్తే మరియు అని పిలవబడే బేస్ కేసు తొలగించండి మరియు కేవలం అలాగే నేను తయారు చేస్తున్నాను చెప్పటానికి ఇది కంటే ఈ మరింత సంక్లిష్టంగా. యొక్క కేవలం సిగ్మా గణించడం తెలియజేయండి M తీసుకొని ఆపై జోడించడం ద్వారా M మైనస్ ఒకటి సిగ్మా? Well, ఇక్కడ జరిగే అవకాశముంది? యొక్క దూరంగా లెట్. కార్యక్రమం కంపైల్ చెయ్యండి లెట్, అది సేవ్ కార్యక్రమం కంపైల్ చెయ్యండి, ఆపై సిద్ధంగా ./sigma-1, జూమ్ 50 సానుకూల పూర్ణాంక దయచేసి నమోదు. ఎలా మీరు చాలా ఒప్పుకున్న ఆ చూసిన తప్పును ఒప్పుకునేలా? సరే. కాబట్టి ఈ జరగవచ్చు కారణాలు, మరియు స్పష్టముగా ఈ వారం మేము ఉన్నాము మీరు వాటిని మరింత ఇవ్వాలని గురించి. కానీ ఈ సందర్భంలో, ప్రయత్నించండి వెనుకకు కారణం ఇక్కడ ఏమి జరిగి ఉండవచ్చు? విభజన లోపంగా, మేము గత చెప్పారు సమయం మెమరీ విభాగంలో సూచిస్తుంది. ఏదో చెడు జరిగింది. కానీ అది ఏమి ఉంది యాంత్రికంగా వంకరైన వెళ్ళింది ఆ ఇక్కడ ఎందుకంటే నా తొలగింపు అని పిలవబడే బేస్ కేసు, ఇక్కడ నేను ఒక హార్డ్ కోడెడ్ విలువ తిరిగి? మీరు ఏ తప్పు జరిగింది అనుకుంటున్నాను లేదు? అవును. ప్రేక్షకులు: [వినబడని]. SPEAKER 1: ఆహ్. మంచి ప్రశ్న. సంఖ్య పరిమాణాన్ని కాబట్టి నేను అప్ సంక్షిప్తం ఆ ఇది మించిపోయింది కాబట్టి పెద్ద వచ్చింది మెమరీని యొక్క పరిమాణం. మంచి ఆలోచన, కానీ అది ప్రాథమికంగా ఒక క్రాష్ కారణం అన్నారు. ఆ పూర్ణాంక ఓవర్ఫ్లో కారణం కావచ్చు, బిట్స్ కేవలం కుదుపు పేరు మరియు అప్పుడు మేము ఒక నిజంగా పెద్ద తప్పిదమే ఒక ప్రతికూల సంఖ్య వంటి కోసం సంఖ్య, కానీ దానికదే ఒక క్రాష్ కారణం కాదని. ఎందుకంటే చివరిలో రోజు ఒక పూర్ణాంకానికి ఇప్పటికీ 32 బిట్స్ ఉంది. మీరు వెళ్ళడం లేదు చేస్తున్నాం అనుకోకుండా ఒక 33 వ బిట్ దొంగతనం. కానీ ఒక మంచి ఆలోచన. అవును. ప్రేక్షకులు: [వినబడని]. SPEAKER 1: పద్ధతి ఎప్పుడూ అమలు ఆపి, నిజానికి ఇది మళ్ళీ కూడా కాల్స్ మళ్లీ మళ్లీ మళ్లీ మళ్ళీ, ఎవరూ ఎప్పుడూ ఆ విధులు వారి ఏకైక లైన్ ఎందుకంటే పూర్తి కోడ్ మళ్లీ మళ్లీ తానే కాల్స్ మళ్ళీ. మరియు ఏ నిజంగా ఉంది మేము ఇక్కడ జరుగుతున్న, మరియు ఇప్పుడు రకం చిత్రాల ఈ డ్రా చేయవచ్చు. నాకు కు వెళ్ళి తెలపండి కేవలం ఒక క్షణం చిత్రం. ఈ, ఒక చిత్రం చివరికి మాంసం మరింత వివరంగా, జరగబోతోంది ఏమి మీ కంప్యూటర్ యొక్క మెమరీ లోపల. మరియు ఆ పై అవుతుంది ఈ చిత్రం యొక్క అడుగు స్టాక్ అని ఏదో ఉంది. ఈ భాగం ఉంది జ్ఞాపకశక్తి, RAM యొక్క ఒక భాగం, కేవలం ఏ సమయంలో ఉపయోగిస్తారు ఒక ఫంక్షన్ అంటారు. ఏ సమయంలో మీరు ఒక ప్రోగ్రామర్, ఒక ఫంక్షన్ కాల్, ఆపరేటింగ్ సిస్టమ్ వంటి Mac OS, Windows, లేదా Linux, పనిచేయకుండా బైట్లు కొంత, బహుశా ఒక కొన్ని కిలోబైట్లు బహుశా కొన్ని మెగాబైట్ల memory, వాటిని చేతులు మీకు, ఆపై అనుమతిస్తుంది మీరు ఉపయోగించి మీ ఫంక్షన్ అమలు సంసార వేరియబుల్స్ మీరు అవసరం. మరియు మీరు అప్పుడు మరొక కాల్ ఉంటే ఫంక్షన్ మరియు మరొక ఫంక్షన్ మీరు మెమరీ మరొక ముక్క పొందండి మరియు మెమరీ మరొక ముక్క. నిజానికి, ఈ ఆకుపచ్చ ట్రేలు ఉంటే Annenberg నుండి, ఆ స్మృతి ప్రాతినిధ్యం ఇక్కడ మొదటి ఏమి వార్తలు సమయం మీరు ఫంక్షన్ సిగ్మా కాల్. ఈ వంటి ట్రే వంటింది ప్రారంభంలో ఒక ఖాళీ స్టాక్ ఏది. కానీ ఒకవేళ ఆ ట్రే మాట్లాడటానికి, కూడా కాల్స్, మరో మచ్చుతునక కాల్ సిగ్మా యొక్క, ఆ వార్తలు ఆపరేటింగ్ సిస్టమ్ అడగడం వంటి, ooh, కొంచెం మెమరీ అవసరం నాకు ఇవ్వండి. ఆపై అది పైన పోగు అవుతుంది. కాని ఇక్కడ కీ అని ఉంది మొదటి ట్రే, ఇప్పటికీ ఉంది అతను ఈ రెండవ ట్రే ఆవాహన ఎందుకంటే. ఇప్పుడు అదే సమయంలో, సిగ్మా సిగ్మా కాల్, మరింత మెమరీ కోసం అడుగుతూ వంటిది. ఇక్కడ పైగా పోగు గెట్స్. సిగ్మా ఇంకొక సంగతి సిగ్మా కాల్ ఇక్కడ పోగు పొందే ట్రే. మరియు మీరు ఈ పనిని ఉంటే, చివరికి, రకమైన ఈ దృశ్య మ్యాప్ ఆ చార్ట్, ఏమి జరగబోతోంది ట్రేలు యొక్క స్టాక్ తో జరిగే? ఇది మొత్తాన్ని అధిగమించకూడదు అన్నారు మెమరీ మీ కంప్యూటర్ ఉంది. మరియు వెంటనే ఈ ఆకుపచ్చ ట్రే వంటి సమతల పంక్తి మించి స్టాక్ పైన మరియు ఆ పదం కుప్ప పైన, ఇది మేము భవిష్యత్తులో తిరిగి వచ్చి చేస్తాము, ఒక చెడ్డ విషయం. కుప్ప వేరే ఉంది మెమరీ విభాగంలో, మరియు మీరు ఈ తెలియజేయండి ట్రేలు కుప్ప మరియు కుప్ప, న మీరు అధిగమించటానికి చూడాలని మెమరీ మీ సొంత సెగ్మెంట్ మరియు ఒక కార్యక్రమం నిజానికి క్రాష్ అన్నారు. ఇప్పుడు జనాంతికంగా, ఈ ఆలోచన సూత్రం యొక్క, అందువలన, స్పష్టంగా, సమస్యలకు దారితీస్తుంది కానీ అది తప్పనిసరిగా ఒక చెడ్డ విషయం కాదు. ఎందుకంటే పరిగణలోకి తర్వాత అన్ని how-- మరియు ఉండవచ్చు ఈ కొన్ని ఉపయోగిస్తారు విధానం పడుతుంది --how సొగసైన లేదా ఎలా సాధారణ సిగ్మా ఆ అమలు ఉంది. మరియు మేము ఉపయోగించడానికి వెళ్ళడం లేదు చేస్తున్నాం CS50 లో అన్ని ఎక్కువ సూత్రం, కానీ CS51 లో, మరియు నిజంగా ఏ తరగతి మీరు డేటా నిర్మాణాలు సమకూర్చే చెట్లు, లేదా కుటుంబం చెట్లు, , కొన్ని సోపానక్రమం ఇది ఉపయోగకరమైన సూపర్, సూపర్ వార్తలు. ఇప్పుడు, జనాంతికంగా, కాబట్టి మీరు కంప్యూటర్ శాస్త్రవేత్తలు వర్ధమాన వంటి Google యొక్క కొన్ని తెలిసిన మీరు Google కు వెళ్ళి ఉంటే జోకులు లోపల, మరియు మీరు ఏమి చూసేందుకు యొక్క నిర్వచనం సే, సూత్రం, ఇవ్వండి. UH-హుహ్. జనాంతికంగా, నేను కొన్ని ఆగింది. ఈ 10 నిమిషాల వంటిది procrastination ఈ ఉదయం. మీరు కూడా గూగుల్ "వంకరగా," నోటీసు మీ తల వంచడం ద్వారా slightly-- ఆపై ఈ బహుశా ఉంది అన్ని అత్యంత దారుణమైన ఎవరో గడిపాడు నుండి ఈ అమలు వారి రోజు కొన్ని సంవత్సరాల వచ్చి ago--. ఓహ్, wait-- ఒక బగ్ ఉంది. కాబట్టి ఒకటి నడుస్తున్న ప్రపంచంలో అతిపెద్ద వెబ్సైట్లు ఈ స్టుపిడ్ చిన్న ఈస్టర్ గుడ్లు ఉంటాయి. వారు బహుశా తినే లైన్స్ ఆఫ్ కోడ్ nontrivial సంఖ్య కేవలం మేము కలిగి తద్వారా ఆ వంటి చిన్న విషయాలను సరదాగా. కానీ కనీసం ఇప్పుడు మీరు పొందండి ఆ లోపల జోకులు కొన్ని. ఇప్పుడు కొన్ని వద్ద ఒక లుక్ తీసుకుందాం తెలుపు, మేము ఆలస్యంగా చెప్తున్నాం చేసిన ఉంది మరియు తిరిగి రాలిపోవడం ప్రారంభం కొన్ని పొరలు సాంకేతికంగా మీరు నిజంగా అర్థం కాబట్టి ఏమి జరుగుతున్నాయి మరియు నేను మీరు అర్థం ప్రమాదాలలో కొన్ని, Shellshock వంటి ఆ ఇప్పుడు మారింది ప్రారంభించారు అందరి ముందంజలో శ్రద్ధ, కనీసం మీడియా లో. కాబట్టి ఇక్కడ చాలా సాధారణ విధి ఆ శూన్యత, ఏదీ తిరిగి. దీని పేరు మార్పుగా చెప్పవచ్చు. ఇది రెండు వేరియబుల్స్ లో పడుతుంది మరియు అది ఏమీ తిరిగి. ఒక అండ్ బి టేక్స్. సో శీఘ్ర ప్రదర్శన. మేము ఈ తీసుకువచ్చింది. మేము అలాగే ఒక చిన్న పడుతుంది కేవలం ఒక క్షణం ఇక్కడ బ్రేక్ మరియు త్రాగటానికి కొద్దిగా ఏదో చేశారు. ఎవరైనా చేరిన పట్టించుకోవడం అనుకుంటే ఇక్కడ కేవలం ఒక క్షణం నన్ను పైకి. ఎలా మెరూన్ చొక్కా మీరు? అప్ న వస్తాయి. జస్ట్ ఒకటి నేడు. అయితే, ధన్యవాదాలు. All right, మరియు మేము కలిగి ఎవరు ఇక్కడ వస్తున్న? మీ పేరు ఏమిటి? SPEAKER 4: లారా. SPEAKER 1: లారా. అప్ న వస్తాయి. కాబట్టి లారా, చాలా సులభమైన సవాలు నేడు. యో ఎవరిని నీస్. అన్ని కుడి. కాబట్టి మేము ఇక్కడ పైగా కొన్ని పాలు కలిగి మరియు మేము ఇక్కడ పైగా కొన్ని నారింజ రసం కలిగి మరియు కొన్ని cups మేము నేడు Annenberg నుంచి స్వీకరించారు. SPEAKER 4: స్వీకరించారు. SPEAKER 1: మరియు ముందుకు వెళ్ళడానికి వెళ్తున్నారు మరియు మీరు ఈ సగం ఒక గాజు ఇస్తాయి. అన్ని కుడి. మరియు మేము మీరు సగం ఇస్తాను పాలు ఒక గాజు. ఓహ్, మరియు కేవలం మీరు చెయ్యవచ్చు తద్వారా ఈ వంటి జరిగినది గుర్తు నేను తీసుకుని జ్ఞాపకం ఈ అప్ మరియు నేటి. సరే. మీరు చూసుకొని కాదు ఉంటే, యొక్క చూసేలా, మేము మీ సొంత అద్దాలు పైగా వాటిని ఉంచవచ్చు మీరు అనుకుంటే. ఈ లారా యొక్క కళ్ళు నుండి ప్రపంచం ఉంటాం. అన్ని కుడి. మీ లక్ష్యం, రెండు కప్పులు ఇచ్చిన ఇక్కడ ద్రవ, పాలు మరియు నారింజ రసం, రెండు విషయాల మార్పిడి కాబట్టి నారింజ రసం పాలు కప్ లోకి వెళుతుంది మరియు పాలు లోకి వెళుతుంది నారింజ రసం కప్. SPEAKER 4: నేను మరొక కప్ పొందుటకు చేయండి? SPEAKER 1: నేను అయితే, మీరు అడిగారు కాబట్టి సంతోషించిన రెడీ అది మెరుగైన ఫుటేజ్ ఉండేది మీరు అడిగిన కాకపోయి ఉంటే. కానీ అవును, మేము మీరు ఒక మూడవ అందించే కోర్సు యొక్క, ఖాళీ కప్పు. అన్ని కుడి. సో అక్కడ విషయాల స్వాప్. మంచిపని. చాలా మంచి. మీరు అసాధారణ జాగ్రత్తగా ఈ చేయుచున్నారు. మరియు మూడు అడుగు. అన్ని కుడి. అద్భుతమైన. చప్పట్లు పెద్ద రౌండ్ లారా మంచి అవుతుంది. అన్ని కుడి. మేము ఒక చిన్న విడిపోవడానికి బహుమతిగా కలిగి మీరు కోసం, కానీ నాకు ఈ తీసుకుందాం. చాలా ధన్యవాదాలు. ఒక చిన్న ఉదాహరణ కాబట్టి, అయితే, మీరు చేస్తే ప్రదర్శించేందుకు విషయాల మారడానికి కావలసిన రెండు కంటైనర్లు, లేదా యొక్క వేరియబుల్స్ వాటిని కాల్ తెలియజేయండి మీరు కొన్ని తాత్కాలిక నిల్వ అవసరం కాబట్టి విషయాలు ఒకటి దశకి మీరు నిజంగా స్వాప్ చేయవచ్చు ఆ. కాబట్టి నిజంగా, ఇక్కడ ఈ సోర్స్ కోడ్ లో సి సరిగ్గా ఆ ప్రతినిధి. నారింజ రసం ఒక మరియు పాలు ఉంటే , బి ఉంది, మరియు మేము రెండు స్వాప్ కావలెను మీరు సృజనాత్మక ఏదో ప్రయత్నించండి ఇతర లోకి ఒక పోయడం ద్వారా, కానీ ఆ బహుశా చెప్పమంటారా ముఖ్యంగా బాగా ముగుస్తుంది. కాబట్టి మనం మూడవ కప్పు, కాల్ ఉపయోగించడానికి ఇది సాంప్రదాయకంగా, టి ఎం పి TMP మరియు విషయాలు చాలు OJ ఆ, అప్పుడు ఒక కప్పు స్వాప్ అప్పుడు లోకి OJ చాలు అసలు కప్పు, తద్వారా సరిగ్గా సాధించే లారా, స్వాప్ చేసింది. కాబట్టి యొక్క ఖచ్చితంగా అలా వీలు. నాకు ముందుకు వెళ్లి తెరిచి లెట్ వార్తలు ఉండే ఒక ఉదాహరణ నిజానికి ఏ "అని ఈ కాదు ఎందుకంటే ", స్వాప్ మీరు అనుకుంటున్నాను ఉండవచ్చు వంటి సరళంగా చేసిన. కాబట్టి ఈ ప్రోగ్రామ్ లో, గమనించవచ్చు నేను stdio.h, మా పాత స్నేహితుడు ఉపయోగించి వెబ్. నేను నమూనా కలిగి , అక్కడికి మార్పిడి కోసం ఇది దాని అమలు యొక్క అర్థం బహుశా డౌన్ క్రింద, మరియు యొక్క చూసేలా ప్రధాన ఏమి ఈ ప్రోగ్రామ్ నాకు ఏమి జరగబోతోంది. నేను మొదటి Int x గెట్స్ డిక్లేర్ ఒకటి, మరియు y రెండు గెట్స్ Int. కాబట్టి OJ ఆ అనుకుంటున్నారో వరుసగా పాలు,. ఆపై నేను ఒక కలిగి printf x ఈ తనకు మరియు y కేవలం నేను, ఈ ఉంది దృశ్యపరంగా న జరగబోతోంది ఏమి చూడండి. అప్పుడు నేను ఆరోపించారు printf కలిగి , నేను రెండు ఇచ్చిపుచ్చుకోవడం చేస్తున్నాను ఆపై నేను ఒక అవ్ట్ ముద్రించవచ్చు వారు మార్చుకున్నారు చేస్తున్నారు చెప్పుదురు మరియు నేను మళ్ళీ x మరియు y ముద్రించాలా. కాబట్టి డౌన్ ఇక్కడ స్వాప్ లో సరిగ్గా లారా ఏమి చేసాడు, మరియు మేము చూసిన వేటి ఒక క్షణం క్రితం తెర. కాబట్టి యొక్క ముందుకు తెలియజేయండి మరియు తీవ్రంగా నిరాశ. ఏ స్వాప్ చేయండి, మరియు ఏ స్వాప్ అమలు, ఇక్కడ అవుట్పుట్ న జూమ్. ఎంటర్ X y లో మార్చుకున్నారు ఇచ్చిపుచ్చుకోవడంతో, 2, 1. x ఇంకా 1, మరియు Y ఇప్పటికీ 2. కాబట్టి అయినప్పటికీ, స్పష్టముగా, ఈ కనిపిస్తోంది సరిగ్గా మరింత సాంకేతికంగా అయితే, ఇష్టం, లారా ఏమి చేసాడు, పని అనిపించడం లేదు. సో ఎందుకు అని? సరే, అది ఎప్పుడు బయటకు వస్తాడు మేము ఈ వంటి ఒక ప్రోగ్రామ్ను రాయడం ఆ రెండు ప్రధాన, ఇక్కడ హైలైట్ చేసింది ఆపై మరొక ఫంక్షన్, swap వంటి, ఇక్కడ హైలైట్ ఇది ఇది ప్రపంచంలో పిలుస్తుంది వంటి కొంత కనిపిస్తోంది ఒక క్షణం క్రితం ఈ ట్రేలు. చేసినప్పుడు ప్రధాన అని చెపుతాడు మొదటి, ఆపరేటింగ్ సిస్టమ్ అడగడం వంటిది ఏ స్థానిక మెమరీ బిట్ కోసం x మరియు ప్రధాన ఉంది y వంటి వేరియబుల్స్, మరియు వారు అక్కడే ముగుస్తుంది. ప్రధాన కాల్స్ మార్పిడి, మరియు ప్రధాన కానీ ఉంటే రెండు వాదనలు, ఒక మరియు బి స్వాప్ కు వెళుతుంది, నారింజ రసం, పాలు అది ఇష్టం లేదు నారింజ రసం మరియు పాలు ఇవ్వడానికి లారా. ఒక కంప్యూటర్ చేస్తుంది ఏమిటి, అది ఉంది నారింజ రసం యొక్క కాపీలు వెళుతుంది కాబట్టి లారా పాలు మరియు కాపీలు, ఏమి ఈ ట్రే యొక్క లోపల చివరికి వార్తలు విలువ ఒకటి, రెండు, లేదా OJ ఉంది మరియు పాలు, కానీ వాటి కాపీలు, కాబట్టి ఈ సమయంలో కథలో, అక్కడ ఈ ట్రేలు ప్రతి OJ మరియు పాలు. ఒక మరియు రెండు ఉంది ఈ ట్రేలు ప్రతి లో, మరియు swap ఫంక్షన్ నిజానికి పనిచేస్తున్నది. ఇది లోపల వాటిని ఇచ్చిపుచ్చుకోవడంతో లో రెండవ ఎత్తైన ట్రే, కానీ ఆ ఇచ్చిపుచ్చుకోవడంతో ఎలాంటి ప్రభావం ఉంది. మరియు కేవలం కొన్ని ఆధారంగా మేము చేసిన ప్రాథమిక సూత్రం ముందు మాట్లాడారు, మరియు నిజానికి కేవలం కొన్ని నిమిషాల క్రితం, ఏమి మారుతున్న ఎందుకు వివరించేందుకు ఉండవచ్చు swap యొక్క లోపల ఒక అండ్ బి అయినప్పటికీ, x మరియు y న ఎటువంటి ప్రభావం ఉంది నేను swap ఫంక్షన్ x మరియు y ఆమోదించింది. ఇక్కడ కీ పదం ఏమిటి స్పష్టంగా వివరించవచ్చు? నేను ఇక్కడ అది విన్న భావిస్తున్నాను? ప్రేక్షకులు: రిటర్న్. SPEAKER 1: రిటర్న్? తిరిగి. యొక్క ఒకరితో ఒకరు వెళ్ళి తెలపండి. ఆ ఏమిటి? ప్రేక్షకులు: [వినబడని]. SPEAKER 1: సరే, మేము అనుకొనుట తిరిగి కాబట్టి కథలో తిరిగి పని చేయడానికి, కానీ మరింత సులభమైన వివరణ ఉంది. ప్రేక్షకులు: స్కోప్. SPEAKER 1: స్కోప్. నేను పరిధిని తీసుకొని వెళ్తాము. కాబట్టి పరిధిని, పేరు గుర్తు మా x మరియు y ప్రకటించింది. వారు లోపలి ప్రకటించింది చేస్తున్నారు ప్రధాన అప్ ఇక్కడే. ఒక అండ్ బి, మరోవైపు, ఉన్నాయి సమర్థవంతంగా డిక్లేర్డ్ swap యొక్క లోపల, కాదు చాలా లో గిరజాల జంట కలుపులు కానీ ఇప్పటికీ స్వాప్ సాధారణ స్థాయిలో ఉండగలదు. కాబట్టి నిజంగా, ఒక మరియు బి మాత్రమే ఈ ట్రే చోటుచేసుకుంది Annenberg నుండి, ఈ కోడ్ రెండవ భాగం. కాబట్టి మేము నిజానికి ప్రతిని మారుతున్న, కానీ చేస్తున్నారు నిజంగా ఆ ఉపయోగపడిందా కాదు. కాబట్టి యొక్క పరిశీలించి తెలియజేయండి ఈ కొద్దిగా తక్కువ స్థాయి. నేను తిరిగి వెళ్ళడానికి వెళుతున్న మూలం డైరెక్టరీ, మరియు నేను మొదటి వెళుతున్న ఇక్కడ జూమ్, మరియు కేవలం నేను ఈ ఉన్నాను అని నిర్ధారించడానికి పెద్ద టెర్మినల్ విండో, కార్యక్రమం ఇప్పటికీ వంటి ప్రవర్తించే ఉంది. ఇప్పుడు ఈ అనుకుందాం కావాలని కాదు. స్పష్టంగా నేను స్వాప్ కావలెను పని, కాబట్టి అది ఒక బగ్ అనుకుని. ఇప్పుడు నేను జోడించడం ప్రారంభం కాలేదు నా కోడ్ printf యొక్క చాలా, ఇక్కడ పైగా y, x పైగా ముద్రించిన ఇక్కడ, ఇక్కడ పైగా, ఇక్కడ పైగా బి. కానీ స్పష్టముగా, ఆ బహుశా ఏమిటి మీరు వారాల జంట చేయడం చేసిన ఇప్పుడు, ఆఫీస్ అవర్స్ లో మరియు ఇంట్లో పనిచేసేటప్పుడు కొన్ని తప్పులు కనుగొనేందుకు ప్రయత్నిస్తున్న psets న. మీరు ఇప్పటికే కలిగి ఉంటే కానీ మీరు, చూస్తారు ఆ సమస్య మూడు మీరు పరిచయం సెట్ GDB అనే కమాండ్ కు, తోబుట్టువుల GDB, GNU డీబగ్గర్, కూడా ఒక మొత్తం బంచ్ ఉంది లక్షణాలు నిజానికి చెయ్యవచ్చు మాకు పరిస్థితులలో అర్థం చేసుకుందాం ఈ వంటి, కానీ మరింత compellingly, సమస్యలు పరిష్కరించేందుకు మరియు దోషాలను గుర్తించడం. నేను దీన్ని వెళుతున్న. బదులుగా ./noswap, నేను బదులుగా రెడీ GDB ./noswap అమలు అన్నారు. ఇతర మాటలలో, నేను అమలు వెళుతున్న నా కార్యక్రమం కాదు బాష్లో, మా కొత్త స్నేహితుడు నేడు. నేను అమలు వెళుతున్న నా లోపల కార్యక్రమం noswap అని ఈ ఇతర కార్యక్రమం ఒక డీబగ్గర్ ఇది GDB, ఇది సహాయం రూపొందించబడింది ఒక కార్యక్రమం మీరు కనుగొనడానికి మరియు దోషాలు తొలగించడానికి మానవులు. నేను ఇక్కడ రన్ హిట్ చేస్తే, అక్కడ టెక్స్ట్ యొక్క ఒక దారుణమైన మొత్తం మీరు నిజంగా చదవడానికి కలిగి ఎప్పుడూ. ఇది ముఖ్యంగా పరధ్యానంగా వార్తలు ప్రాంప్ట్ నుండి ఇది నేను కంట్రోల్-L నొక్కండి వెళుతున్న అక్కడ టాప్ వద్ద నిలపడానికి. ఈ GDB ప్రాంప్ట్. నేను ఇప్పుడు ఈ కార్యక్రమం అమలు చేయాలనుకుంటే, నేటి ఈ చిన్న మోసగాడు షీట్ స్లయిడ్ రన్ మొదటి ఉంది సూచిస్తుంది మేము పరిచయం దీనర్ధం ఆశిస్తాడు. నేను కేవలం టైప్ వెళుతున్న GDB లోపల ఇక్కడ అమలు, నిజానికి ఇది నా కార్యక్రమం నడిచింది. ఇప్పుడు కొన్ని అదనపు ఉంది ఈ వంటి స్క్రీన్ ప్రతిఫలాన్ని, కానీ ఆ GDB కేవలం అంగ వార్తలు మరియు ఏం జరగబోతోంది ఏమి మాకు చెప్పినందుకు. మీరు నిజంగా ఆందోళన లేదు ప్రస్తుతం ఈ వివరాలు గురించి. కానీ గురించి నిజంగా చల్లని ఏమిటి నేను లేకపోతే GDB, ఈ మళ్ళీ కంట్రోల్-L నాకు వీడలేదు స్క్రీన్ క్లియర్ ముందుకు మరియు రకం తద్వారా ", బ్రేక్ ప్రధాన", నేను ఎంటర్ కొట్టాడు, ఏమి సెట్టింగ్ ఒక బ్రేక్ పాయింట్ noswap.c వద్ద పిలుస్తారు, తోబుట్టువుల GDB ఉంది దీనిలో లైన్ 16, నిజానికి నా కార్యక్రమం కనుగొన్నారు నా ఫంక్షన్ నిజానికి ఉంది. మేము ఇప్పుడు కోసం విస్మరించండి చేస్తాము కానీ ఆ చిరునామా వార్తలు ప్రత్యేకంగా ఈ ఫంక్షన్ జ్ఞాపకార్థం. కాబట్టి ఇప్పుడు నేను పరుగుల టైప్ చేసినప్పుడు, ఇక్కడ అద్భుతమైన ఏమి గమనిస్తారు. నా కార్యక్రమం లైన్ నేను విరామాలు వద్ద విరామం అమలు GDB చెప్పారు. నేను ఇప్పుడు నా కోడ్ మార్చడానికి లేదు, కొన్ని printf యొక్క జోడించవచ్చు మళ్ళీ కంపైల్, తిరిగి ఇది, మార్చడానికి కొన్ని printf యొక్క జోడించండి అది సేవ్, మళ్ళీ కంపైల్, అమలు. నేను కేవలం నా కార్యక్రమం ద్వారా నడిచే మానవ వేగంతో స్టెప్ బై స్టెప్ బై స్టెప్, వేగం ఇంటెల్ లోపల రకమైన. కాబట్టి ఇప్పుడు ఈ లైన్ గమనించవచ్చు నేను తిరిగి వెళ్ళి ఉంటే ఇక్కడ కనిపిస్తుంది, మరియు gedit లో నా ప్రోగ్రామ్, వాస్తవానికి ఉంది అని గుర్తించలేకపోతే కోడ్ యొక్క మొట్టమొదటి లైన్. లైన్ 16 gedit లో ఉంది. అక్కడ లైన్లో 16 GDB లోపల, మరియు కూడా ఈ నలుపు మరియు తెలుపు ఇంటర్ఫేస్ అయితే దాదాపు యూజర్ గా ఉంది స్నేహపూర్వక, ఈ అర్ధం ఆ లైన్ 16 అమలు చేయలేదు ఇంకా, కానీ అది గురించి. కాబట్టి నిజంగా నేను ప్రింట్ టైప్ చేస్తే X, కాదు printf, కేవలం ముద్రణ x, నేను సున్నా యొక్క కొన్ని బోగస్ విలువ పొందండి X ఇంకా initialized లేదు ఎందుకంటే. అలా అయితే మీరు నేను తరువాత టైప్ వెళుతున్న, లేదా వెబ్ తర్వాతి కోసం n, ఫాన్సీ ఉండాలనుకుంటున్నాను. కానీ నేను తరువాత ఇప్పుడు ఎంటర్ టైప్ చేసినప్పుడు ఇది పంక్తి 17 న తరలిస్తుంది గమనించవచ్చు. కాబట్టి తార్కికంగా, నేను అమలు చేసిన ఉంటే లైన్ 16 మరియు నేను ఇప్పుడు ముద్రణ x టైప్ నేను ఏమి చూస్తారు? వన్. ఇప్పుడు ఈ ఆమోదం గందరగోళంగా ఉంది. $ 2, కేవలం ఒక ఫాన్సీ మార్గం మీరు ఉంటే తరువాత ఆ విలువ చూడండి మీరు అనుకుంటే, మీరు "డాలర్ రెండు చందాదారులుకండి." చెప్పగలదు ఇది ఒక తిరిగి సూచన వంటిది. కానీ ఇప్పుడు కోసం, కేవలం దానిని విస్మరించండి. ఏ ఆసక్తికరంగా వార్తలు ఏమిటి సమాన సైన్ కుడి. ఇప్పుడు నేను తరువాత మళ్ళీ టైప్ ఉంటే మరియు y ముద్రణ, నేను 2 చూస్తారు. నేను కూడా ఇప్పుడు ముద్రించవచ్చు X మళ్ళీ, మరియు స్పష్టముగా, నేను కొంచెం అయోమయంలో పొందుతున్నాను ఉంటే నేను ఎక్కడ, నేను జాబితా కోసం జాబితా టైప్ చేయవచ్చు మరియు కేవలం చుట్టూ కొన్ని సందర్భం చూడండి పాయింట్ నేను నిజానికి రెడీ. ఇప్పుడు నేను టైప్ చేయవచ్చు తదుపరి, మరియు అక్కడ x 1. ఇప్పుడు నేను తరువాత టైప్ చేయండి. ఓహ్, Y 2. మరియు మళ్ళీ, ఇది గందరగోళంగా ఉంది GDB యొక్క అవుట్పుట్ ఎందుకంటే నా స్వంత అవుట్పుట్ తో కలిసిపోయిన అవుతోంది. కానీ మీరు, మనస్సులో ఉంచాలని ఉంటే ముందుకు వెనుకకు మీ కోడ్ చూసుకుంటూ ఉండడాన్ని వివరిస్తున్నపుడు లేదా వైపు అది వెయ్యటానికి బహుశా పక్క, మీరు చేస్తాము నిజంగా నేను ఉన్నాను అని చూడండి నా కార్యక్రమం ద్వారా పునాది. కానీ అక్షరాలా, తదుపరి ఏమి గమనిస్తారు. ఇక్కడ లైన్ 22 ఉంది. తద్వారా కదిలే, నన్ను వెళ్ళి లెట్ 23, మరియు నేను ఇప్పుడు, ఇప్పటికీ ఒక x ప్రింట్ ఉంటే. నేను ఒకటి ఇప్పటికీ ఇప్పుడు y ప్రింట్ ఉంటే. కాబట్టి ఈ ఒక ఉపయోగకరమైన వ్యాయామం కాదు. కాబట్టి యొక్క ఈ పునరావృత్తం తెలియజేయండి. నాకు అప్ తిరిగి వెళ్ళి తెలపండి మళ్ళీ టాప్ మరియు రకం రన్. మరియు ఈ కార్యక్రమం మాట్లాడుతూ అన్నారు ఆ డీబగ్ చేయబడిన ఇప్పటికే ప్రారంభించారు, ప్రారంభంలో నుండి ప్రారంభించారు. అవును, మళ్ళీ తెలియజేసేలా. మరియు ఈ సమయం, తరువాత తెలియజేసేలా తరువాత, తదుపరి, తర్వాత, తదుపరి, కానీ ఇప్పుడు విషయాలు ఆసక్తికరమైన పొందండి. ఇప్పుడు నేను చేయడానికి కావలసిన స్వాప్, కాబట్టి నేను తరువాత టైప్ లేదు. నేను అది గమనించే ఇప్పుడు అడుగు టైప్, మరియు noswap.c లైన్ 33 నాకు దూకి ఉంది. నేను gedit తిరిగి వెళ్ళడానికి ఉంటే, లైన్ 33 ఏమిటి? ఆ అసలు మొదటి వార్తలు swap యొక్క లోపల కోడ్ లైన్. ఎందుకంటే ఇప్పుడు నేను, nice ఉంది రకమైన చుట్టూ దూర్చు మరియు ఆసక్తికరమైన పొందండి గా ఏమి అక్కడ నిజంగా జరగబోతోంది. నాకు tmp ప్రింట్ లెట్. అయ్యో. ఎందుకు tmp కొన్ని లేదు క్రేజీ, బోగస్ చెత్త విలువ? ప్రేక్షకులు: ఇది initialized లేదు. SPEAKER 1: ఇది initialized లేదు. నిజానికి, మీరు ఒక ప్రోగ్రామ్ రన్ చేసినప్పుడు, మీరు మెమరీ మొత్తం బంచ్ ఇచ్చిన చేస్తున్నారు ఆపరేటింగ్ సిస్టమ్ ద్వారా కానీ మీరు ఏ విలువలు initialized లేదు కాబట్టి సంసార బిట్స్ మీరు ఉన్నాము అంతే అయినప్పటికీ, ఇక్కడ చూసిన ఈ వెర్రి పెద్ద ప్రతికూల సంఖ్య, కేవలం అర్థం ఆ అవశేషాలు నుండి ఉన్నాయి ఆ RAM యొక్క మునుపటి వాడకం, నేను కలిగి అయినప్పటికీ నాకు ఇంకా అవసరమైన. కాబట్టి ఇప్పుడు నేను ముందుకు మరియు రకం వెళ్ళడానికి వెళుతున్న తదుపరి, మరియు నేను ఇప్పుడు ముద్రణ tmp టైప్ చేస్తే, నేను ఏమి చూస్తారు? ఏదైనా విలువ, ఒక కేవలం మొదటి వాదన ఉంది x వంటి మొదటిది విషయం జారీ చేస్తున్నారు కాబట్టి ఒక మరియు x అదే ఉండాలి, కాబట్టి ముద్రణ tmp నాకు ముద్రించండి ఉండాలి. సో వాట్ మీరు సమస్య సెట్ లో చూస్తారు మూడు, GDB రకాల ఒక ట్యుటోరియల్ ఉంది కానీ ఈ ప్రారంభం అని తెలుసుకోవటం ఒక సాధనం వద్ద ఒక లుక్ యొక్క నిజానికి రెడీ మీరు సమస్యలను పరిష్కరించటానికి సహాయం మరింత సమర్థవంతంగా. మేము చివరికి ఏమి బుధవారం చేయ కొన్ని పొరలు తిరిగి రాలిపోవడం ప్రారంభించండి ఉంది మరియు కొన్ని శిక్షణ చక్రాలు తొలగించండి. ఆ విషయం అని స్ట్రింగ్ ఆ మేము కొంత సమయం ఉపయోగించిన మేము నెమ్మదిగా దూరంగా తీసుకుని వెళుతున్నాం మరియు మీరు నుండి గురించి మాట్లాడటం మొదలు ఏదో మరింత esoterically చార్ * అని పిలుస్తారు, కానీ మేము ఈ nice చేయబోతున్నామని మరియు శాంతముగా మొదటి వద్ద కూడా గమనికలు అయితే, వారు అని వంటి, కొన్ని అలా చేయవచ్చు ఉంటే వేధింపులకు చాలా చెడ్డ విషయాలు, నుండి కొద్దిగా క్లేమాషన్గా చూడటం ద్వారా మా స్నేహితుడు స్టాన్ఫోర్డ్ నుండి నిక్ Parlante విశ్వవిద్యాలయం, కంప్యూటర్ లో ఒక ప్రొఫెసర్ ఈ మునుజూపు కలిసి చేసిన శాస్త్రం ఈ బుధవారం వచ్చిన ఏది. [వీడియో ప్లేబ్యాక్] -Hey, Binky ఆన్లైన్. నిద్రలేపే. ఇది పాయింటర్ వినోదం కోసం సమయం. ఆ -What వార్తలు? గమనికలు గురించి తెలుసుకోండి? ఓహ్, అమ్మ! [END వీడియో ప్లేబ్యాక్] SPEAKER 1: ఆ బుధవారం మీరు జరుపుతున్నారు. మేము మీరు చూస్తారు. [వీడియో ప్లేబ్యాక్] -అండ్ ఇప్పుడు లోతైన ఆలోచనలు, Daven Farnham ద్వారా. -ఎందుకు మేము సి నేర్చుకుంటున్నారు? ఎందుకు లేదు ఒక +? [నవ్వు] [END వీడియో ప్లేబ్యాక్]