编译系统的近几年的发展事件
㈠ Visual Basic 铡嗗彶璧勬枡.....
Visual Basic Visual Basic锛圴B锛夋槸涓绉岖敱寰杞鍏鍙稿紑鍙戠殑鍖呭惈鍗忓姪寮鍙戠幆澧幂殑浜嬩欢椹卞姩绋嫔纺璇瑷銆备粠浠讳綍镙囧嗳𨱒ヨ达纴VB閮芥槸涓栫晫涓娄娇鐢ㄤ汉鏁版渶澶氱殑璇瑷钬斺斾笉浠呮槸鐩涜禐VB镄勫紑鍙戣呰缮鏄鎶辨╒B镄勫紑鍙戣呯殑鏁伴噺銆傚畠婧愯嚜浜嶣ASIC绋嫔纺璇瑷銆俈B𨰾ユ湁锲惧舰鐢ㄦ埛鐣岄溃锛圙UI锛夊拰蹇阃熷簲鐢ㄧ▼搴忓紑鍙戯纸RAD锛夌郴缁燂纴鍙浠ヨ交鏄撶殑浣跨敤DAO銆丷DO銆丄DO杩炴帴璧勬枡搴掳纴鎴栬呰交𨱒剧殑鍒涘缓ActiveX鎺у埗椤广傜▼寮忚捐$函妯″笀鍙浠ヨ交𨱒剧殑浣跨敤VB鎻愪緵镄勭粍浠跺揩阃熷缓绔嬩竴涓搴旂敤绋嫔簭銆 鍙戝𪾢铡嗗彶 1991骞达纴寰杞鍏鍙告帹鍑轰简Visual Basic 1.0鐗堛傝繖鍦ㄥ綋镞跺紩璧蜂简寰埚ぇ镄勮桨锷ㄣ傝稿氢笓瀹舵妸VB镄勫嚭鐜板綋锅氭槸杞浣揿紑鍙戝彶涓婄殑涓涓鍏锋湁鍒掓椂浠f剰涔夌殑浜嬩欢銆备互鐜板湪镄勭溂鍏夋潵鐪嬶纴VB1.0鐗堢殑锷熻兘鍏跺疄闱炲父镄勫急锛屼絾瀹冨湪鎺ㄥ嚭褰撴椂鍙鏄绗涓涓銆屽彲瑙嗐岖殑缂栫▼杞浣撱傝繖浣垮缑绋嫔纺璁捐″笀娆e枩涔嬫瀬锛岄兘灏濊瘯鍦╒B镄勫钩鍙颁笂杩涜岃蒋浣揿垱浣溿傚井杞涔熶笉澶辨椂链哄湴鍦ㄥ洓骞村唴鎺ヨ繛鎺ㄥ嚭VB2.0锛孷B3.0锛4.0涓変釜鐗堟湰銆傚苟涓斾粠VB3寮濮嬶纴寰杞灏咥CCESS镄勮祫鏂椤簱椹卞姩闆嗘垚鍒颁简VB涓锛岃繖浣垮缑VB镄勮祫鏂椤簱缂栫▼鑳藉姏澶уぇ鎻愰珮銆备粠VB4寮濮嬶纴VB涔熷紩鍏ヤ简鐗╀欢瀵煎悜镄勭▼搴忚捐℃濇兂銆俈B锷熻兘寮哄ぇ锛屽︿範绠鍗曘傝屼笖锛孷B杩桦紩鍏ヤ简銆屾带鍒堕”銆岖殑姒傚康锛屼娇寰楀ぇ閲忓凡缁忕紪濂界殑VB绋嫔簭鍙浠ヨ鎴戜滑鐩存帴𨰾挎潵浣跨敤銆 2002骞碫isual Basic .NET 2002 (v7.0)闂涓栵纴2003骞碫isual Basic .NET 2003 (v7.1)闂涓栵纴2005骞11链7镞Visual Basic 2005 (v8.0)闂涓栵纴钖屾椂闂存帹鍑笃isual Basic 2005镄勫厤璐圭亩鍖栫増链琕isual Basic 2005 Express Edition缁橵isual Basic鍒濆﹁呭强瀛︾敓浣跨敤銆傚师瀹氩厤璐逛娇鐢ㄦ湡闄愪竴骞
涔嫔悗寰杞瀹e竷Express鐗堟湰姘镐箙鍏嶈垂銆 VB2005镄勚屾樉镢椼崭紭镣规槸锛屽彲浠ョ洿鎺ョ紪鍐椤嚭XP椋庢牸镄勬寜阍锛屼互鍙婂叾浠栫殑鎺у埗椤广备絾鏄鍏剁紪鍐欑殑灏忕▼搴忓崰鐢ㄨ繎10MB镄勮板繂浣撱 阃氲繃鍑犲勾镄勫彂灞曪纴瀹冨凡鎴愪负涓绉崭笓涓氩寲镄勫紑鍙戣瑷鍜岀幆澧冦傜敤鎴峰彲鐢╒isual Basic蹇阃熷垱寤篧indows绋嫔簭锛岀幇鍦ㄨ缮鍙浠ョ紪鍐欎紒涓氭按鍑嗙殑瀹㈡埛/浼烘湇鍣ㄧ▼搴忓强寮哄ぇ镄勮祫鏂椤簱搴旂敤绋嫔簭銆 鐢盫B娲剧敓镄勮瑷 寰杞寮鍙戜简涓绯诲垪链夊叧VB镄勮剼链璇瑷锛 Visual Basic for Applications锛屽嵆VBA锛屽寘钖鍦ㄥ井杞镄勫簲鐢ㄧ▼搴忎腑锛堟瘆濡侻icrosoft Office锛夛纴浠ュ强绫讳技WordPerfect Office杩欐牱绗涓夋柟镄勪骇鍝侀噷闱銆俈BA杩欐牱宓屽叆鍦ㄥ悇绉嶅簲鐢ㄧ▼搴忎腑鐪嬭捣𨱒ユ湁浜涚煕鐩撅纴浣嗘槸瀹幂殑锷熻兘鍜孷B涓镙峰己澶с VBScript鏄棰勮剧殑ASP璇瑷锛岃缮鍙浠ョ敤鍦╓indows鑴氭湰缂栧啓鍜岀绣椤电紪镰佷腑銆傚敖绠″畠镄勮娉旷被浼间簬VB锛屼絾鏄瀹冨嵈鏄涓绉嶅畬鍏ㄤ笉钖岀殑璇瑷銆俈BS涓崭娇鐢╒B杩愯屽簱杩愯岋纴钥屾槸鐢盬indows鑴氭湰涓绘満瑙i喷镓ц屻傝繖涓ょ嶈瑷涔嬩腑镄勪笉钖岀偣褰卞搷ASP缃戠珯镄勮〃鐜般 褰揿井杞鍑嗗囧紑鍙戜竴绉嶆柊镄勭紪绋嫔伐鍏风殑镞跺欙纴绗涓鍐冲畾灏辨槸鍒╃敤链鎶㈡坠镄刅B6𨱒ヨ繘琛屾棫鏀癸纴鎴栬呭氨鏄閲嶆柊缁勫缓宸ョ▼寮鍙戞柊宸ュ叿銆傚井杞钖庢潵寮鍙戜简VB镄勭户浠昏匳isual Basic .NET锛屽悓镞朵篃鏄.NET骞冲彴镄勪竴閮ㄥ垎銆俈B绋嫔纺璇瑷鏄涓绉岖湡姝g殑鐗╀欢瀵煎悜绋嫔纺璇瑷锛屽拰姣曢櫔VB骞朵笉瀹屽叏鐩稿广 璇瑷鐗规 锲剧墖鍙傝冿细upload.wikimedia/ *** /zh/7/7c/Typical_vb6_session 涓涓鍏稿瀷镄刅B杩涚▼ VB镄勪腑蹇冩濇兂灏辨槸瑕佷究浜庣▼寮忚捐″笀浣跨敤锛屾棤璁烘槸鏂版坠鎴栬呬笓瀹躲俈B浣跨敤浜嗗彲浠ョ亩鍗曞缓绔嫔簲鐢ㄧ▼搴忕殑GUI绯荤粺锛屼絾鏄鍙埚彲浠ュ紑鍙戠浉褰揿嶆潅镄勭▼搴忋俈B镄勭▼搴忔槸涓绉嶅熀浜庣獥浣撶殑鍙瑙嗗寲缁勪欢瀹夋帓镄勮仈钖堬纴骞朵笖澧炲姞浠g爜𨱒ユ寚瀹氱粍寤虹殑灞炴у拰鏂规硶銆傚洜涓洪勮剧殑灞炴у拰鏂规硶宸茬粡链変竴閮ㄥ垎瀹氢箟鍦ㄤ简缁勪欢鍐咃纴镓浠ョ▼寮忚捐″笀涓岖敤鍐椤氩皯浠g爜灏卞彲浠ュ畬鎴愪竴涓绠鍗旷殑绋嫔簭銆傝繃铡荤殑鐗堟湰閲岄溃VB绋嫔簭镄勬ц兘闂棰树竴鐩磋鏀惧湪浜嗘岄溃涓婏纴浣嗘槸闅忕潃鐢佃剳阃熷害镄勯为熷炲姞锛屽叧浜庢ц兘镄勪簤璁哄凡缁忚秺𨱒ヨ秺灏戙 绐椾綋鎺у埗椤圭殑澧炲姞鍜屾敼鍙桦彲浠ョ敤𨰾栨斁鎶链锅氭暟缂揿疄鐜般备竴涓鎺掑垪婊℃带鍒堕”镄勫伐鍏风辩敤𨱒ユ樉绀哄彲鐢ㄦ带鍒堕”锛堟瘆濡傛枃链妗嗘垨钥呮寜阍锛夈傛疮涓鎺у埗椤归兘链夎嚜宸辩殑灞炴у拰浜嬩欢銆傞勮剧殑灞炴у间细鍦ㄦ带鍒堕”鍒涘缓镄勬椂鍊欐彁渚涳纴浣嗘槸绋嫔纺璁捐″笀涔熷彲浠ヨ繘琛屾洿鏀广傚緢澶氱殑灞炴у煎彲浠ュ湪杩愯屾椂鍊欓殢镌鐢ㄦ埛镄勫姩浣滃拰淇鏀硅繘琛屾敼锷锛岃繖镙峰氨褰㈡垚浜嗕竴涓锷ㄦ佺殑绋嫔簭銆备妇涓渚嫔瓙𨱒ヨ达细绐椾綋镄勫ぇ灏忔敼鍙树簨浠朵腑锷犲叆浜嗗彲浠ユ敼鍙樻带鍒堕”浣岖疆镄勪唬镰侊纴鍦ㄨ繍琛屾椂鍊欐疮褰撶敤鎴锋洿鏀圭獥鍙eぇ灏忥纴鎺у埗椤逛篃浼氶殢涔嬫敼鍙树綅缃銆傚湪鏂囨湰妗嗕腑镄勬枃瀛楁敼鍙树簨浠朵腑锷犲叆鐩稿簲镄勪唬镰侊纴绋嫔簭灏辫兘澶熷湪鏂囧瓧杈揿叆镄勬椂鍊栾嚜锷ㄧ炕璇戞垨钥呴樆姝㈡煇浜涘瓧鍏幂殑杈揿叆銆 VB镄勭▼搴忓彲浠ュ寘钖涓涓鎴栧氢釜绐椾綋锛屾垨钥呮槸涓涓涓荤獥浣揿拰澶氢釜瀛愮獥浣掳纴绫讳技浜庝綔涓氱郴缁熺殑镙峰瓙銆傛湁寰埚皯锷熻兘镄勫硅瘽妗嗙獥鍙o纸姣斿傛病链夋渶澶у寲鍜屾渶灏忓寲鎸夐挳镄勭獥浣掳级鍙浠ョ敤𨱒ユ彁渚涘脊鍑哄姛鑳姐 VB镄勭粍浠舵棦鍙浠ユ嫢链夌敤鎴风晫闱锛屼篃鍙浠ユ病链夈傝繖镙蜂竴𨱒ヤ己链嶅櫒绔绋嫔簭灏卞彲浠ュ勭悊澧炲姞镄勬ā鍧椼 VB浣跨敤鍙傛暟璁$畻镄勬柟娉曟潵杩涜屽瀮鍦炬敹闆嗭纴杩欎釜鏂规硶涓鍖呭惈链夊ぇ閲忕殑瀵硅薄锛屾彁渚涘熀链镄勭墿浠跺煎悜鏀鎸併傚洜涓鸿秺𨱒ヨ秺澶氱粍寤虹殑鍑虹幇锛岀▼寮忚捐″笀鍙浠ラ夌敤镊宸遍渶瑕佺殑镓╁𪾢搴撱傚拰链変簺璇瑷涓崭竴镙凤纴VB瀵瑰ぇ灏忓啓涓嶆晱镒燂纴浣嗘槸鑳借嚜锷ㄨ浆鎹㈠叧阌璇嶅埌镙囧嗳镄勫ぇ灏忓啓鐘舵侊纴浠ュ强寮哄埗浣垮缑绗﹀彿琛ㄥ叆鍙g殑瀹炰綋镄勫彉鏁板悕绉伴伒寰涔﹀啓瑙勫垯銆傞勮炬儏鍐典笅瀛楀厓涓茬殑姣旇缉鏄瀵瑰ぇ灏忓啓鏁忔劅镄勶纴浣嗘槸鍙浠ュ叧闂杩欎釜锷熻兘銆 VB浣垮缑澶ч噺镄勫栫晫鎺у埗椤规湁浜呜嚜宸辩殑鐢熷瓨绌洪棿銆傚ぇ閲忕殑绗涓夋柟鎺у埗椤归拡瀵筕B鎻愪緵銆俈B涔熸彁渚涗简寤虹珛銆佷娇鐢ㄥ拰閲岖敤杩欎簺鎺у埗椤圭殑鏂规硶锛屼絾鏄鐢变簬璇瑷闂棰桡纴浠庝竴涓搴旂敤绋嫔簭鍒涘缓鍙﹀栦竴涓骞朵笉绠鍗曘 镐荤粨 VB浼氩惛寮曟洿澶氱殑璧炶獕鍜屾壒璇勶纴涔熶细缁х画涓哄箍澶х殑鐢ㄦ埛鍜岀▼寮忚捐″笀浣跨敤銆傚畠闱炲父阃傚悎鐢ㄦ潵寮鍙戞嫢链夊弸濂界晫闱㈢殑绋嫔簭锛堟瘆濡傞拡瀵圭粓绔镄勬暟鎹锛夛纴浣嗘槸涓嶉傚悎寮鍙戝叾瀹幂▼搴忥纸姣斿傝仈钖堣$畻绋嫔簭锛夈 VB瀵瑰埯瀛︾紪绋嬭呮槸涓涓寰埚ソ镄勫叆闂ㄨ蒋浣掳纴灏ゅ叾瀵逛竴浜涘ぉ璧嬬紪绋嬫墠鑳借岃嚜宸变篃涓岖煡阆撶殑浜猴纴鐢盫B镌镓嫔彲杞绘槗寮曞彂浠栦滑镄勬綔鑳斤纴鍙戞尌浠栦滑鍦ㄨ繖鏂归溃镄勬墠鍗庛 VB涓嶆嫢链夌殑鐗规 缁ф圹銆俈B5鍜孷B6閮芥槸鐗╀欢瀵煎悜镄勭▼寮忚瑷锛屼絾鏄涓嶅寘钖缁ф圹鐗规с俈B涓鎻愪緵浜嗙壒娈婄殑绫荤殑锷熻兘锛屼絾鏄杩樻槸涓嶈兘婊¤冻绋嫔纺璁捐″笀镄勯渶姹伞俈B 鍖呭惈浜嗘墍链夌墿浠跺煎悜镄勭壒镐с 澶氭墽琛岀华鏀鎸 寮傚父澶勭悊銆俈B涓浣跨敤浜员ry-Catch-Finally𨱒ュ勭悊寮傚父銆傝孷B涓鍙链"On Error Goto line"璇鍙ャ 瀵规寚阍堢殑鏀鎸侀潪甯告湁闄愩 VB鍙鑳芥敮鎸8鍒32浣岖殑鏁村舰锛屽緢澶氲瑷閮芥湁镞犻檺鍒剁殑鏀鎸併 VB涓嶅厑璁稿湪浠讳綍鏁扮粍璁板繂浣揿湪涓嶅彉镄勫彉鏁般 VB涓嶆敮鎸佷互涓婄壒镐э纴绋嫔纺璁捐″笀闇瑕佽嚜宸卞缓鏋勬柟娉曟潵瀹炵幇鐩镐技镄勫姛鑳姐 VB闱╁懡 锲剧墖鍙傝冿细upload.wikimedia/ *** /zh/e/e6/Microsoft_Visual_Basic_for_MS-DOS VB1.0镄凞OS鐗堟湰 VB1.0浜1991骞村彂甯冦傝繖涓杩炴帴绋嫔纺璇瑷鍜岀敤鎴风晫闱㈢殑杩涙ヨ绉颁负Tripod锛堟湁浜涙椂鍊椤彨锅歊uby锛夛纴链鍒濈殑璁捐℃槸鐢遍樋鍏奥峰簱鐝锛圆lan Cooper锛夊畬鎴愮殑 镞堕棿杞 1991骞4链堬纴Visual Basic 1.0 Windows鐗堟湰鍙戝竷 1992骞9链堬纴Visual Basic 1.0 DOS鐗堟湰鍙戝竷銆 1992骞11链堬纴VB2.0鍙戝竷銆傚畠瀵逛簬涓娄竴涓鐗堟湰镄勭晫闱㈠拰阃熷害閮芥湁镓鏀瑰杽銆 1993骞村忓ぉ锛孷B3.0鍙戝竷锛屽垎涓烘爣鍑嗙増鍜屼笓涓氱増銆傚叾涓鍖呭惈涓涓鏁版嵁寮曟搸锛屽彲浠ョ洿鎺ヨ诲彇Access璧勬枡搴撱 1995骞8链堬纴VB4.0鍙戝竷浜32浣岖増链鍜16浣岖殑鐗堟湰銆傚叾涓鍖呭惈浜嗗圭被镄勬敮鎸併 1997骞2链堬纴VB5.0鍙戝竷銆傜▼寮忚捐″笀鍙浠ョ敤32浣岖殑鐗堟湰瀵煎叆鐢4.0鐗堟湰鍒涘缓镄16浣岖▼搴忥纴骞朵笖鑳介‘鍒╃紪璇戙傚悓镞惰缮鍖呭惈浜嗗圭敤鎴疯嚜寤烘带鍒堕”镄勬敮鎸併 1998骞村忓ぉ锛孷B6.0鍙戝竷銆俈B6鏄疺B镊充粖浠嶆棤娉曞畬鍏ㄥ彇浠g殑鐗堟湰銆 2001骞达纴Visual Basic .NET鍜.NET Framework鍙戝竷銆傜敱浜庡叾浣跨敤浜嗘柊镄勬牳蹇冨拰鐗规э纴镓浠ュ緢澶歏B镄勭▼寮忚捐″笀閮借佹敼鍐欑▼搴忋 2003骞达纴Visual Basic .NET 2003鍜.NET Framework 1.1鍙戝竷銆 2004骞达纴寰杞寮鏀句简Visual Studio.NET 2005镄勬祴璇旷増链锛堜唬鍙稺hidbey锛夈傚寘钖浜.NET Framework2.0镄勬祴璇旷増链銆 2005骞达纴寰杞瀹e竷灏嗕笉浼氩啀瀵归潪.NET鐗堟湰镄刅B杩涜屾敮鎸併俈B绀剧兢绔嫔嵆浣滃嚭鍙嶅簲琛ㄧず鍏冲绩杩欎釜娑堟伅锛屼竴浜涜佺敤鎴疯缮阃掍氦浜嗗笇链涜兘澶熺户缁瀵筕B杩涜屾妧链鏀鎸佺殑 *** 涔︺傚井杞鐩鍓嶈缮涓嶆効镒忔敼鍙树粬浠镄勫喅瀹氥 2005骞11链7镞ワ纴Visual Studio 2005鍙戝竷銆
鍙傝: zh. *** /w/index?title=Visual_Basic&variant=zh-
镊浠庡け鎭嫔悗
鐪嫔埌璺涓婃垚鍙屾垚瀵
灏辨牸澶栨斁闂
鍢村反娼囨磼璇村彧鏄灏戜竴涓浜烘潵鐖
浣嗕笉鍙钖﹁よ缮鏄甯屾湜鍙浠ュ氩氲よ瘑鏂扮殑链嫔弸
寰璁ょ湡鐖鏂3涓链堜互涓
缁堜簬镓惧埌闅愯棌鍦ㄧ绣璺涓
浼犺翠腑镄勬潕濮
鍦ㄤ粖骞3链埚埯灏遍勭害𨱒ユ垒
鏋灭劧鏄鍙g戠浉浼
涓嶅仛骞垮憡镄
鎴戞帓绗3娆″氨阆囧埌鍙屾柟闱炲父链夋劅瑙夌殑
鐩鍓嶆槸𨱌傚仠鎺掔害
𨱒庡愰偅杈瑰彲浠ユ殏锅沧帓绾1娆
浼氩憳镞堕棿鍙浠ュ𪾢寤舵媺闀挎椂闂
涔熷湪杩欐垫椂闂村彲浠ヨ傚疗瀵规柟. 鎺ㄨ崘缁欐湁闇瑕佺殑链嫔弸鍙傝
㈡ 嵌入式实时操作系统调度算法的发展现状
肖文鹏
硕士研究生, 北京理工大学计算机系
2003 年 9 月
随着信息化技术的发展和数字化产品的普及,以计算机技术、芯片技术和软件技术为核心的嵌入式系统再度成为当前研究和应用的热点,通信、计算机、消费电子技术(3C)合一的趋势正在逐步形成,无所不在的网络和无所不在的计算(everything connecting, everywhere computing)正在将人类带入一个崭新的信息社会。
一、嵌入式系统
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件是可裁剪的,适用于对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。嵌入式系统最典型的特点是与人们的日常生活紧密相关,任何一个普通人都可能拥有各类形形色色运用了嵌入式技术的电子产品,小到MP3、PDA等微型数字化设备,大到信息家电、智能电器、车载GIS,各种新型嵌入式设备在数量上已经远远超过了通用计算机。这也难怪美国着名未来学家尼葛洛庞帝在1999年1月访华时就预言,4~5年后嵌入式智能工具将成为继PC机和Internet之后计算机工业最伟大的发明。
1.1 历史与现状
虽然嵌入式系统是近几年才开始真正风靡起来的,但事实上嵌入式这个概念却很早就已经存在了,从上个世纪70年代单片机的出现到今天各种嵌入式微处理器、微控制器的广泛应用,嵌入式系统少说也有了近30年的历史。纵观嵌入式系统的发展历程,大致经历了以下四个阶段:
*
无操作系统阶段
嵌入式系统最初的应用是基于单片机的,大多以可编程控制器的形式出现,具有监测、伺服、设备指示等功能,通常应用于各类工业控制和飞机、导弹等武器装备中,一般没有操作系统的支持,只能通过汇编语言对系统进行直接控制,运行结束后再清除内存。这些装置虽然已经初步具备了嵌入式的应用特点,但仅仅只是使用8位的CPU芯片来执行一些单线程的程序,因此严格地说还谈不上"系统"的概念。
这一阶段嵌入式系统的主要特点是:系统结构和功能相对单一,处理效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式系统使用简便、价格低廉,因而曾经在工业控制领域中得到了非常广泛的应用,但却无法满足现今对执行效率、存储容量都有较高要求的信息家电等场合的需要。
*
简单操作系统阶段
20世纪80年代,随着微电子工艺水平的提高,IC制造商开始把嵌入式应用中所需要的微处理器、I/O接口、串行接口以及RAM、ROM等部件统统集成到一片VLSI中,制造出面向I/O设计的微控制器,并一举成为嵌入式系统领域中异军突起的新秀。与此同时,嵌入式系统的程序员也开始基于一些简单的"操作系统"开发嵌入式应用软件,大大缩短了开发周期、提高了开发效率。
这一阶段嵌入式系统的主要特点是:出现了大量高可靠、低功耗的嵌入式CPU(如Power PC等),各种简单的嵌入式操作系统开始出现并得到迅速发展。此时的嵌入式操作系统虽然还比较简单,但已经初步具有了一定的兼容性和扩展性,内核精巧且效率高,主要用来控制系统负载以及监控应用程序的运行。
*
实时操作系统阶段
20世纪90年代,在分布控制、柔性制造、数字化通信和信息家电等巨大需求的牵引下,嵌入式系统进一步飞速发展,而面向实时信号处理算法的DSP产品则向着高速度、高精度、低功耗的方向发展。随着硬件实时性要求的提高,嵌入式系统的软件规模也不断扩大,逐渐形成了实时多任务操作系统(RTOS),并开始成为嵌入式系统的主流。
这一阶段嵌入式系统的主要特点是:操作系统的实时性得到了很大改善,已经能够运行在各种不同类型的微处理器上,具有高度的模块化和扩展性。此时的嵌入式操作系统已经具备了文件和目录管理、设备管理、多任务、网络、图形用户界面(GUI)等功能,并提供了大量的应用程序接口(API),从而使得应用软件的开发变得更加简单。
*
面向Internet阶段
21世纪无疑将是一个网络的时代,将嵌入式系统应用到各种网络环境中去的呼声自然也越来越高。目前大多数嵌入式系统还孤立于Internet之外,随着Internet的进一步发展,以及Internet技术与信息家电、工业控制技术等的结合日益紧密,嵌入式设备与Internet的结合才是嵌入式技术的真正未来。
信息时代和数字时代的到来,为嵌入式系统的发展带来了巨大的机遇,同时也对嵌入式系统厂商提出了新的挑战。目前,嵌入式技术与Internet技术的结合正在推动着嵌入式技术的飞速发展,嵌入式系统的研究和应用产生了如下新的显着变化:
1. 新的微处理器层出不穷,嵌入式操作系统自身结构的设计更加便于移植,能够在短时间内支持更多的微处理器。
2. 嵌入式系统的开发成了一项系统工程,开发厂商不仅要提供嵌入式软硬件系统本身,同时还要提供强大的硬件开发工具和软件支持包。
3. 通用计算机上使用的新技术、新观念开始逐步移植到嵌入式系统中,如嵌入式数据库、移动代理、实时CORBA等,嵌入式软件平台得到进一步完善。
4. 各类嵌入式linux操作系统迅速发展,由于具有源代码开放、系统内核小、执行效率高、网络结构完整等特点,很适合信息家电等嵌入式系统的需要,目前已经形成了能与Windows CE、Palm OS等嵌入式操作系统进行有力竞争的局面。
5. 网络化、信息化的要求随着Internet技术的成熟和带宽的提高而日益突出,以往功能单一的设备如电话、手机、冰箱、微波炉等功能不再单一,结构变得更加复杂,网络互联成为必然趋势。
6. 精简系统内核,优化关键算法,降低功耗和软硬件成本。
7. 提供更加友好的多媒体人机交互界面。
1.2 体系结构
根据国际电气和电子工程师协会(IEEE)的定义,嵌入式系统是"控制、监视或者辅助设备、机器和车间运行的装置"(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。一般而言,整个嵌入式系统的体系结构可以分成四个部分:嵌入式处理器、嵌入式外围设备、嵌入式操作系统和嵌入式应用软件,如图1所示。
图1 嵌入式系统的组成
*
嵌入式处理器
嵌入式系统的核心是各种类型的嵌入式处理器,嵌入式处理器与通用处理器最大的不同点在于,嵌入式CPU大多工作在为特定用户群所专门设计的系统中,它将通用CPU中许多由板卡完成的任务集成到芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。
嵌入式处理器的体系结构经历了从CISC(复杂指令集)至RISC(精简指令集)和Compact RISC的转变,位数则由4位、8位、16位、32位逐步发展到64位。目前常用的嵌入式处理器可分为低端的嵌入式微控制器(Micro Controller Unit,MCU)、中高端的嵌入式微处理器(Embedded Micro Processor Unit,EMPU)、用于计算机通信领域的嵌入式DSP处理器(Embedded Digital Signal Processor,EDSP)和高度集成的嵌入式片上系统(System On Chip,SOC)。
目前几乎每个半导体制造商都生产嵌入式处理器,并且越来越多的公司开始拥有自主的处理器设计部门,据不完全统计,全世界嵌入式处理器已经超过1000多种,流行的体系结构有30多个系列,其中以ARM、PowerPC、MC 68000、MIPS等使用得最为广泛。
*
嵌入式外围设备
在嵌入系统硬件系统中,除了中心控制部件(MCU、DSP、EMPU、SOC)以外,用于完成存储、通信、调试、显示等辅助功能的其他部件,事实上都可以算作嵌入式外围设备。目前常用的嵌入式外围设备按功能可以分为存储设备、通信设备和显示设备三类。
存储设备主要用于各类数据的存储,常用的有静态易失型存储器(RAM、SRAM)、动态存储器(DRAM)和非易失型存储器(ROM、EPROM、EEPROM、FLASH)三种,其中FLASH凭借其可擦写次数多、存储速度快、存储容量大、价格便宜等优点,在嵌入式领域内得到了广泛应用。
目前存在的绝大多数通信设备都可以直接在嵌入式系统中应用,包括RS-232接口(串行通信接口)、SPI(串行外围设备接口)、IrDA(红外线接口)、I2C(现场总线)、USB(通用串行总线接口)、Ethernet(以太网接口)等。
由于嵌入式应用场合的特殊性,通常使用的是阴极射线管(CRT)、液晶显示器(LCD)和触摸板(Touch Panel)等外围显示设备。
*
嵌入式操作系统
为了使嵌入式系统的开发更加方便和快捷,需要有专门负责管理存储器分配、中断处理、任务调度等功能的软件模块,这就是嵌入式操作系统。嵌入式操作系统是用来支持嵌入式应用的系统软件,是嵌入式系统极为重要的组成部分,通常包括与硬件相关的底层驱动程序、系统内核、设备驱动接口、通信协议、图形用户界面(GUI)等。嵌入式操作系统具有通用操作系统的基本特点,如能够有效管理复杂的系统资源,能够对硬件进行抽象,能够提供库函数、驱动程序、开发工具集等。但与通用操作系统相比较,嵌入式操作系统在系统实时性、硬件依赖性、软件固化性以及应用专用性等方面,具有更加鲜明的特点。
嵌入式操作系统根据应用场合可以分为两大类:一类是面向消费电子产品的非实时系统,这类设备包括个人数字助理(PDA)、移动电话、机顶盒(STB)等;另一类则是面向控制、通信、医疗等领域的实时操作系统,如WindRiver公司的VxWorks、QNX系统软件公司的QNX等。实时系统(Real Time System)是一种能够在指定或者确定时间内完成系统功能,并且对外部和内部事件在同步或者异步时间内能做出及时响应的系统。在实时系统中,操作的正确性不仅依赖于逻辑设计的正确程度,而且与这些操作进行的时间有关,也就是说,实时系统对逻辑和时序的要求非常严格,如果逻辑和时序控制出现偏差将会产生严重后果。
实时系统主要通过三个性能指标来衡量系统的实时性,即响应时间(Response Time)、生存时间(Survival Time)和吞吐量(Throughput):
o 响应时间 是实时系统从识别出一个外部事件到做出响应的时间;
o 生存时间 是数据的有效等待时间,数据只有在这段时间内才是有效的;
o 吞吐量 是在给定的时间内系统能够处理的事件总数,吞吐量通常比平均响应时间的倒数要小一点。
实时系统根据响应时间可以分为弱实时系统、一般实时系统和强实时系统三种。弱实时系统在设计时的宗旨是使各个任务运行得越快越好,但没有严格限定某一任务必须在多长时间内完成,弱实时系统更多关注的是程序运行结果的正确与否,以及系统安全性能等其他方面,对任务执行时间的要求相对来讲较为宽松,一般响应时间可以是数十秒或者更长。一般实时系统是弱实时系统和强实时系统的一种折衷,它的响应时间可以在秒的数量级上,广泛应用于消费电子设备中。强实时系统则要求各个任务不仅要保证执行过程和结果的正确性,同时还要保证在限定的时间内完成任务,响应时间通常要求在毫秒甚至微秒的数量级上,这对涉及到医疗、安全、军事的软硬件系统来说是至关重要的。
时限(deadline)是实时系统中的一个重要概念,指的是对任务截止时间的要求,根据时限对系统性能的影响程度,实时系统又可以分为软实时系统(soft real-time-system)和硬实时系统(hard real-time-system)。软实时指的是虽然对系统响应时间有所限定,但如果系统响应时间不能满足要求,并不会导致系统产生致命的错误或者崩溃;硬实时则指的是对系统响应时间有严格的限定,如果系统响应时间不能满足要求,就会引起系统产生致命的错误或者崩溃。如果一个任务在时限到达之时尚未完成,对软实时系统来说还是可以容忍的,最多只会降低系统性能,但对硬实时系统来说则是无法接受的,因为这样带来的后果根本无法预测,甚至可能是灾难性的。在目前实际运用的实时系统中,通常允许软硬两种实时性同时存在,其中一些事件没有时限要求,另外一些事件的时限要求是软实时的,而对系统产生关键影响的那些事件的时限要求则是硬实时的。
*
嵌入式应用软件
嵌入式应用软件是针对特定应用领域,基于某一固定的硬件平台,用来达到用户预期目标的计算机软件,由于用户任务可能有时间和精度上的要求,因此有些嵌入式应用软件需要特定嵌入式操作系统的支持。嵌入式应用软件和普通应用软件有一定的区别,它不仅要求其准确性、安全性和稳定性等方面能够满足实际应用的需要,而且还要尽可能地进行优化,以减少对系统资源的消耗,降低硬件成本。
1.3 关键问题
嵌入式系统是将先进的计算机技术、半导体技术以及电子技术与特定行业的具体应用相结合的产物,因此必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统,嵌入式系统的开发充满了竞争、机遇与创新,需要解决好如下一些关键问题:
1. 内核精巧 嵌入式系统的应用领域一般都是小型电子装置,系统资源相对有限,因此对内核的要求相当高,较之传统的操作系统来讲要小得多,例如ENEA公司推出的OSE分布式嵌入式系统,整个内核只有5KB。
2. 面向应用 嵌入式系统通常是面向用户、面向产品、面向特定应用的。嵌入式系统中的CPU大多工作在为特定用户群定制的环境中,具有低耗、体积小、集成度高等特点,在进行软硬件设计时必须突出效率、去除冗余,针对用户的具体需求对系统进行合理的配置,方能达到理想的性能。
3. 系统精简 嵌入式系统中的系统软件和应用软件通常没有明显的区别,不要求其功能及实现上过于复杂,这样一方面有利于控制系统成本,另一方面也有利于保证系统安全。
4. 性能优化 嵌入式系统通常都要求有一定的实时性保障,为了提高执行速度和系统性能,嵌入式系统中的软件一般都固化在存储芯片或者处理器的内部存储器件当中,而不是存贮在磁盘等外部载体中。由于嵌入式系统的运算速度和存储容量存在一定程度上的限制,而且大部分系统都必须有较高的实时性保证,因此对软件质量(特别是可靠性方面)有着较高的要求。
5. 专业开发 嵌入式系统本身并不具备自主开发能力,用户不能直接在其上进行二次开发。当系统完成之后,用户如果需要修改其中某个程序的功能,必须借助一套完整的开发工具和环境。嵌入式系统中专用的开发工具和环境通常是基于通用计算机上的软硬件设备,以及各种逻辑分析仪、混合信号示波器等。
二、嵌入式Linux
Linux从1991年问世到现在,短短的十几年时间已经发展成为功能强大、设计完善的操作系统之一,不仅可以与各种传统的商业操作系统分庭抗争,在新兴的嵌入式操作系统领域内也获得了飞速发展。嵌入式Linux(Embedded Linux)是指对标准Linux经过小型化裁剪处理之后,能够固化在容量只有几K或者几M字节的存储器芯片或者单片机中,适合于特定嵌入式应用场合的专用Linux操作系统。
2.1 优势
嵌入式Linux的开发和研究是操作系统领域中的一个热点,目前已经开发成功的嵌入式系统中,大约有一半使用的是Linux。Linux之所以能在嵌入式系统市场上取得如此辉煌的成果,与其自身的优良特性是分不开的。
*
广泛的硬件支持
Linux能够支持x86、ARM、MIPS、ALPHA、PowerPC等多种体系结构,目前已经成功移植到数十种硬件平台,几乎能够运行在所有流行的CPU上。Linux有着异常丰富的驱动程序资源,支持各种主流硬件设备和最新硬件技术,甚至可以在没有存储管理单元(MMU)的处理器上运行,这些都进一步促进了Linux在嵌入式系统中的应用。
*
内核高效稳定
Linux内核的高效和稳定已经在各个领域内得到了大量事实的验证,Linux的内核设计非常精巧,分成进程调度、内存管理、进程间通信、虚拟文件系统和网络接口五大部分,其独特的模块机制可以根据用户的需要,实时地将某些模块插入到内核或从内核中移走。这些特性使得Linux系统内核可以裁剪得非常小巧,很适合于嵌入式系统的需要。
*
开放源码,软件丰富
Linux是开放源代码的自由操作系统,它为用户提供了最大限度的自由度,由于嵌入式系统千差万别,往往需要针对具体的应用进行修改和优化,因而获得源代码就变得至关重要了。Linux的软件资源十分丰富,每一种通用程序在Linux上几乎都可以找到,并且数量还在不断增加。在Linux上开发嵌入式应用软件一般不用从头做起,而是可以选择一个类似的自由软件做为原型,在其上进行二次开发。
*
优秀的开发工具
开发嵌入式系统的关键是需要有一套完善的开发和调试工具。传统的嵌入式开发调试工具是在线仿真器(In-Circuit Emulator,ICE),它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,从而使开发者能够非常清楚地了解到程序在目标板上的工作状态,便于监视和调试程序。在线仿真器的价格非常昂贵,而且只适合做非常底层的调试,如果使用的是嵌入式Linux,一旦软硬件能够支持正常的串口功能时,即使不用在线仿真器也可以很好地进行开发和调试工作,从而节省了一笔不小的开发费用。嵌入式Linux为开发者提供了一套完整的工具链(Tool Chain),它利用GNU的gcc做编译器,用gdb、kgdb、xgdb做调试工具,能够很方便地实现从操作系统到应用软件各个级别的调试。
*
完善的网络通信和文件管理机制
Linux至诞生之日起就与Internet密不可分,支持所有标准的Internet网络协议,并且很容易移植到嵌入式系统当中。此外,Linux还支持ext2、fat16、fat32、romfs等文件系统,这些都为开发嵌入式系统应用打下了很好的基础。
2.2 挑战
目前,嵌入式Linux系统的研发热潮正在蓬勃兴起,并且占据了很大的市场份额,除了一些传统的Linux公司(如RedHat、MontaVista等)正在从事嵌入式Linux的开发和应用之外,IBM、Intel、Motorola等着名企业也开始进行嵌入式Linux的研究。虽然前景一片灿烂,但就目前而言,嵌入式Linux的研究成果与市场的真正要求仍有一段差距,要开发出真正成熟的嵌入式Linux系统,还需要从以下几个方面做出努力。
*
提高系统实时性
Linux虽然已经被成功地应用到了PDA、移动电话、车载电视、机顶盒、网络微波炉等各种嵌入式设备上,但在医疗、航空、交通、工业控制等对实时性要求非常严格的场合中还无法直接应用,原因在于现有的Linux是一个通用的操作系统,虽然它也采用了许多技术来加快系统的运行和响应速度,并且符合POSIX 1003.1b标准,但从本质上来说并不是一个嵌入式实时操作系统。Linux的内核调度策略基本上是沿用UNIX系统的,将它直接应用于嵌入式实时环境会有许多缺陷,如在运行内核线程时中断被关闭,分时调度策略存在时间上的不确定性,以及缺乏高精度的计时器等等。正因如此,利用Linux作为底层操作系统,在其上进行实时化改造,从而构建出一个具有实时处理能力的嵌入式系统,是现在日益流行的解决方案。
*
改善内核结构
Linux内核采用的是整体式结构(Monolithic),整个内核是一个单独的、非常大的程序,这样虽然能够使系统的各个部分直接沟通,有效地缩短任务之间的切换时间,提高系统响应速度,但与嵌入式系统存储容量小、资源有限的特点不相符合。嵌入式系统经常采用的是另一种称为微内核(Microkernel)的体系结构,即内核本身只提供一些最基本的操作系统功能,如任务调度、内存管理、中断处理等,而类似于文件系统和网络协议等附加功能则运行在用户空间中,并且可以根据实际需要进行取舍。Microkernel的执行效率虽然比不上Monolithic,但却大大减小了内核的体积,便于维护和移植,更能满足嵌入式系统的要求。可以考虑将Linux内核部分改造成Microkernel,使Linux在具有很高性能的同时,又能满足嵌入式系统体积小的要求。
*
完善集成开发平台
引入嵌入式Linux系统集成开发平台,是嵌入式Linux进一步发展和应用的内在要求。传统上的嵌入式系统都是面向具体应用场合的,软件和硬件之间必须紧密配合,但随着嵌入式系统规模的不断扩大和应用领域的不断扩展,嵌入式操作系统的出现就成了一种必然,因为只有这样才能促成嵌入式系统朝层次化和模块化的方向发展。很显然,嵌入式集成开发平台也是符合上述发展趋势的,一个优秀的嵌入式集成开发环境能够提供比较完备的仿真功能,可以实现嵌入式应用软件和嵌入式硬件的同步开发,从而摆脱了"嵌入式应用软件的开发依赖于嵌入式硬件的开发,并且以嵌入式硬件的开发为前提"的不利局面。一个完整的嵌入式集成开发平台通常包括编译器、连接器、调试器、跟踪器、优化器和集成用户界面,目前Linux在基于图形界面的特定系统定制平台的研究上,与Windows CE等商业嵌入式操作系统相比还有很大差距,整体集成开发环境有待提高和完善。
三、关键技术
嵌入式系统是一种根据特定用途所专门开发的系统,它只完成预期要完成的功能,因此其开发过程和开发环境同传统的软件开发相比有着显着的不同。
3.1 开发流程
在嵌入式系统的应用开发中,整个系统的开发过程如图2所示:
图2 嵌入式系统的开发流程
嵌入式系统发展到今天,对应于各种微处理器的硬件平台一般都是通用的、固定的、成熟的,这就大大减少了由硬件系统引入错误的机会。此外,由于嵌入式操作系统屏蔽了底层硬件的复杂性,使得开发者通过操作系统提供的API函数就可以完成大部分工作,因此大大简化了开发过程,提高了系统的稳定性。嵌入式系统的开发者现在已经从反复进行硬件平台设计的过程中解脱出来,从而可以将主要精力放在满足特定的需求上。
嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不可能的。目前一般采用的解决办法是首先在通用计算机上编写程序,然后通过交叉编译生成目标平台上可以运行的二进制代码格式,最后再下载到目标平台上的特定位置上运行。
需要交叉开发环境(Cross Development Environment)的支持是嵌入式应用软件开发时的一个显着特点,交叉开发环境是指编译、链接和调试嵌入式应用软件的环境,它与运行嵌入式应用软件的环境有所不同,通常采用宿主机/目标机模式,如图3所示。
图3 交叉开发环境
宿主机(Host)是一台通用计算机(如PC机或者工作站),它通过串口或者以太网接口与目标机通信。宿主机的软硬件资源比较丰富,不但包括功能强大的操作系统(如Windows和Linux),而且还有各种各样优秀的开发工具(如WindRiver的Tornado、Microsoft的Embedded Visual C++等),能够大大提高嵌入式应用软件的开发速度和效率。
目标机(Target)一般在嵌入式应用软件开发期间使用,用来区别与嵌入式系统通信的宿主机,它可以是嵌入式应用软件的实际运行环境,也可以是能够替代实际运行环境的仿真系统,但软硬件资源通常都比较有限。嵌入式系统的交叉开发环境一般包括交叉编译器、交叉调试器和系统仿真器,其中交叉编译器用于在宿主机上生成能在目标机上运行的代码,而交叉调试器和系统仿真器则用于在宿主机与目标机间完成嵌入式软件的调试。在采用宿主机/目标机模式开发嵌入式应用软件时,首先利用宿主机上丰富的资源和良好的开发环境开发和仿真调试目标机上的软件,然后通过串口或者以网络将交叉编译生成的目标代码传输并装载到目标机上,并在监控程序或者操作系统的支持下利用交叉调试器进行分析和调试,最后目标机在特定环境下脱离宿主机单独运行。
建立交叉开发环境是进行嵌入式软件开发的第一步,目前常用的交叉开发环境主要有开放和商业两种类型。开放的交叉开发环境的典型代表是GNU工具链、目前已经能够支持x86、ARM、MIPS、PowerPC等多种处理器。商业的交叉开发环境则主要有Metrowerks CodeWarrior、ARM Software Development Toolkit、SDS Cross compiler、WindRiver Tornado、Microsoft Embedded Visual C++等。
3.2 交叉编译和链接
在完成嵌入式软件的编码之后,需要进行编译和链接以生成可执行代码,由于开发过程大多是在使用Intel公司x86系列CPU的通用计算机上进行的,而目标环境的处理器芯片却大多为ARM、MIPS、PowerPC、DragonBall等系列的微处理器,这就要求在建立好的交叉开发环境中进行交叉编译和链接。
交叉编译器和交叉链接器是能够在宿主机上运行,并且能够生成在目标机上直接运行的二进制代码的编译器和链接器。例如在基于ARM体系结构的gcc交叉开发环境中,arm-linux-gcc是交叉编译器,arm-linux-ld是交叉链接器。通常情况下,并不是每一种体系结构的嵌入式微处理器都只对应于一种交叉编译器和交叉链接器,比如对于M68K体系结构的gcc交叉开发环境而言,就对应于多种不同的编译器和链接器。如果使用的是COFF格式的可执行文件,那么在编译Linux内核时需要使用m68k-coff-gcc和m68k-coff-ld,而在编译应用程序时则需要使用m68k-coff-pic-gcc和m68k-coff-pic-ld。
嵌入式系统在链接过程中通常都要求使用较小的函数库,以便最后产生的可执行代码能够尽可能地小,因此实际运用时一般使用经过特殊处理的函数库。对于嵌入式L
㈢ 简述计算机程序设计语言的发展历程。
一、前期
二十世纪四十年代当计算机刚诞生时,计算机需要程序员手动控制。,德国工程师楚泽提出要用一种程序语言控制计算机。
60年代末期为了应对软件危机,克服程序设计模型中都无法克服错误随着代码的扩大而扩大,这新的思考程序设计方式和程序设计模型——面向对象程序设计出现了。
也就诞生了一批支持此技术的程序设计语言,比如eiffel,c++,java,这些语言都以新的观点去看待问题,即问题就是由各种不同属性的对象以及对象之间的消息传递构成。
面向对象语言由此必须支持新的程序设计技术,例如:数据隐藏,数据抽象,用户定义类型,继承,多态等等。
二、现状
如今通用的编程语言有两种形式:汇编语言和高级语言。
汇编语言和机器语言实质是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,容易识别和记忆。源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
高级语言是绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节。
三、趋势
面向对象程序设计以及数据抽象在现代程序设计思想中占有很重要的地位,未来语言的发展将不在是一种单纯的语言标准,将会以一种完全面向对象,更易表达现实世界,更易为人编写。
简单性:提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。
面向对象:提供简单的类机制以及动态的接口模型。对象中封装状态变量以及相应的方法,实现了模块化和信息隐藏;提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。
安全性:用于网络、分布环境下有安全机制保证。
平台无关性:与平台无关的特性使程序可以方便地被移植到网络上的不同机器、不同平台。
(3)编译系统的近几年的发展事件扩展阅读:
计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。
1、解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。
2、编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。
3、低级类:机器语言、汇编语言和符号语言。
汇编语言:源程序必须经过汇编,生成目标文件,然后执行。
机器语言:机器语言是指一台计算机全部的指令集合
参考资料:网络-计算机语言
㈣ 现在学计算机编程还有前景吗
如今互联网行业飞跃发展,互联网技术百日新月异,就当前就业形势来说 IT行业是适合目前社会趋势的,社会也需要大量的 IT技术型人才,各行各业也需要,所以就业广泛。学互联度网的优势有:
1、电脑行业需求量大,工作很好找,而且工作环境也不错。
2、电脑行业的工作与社会接触都比较紧密,紧跟潮流,所以见识和思知想都会比较开放,也有利于以后自己发展。
3、学习电脑入手道比较快,学习难度不是很版大。
4、现在有些学校有一些技能加学历的政策 ,不过主要看你自己的选择,上大学虽说听起来好,但是很多大学生都是毕业即失业的,还不如趁早学习门技术,毕业就可以工作,选对了好的行业,以后的发展空也会很大的。可以去学习计算机网络,现在学网络就是不错的选择
㈤ 简述c语言的发展
C语言是国际上广泛流行的、很有发展前途的计算机高级语言。它适合作为系统描述语言,即可用来编写系统软件,也可用来编写应用软件。
早期的操作系统等系统软件主要是用汇编语言编写的(包括 UNIX操作系统在内)。由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较差。为了提高可读性和可移植性,最好改用高级语言,但一般的高级语言难以实现汇编语言的某些功能(汇编语言可以直接对硬件进行操作),例如:对内存地址的操作、位操作等)。人们设想能否找到一种既具有一般高级语言特性,又具有低级语言特性的语言,集它们的优点于一身。于是,C语言就在这种情况下应运而生了。
C语言是在B语言的基础上发展起来的,它的根源可以追溯到ALGOL 60。 1960年出现的ALGOL 60是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序。1963年英国的剑桥大学推出了CPL(CombinedProgram- ming Language)语言。CPL语言在ALGOL 60的基础上接近了硬件一些,但规模比较大,难以实现。1967年英国剑桥大学的Matin Richards对 CPL语言作了简化,推出了BCPL(Basic Combined Programming Language)语言。1970年美国贝尔实验室的 Ken Thompson以 BCPL语言为基础,又作了进一步简化,设计出了很简单的而且很接近硬件的 B语言( 取 BCPL的第一个字母),并用 B语言写第一个UNIX操作系统,在PDP-7上实现。 1971年在PDP-11/20上实现了B语言,并写了UNIX操作系统。但B语言过于简单,功能有限。1972年至 1973年间,贝尔实验室的 D.M.Ritchie在B语言的基础上设计出了C语言(取 BCPL的第二个字母)。C语言既保持了BCPL和B语言的优点(精练、接近硬件),又克服了它们的缺点(过于简单、数据无类型等)。 最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。1973年,K.Thom- pson和D.M.ritchie两人合作把UNIX的90%以上用 C改写(UNIX第5版。原来的 UNIX操作系统是1969年由美国的贝尔实验室的 K.Thompson和D.M.Ritchie开发成功的,是用汇编语言写的)。
后来,C语言多次作了改进,但主要还是在贝尔实验室内部使用。直到1- 975年UNIX第6版公布后 ,C语言的突出优点才引起人们普遍注意。1977年出现了不依赖于具体机器的C语言编译文本《可移植C语言编译程序》,使C移植到其它机器时所做的工作大大简化了,这也推动了UNIX操作系统迅速地在各种机器上实现。例如,VAX,AT&T等计算机系统都相继开发了UNIX。随着 UNIX的日益广泛使用,C语言也迅速得到推广。C语言和UNIX可以说是一对孪生兄弟,在发展过程中相辅相成。1978年以后,C语言已先后移植到大、中、小、微型机上,已独立于UNIX和PDP了。现在C语言已风靡全世界,成为世界上应用最广泛的几种计算机语言之一。
以1978年发表的UNIX第7版中的C编译程序为基础,Brian W.Kernighan和 Dennis M.Ritchie(合称K&R)合着了影响深远了名着《The C Programming Lan- guage》,这本书中介绍的C语言成为后来广泛使用的C语言版本的基础,它被称为标准C。1983年,美国国家标准化协会(ANSI)根据C语言问世以来各种版本对C的发展和扩充 ,制定了新的标准,称为ANSI C。ANSI C比原来的标准C有了很大的发展。K&R在1988年修改了他们的经典着作《The C Progra- mming Language》 ,按照ANSI C的标准重新写了该书。1987年,ANSI C又公布了新标准--87 ANSI C 。目前流行的C编译系统都是以它为基础的
㈥ 编程语言发展史
VB编程语言历史=========
Visual Basic从1991年诞生以来,现在已经13年了。BASIC是微软的起家产品,微软当然不忘了这位功臣。随着每一次微软技术的浪潮,Visual Basic都会随之获得新生。可以预见,将来无论微软又发明了什么技术或平台,Visual Basic一定会首先以新的姿态登上去的。如果你想紧跟微软,永远在最新的技术上最快速地开发,你就应该选择Visual Basic。
1991-西雅图夜空的雷电
随着Windows 3.0的推出,越来越多的开发商对这个图形界面的操作系统产生了兴趣,大量的Windows应用程序开始涌现。但是,Windows程序的开发相对于传统的DOS有很大的不同,开发者必须将很多精力放在开发GUI上,这让很多希望学习Windows开发的人员却步。1991年,微软公司展示了一个叫 Thunder的产品,所有的开发者都惊呆了,它竟然可以用鼠标“画”出所需的用户界面,然后用简单的BASIC语言编写业务逻辑,就生成一个完整的应用程序。这种全新的“Visual”的开发就像雷电(Thunder)一样,给Windows开发人员开辟了新的天地。这个产品最终被定名为Visual Basic,采用事件驱动,Quick BASIC的语法和可视化的IDE。Visual Basic 1.0带来的最新的开发体验就是事件驱动,它不同于传统的过程式开发。同时,VBX控件让可视化组件的概念进入Visual Basic。Visual Basic 1.0是革命性的BASIC,它的诞生也是VB史上的一段佳话。
Visual Basic 1.0
1992-渐入佳境的Visual Basic
由于Windows 3.1的推出,Windows已经充分获得了用户的认可,Windows开发也进入一个新的时代。Visual Basic 1.0的功能过于简单,相对于Windows 3.1的强大功能没有发挥出来。所以,微软在1992年推出了新版本Visual Basic 2.0。这个版本最大的改进就是加入了对象型变量,比如
Dim b As CommandButton
Dim c As Control
而且有了最原始的“继承”概念,对象型变量分为一般类型(Control和Form)和专有类型(CommandButton和Form1等),一般类型的变量可以引用专有类型的实例,甚至通过后期绑定访问专有类型的属性和方法。还可以通过TypeOf…Is运算符获取对象实例的运行时类型信息(这个功能就是当今C#的is运算符或Java的instanceof运算符)。除了对语言的改进和扩充,Visual Basic 2.0对VBX有了很好的支持,许多第三方控件涌现出来,极大地丰富了Visual Basic的功能。微软还为Visual Basic 2.0增加了OLE和简单的数据访问功能。
Visual Basic 2.0标准版
Visual Basic 2.0专业版
1993-数据库组件新添力量
Visual Basic 2.0推出没几个月,微软就发布了新版本的Visual Basic 3.0,可以看出VB这时候旺盛的生命力。乍一看,Visual Basic 3.0的界面没有太大的变化,但其实这个版本是非常及时的。它增加了最新的ODBC2.0的支持,Jet数据引擎的支持和新版本OLE的支持。最吸引人的地方是它对数据库的支持大大增强了,Grid控件和数据控件能够创建出色的数据窗口应用程序,而Jet引擎让Visual Basic能对最新的Access数据库快速地访问。Visual Basic 3.0还增加了许多新的金融函数。此外还增加了相当多的专业级控件,可以开发出相当水平的Windows应用程序。Visual Basic 3.0是98年以前中国最流行的Visual Basic版本,因为它开发出来的可执行文件非常小,通常能用一张软盘装下。不过,Visual Basic采用虚拟机运行P代码的做法也让很多开发者不满,他们认为这样程序运行的效率很低,这时候Visual Basic的竞争者Delphi也诞生了。
Visual Basic 3.0标准版
Visual Basic 3.0特别版
1995-第二次革命性变化,向COM进军。
从1993年到1995年年中,Visual Basic一直没有新的动静,焦急的开发者都想一窥这个神秘的新版本到底发生了什么变化。Visual Basic 4.0的BETA最后终于和大家见面了。这个版本包含了16位和32位两个版本,16位的版本就像是Visual Basic 3.0的升级版,而32位版则是一场新的革命。首先,人们发现VBX控件不见了,全部换成了OCX控件,这个OCX可能是指OLE Custom Controls,这个OLE已经不是传统的OLE了,用现在的话说,它就是COM控件。第二个最大变化是Visual Basic 4.0所用的语言换成了Visual Basic For Application,这就和Office 95所采用的宏语言统一起来,这个新语言有很多亮点:
1、? 加入了“类模块”。这是面向对象最重要的封装性的基础。
2、? 加入了属性过程,加上函数过程,子程序过程,VB已经有组件开发所需的封装性特征。
3、? 加入了Byte类型、Boolean类型和Object类型。这大大完善了VB的类型系统。
4、? For Each语句和Collection对象。For Each语句给遍历集合类型提供了极大的方便,现在可以在动态增长的Collection上使用For Each,而不用担心集合内容的总数或烦人的下标问题。
这个版本的Visual Basic还能够开发DLL工程,其实就是COM的DLL,可以将书写好的类用这种方式和其他语言共享。
总之,这个4.0的版本为Visual Basic成为一种COM语言奠定了基础。用Visual Basic 4.0开发基于COM的DLL比任何一种开发工具都方便。但是,Visual Basic 4.0的性能问题变得更加严重了,P-代码的组件成为Visual Basic 4.0严重的性能瓶颈,而且巨大的运行库也让用户感到不满。Visual Basic 4.0对以前版本的支持也不好,使用了大量VBX的项目很难移植到Visual Basic 4.0中。因此,Visual Basic 4.0在中国的普及程度非常低。
Visual Basic 4.0
1997-Visual Basic的丰收年
1997年,微软推出了Visual Basic 5.0,这个版本的重要性几乎和4.0一样高。COM(这时候叫ActiveX)已经相当成熟,Visual Basic 5.0当然对它提供了最强的支持。不过,国内还没有意识到COM的重要性前主要对这个版本另一个最大的亮点十分关注:本地代码编译器。Visual Basic 5.0终于在用户的呼声中加入了一个本地代码编译器,它可以让应用程序的效率大大提升。除了这个大家都知道的改进以外,Visual Basic 5.0对Visual Basic For Application语言有重大的完善和丰富:
5、? 事件。Visual Basic 5.0终于允许用户自己创建事件,而且这事件的语法相当强健和完善,这在一种不支持函数回调的语言中是很难得的。现在,VB拥有属性、方法和事件的完整封装性。
6、? 接口。这是VB实现多态性的基础。同时为编写COM组件提供了更多方便。
7、? 枚举。在Visual Basic 5.0中枚举作为Long整型的子类型出现,用枚举可以对常量进行完善的封装。
8、? 类模块的改进。通过类模块的属性可以指定类模块具有多种指定的行为,如私有构造函数等,可以通过这个功能创建符合Singleton和Monostate模式的设计。
9、? Debug.Assert。虽然这个断言系统有点鸡肋,但是总算是给调试带来了方便。
10、 Visual Basic 5.0支持创建自己的集合类。可以创建用于For Each语句的集合类型。
11、新的数据类型Decimal,可以精确地处理有效数位较多的计算。
Visual Basic 5.0的IDE支持“智能感知”,这是一项非常方便开发者的功能,可以不必记住很长的成员名称和关键字,只要按“.”,想要的东西统统弹出来。
Visual Basic 5.0还支持开发自己的ActiveX 控件、进程内的COM DLL组件、进程外的COM EXE组件以及在浏览器中运行的ActiveX文档。这极大丰富了Visual Basic的开发能力,在Internet开发上,Visual Basic 5.0也能有所建树。
Visual Basic 5.0学习版——我的第一份正版VB
1998-企业真正高效的源泉
Visual Basic 6.0作为Visual Studio 6.0的一员发布,证明微软正在改变Visual Basic的产品定位,他想让Visual Basic成为企业级快速开发的利器。Visual Basic 6.0在数据访问方面有了很大的改进,新的ADO组件让对大量数据快速访问成为可能。数据环境和新的报表功能也让数据开发有了全新的体验。Visual Basic 借助COM/COM+强大的功能,可以开发具有N层结构的分布式应用程序。同时,Visual Basic还可以在IIS上开发性能超群的Web应用程序。Visual Basic 6.0在语言方面和IDE方面的改进都不大,但是许多新增的组件成为Visual Basic开发人员手中的利器,如File System Object等。新的字符串函数Split和Replace等也给Visual Basic的程序员带来很大方便。
总之Visual Basic 6.0已经是非常成熟稳定的开发系统,能让企业快速建立多层的系统以及Web应用程序,成为当前Windows上最流行的Visual Basic版本。
Visual Basic 6.0
2002-第三次革命性变化,向.NET进军
从1998年发布到2002年正式推出Visual Basic. NET简直吊足了开发者的胃口。从2000年就开始传言的具有继承、Try…Catch语句等新功能的全新VB7.0一直没有露面。直到2001 年,Visual Studio.NET的第一个BETA版问世的时候,所有人都呆了——这是Visual Basic吗?And语句变成了BitAnd,数组只能从0下标开始,而且连Dim语句的意义都变了,几乎所有的窗体控件都变了,Long变成了 Integer而Integer变成了Short,Variant不见了,Static不能用了……简直是翻天覆地,人们已经无暇关注这个版本有什么改进,转而担心我怎么才能接受这个本本了。其实Visual Basic. NET完全是为了.NET Framework这一全新的平台而设计的,Visual Basic. NET的设计者一开始没有掌握好新平台和旧语言的平衡。到了BETA2中,很多东西回归了6.0,如BitAnd又变回了And,数组的定义语句也变回了原有的意义,Static也回到了Visual Basic中。但是BETA1惊人的变化让所有的VB开发者怕了,他们觉得这种语言被改的千疮百孔,有些人干脆转去研究传说中的新语言C#。但是 Visual Basic. NET渡过几个BETA版本之后还是找到了正确的定位。Visual Basic. NET有对CLR最完善的支持,同时尽量保留着BASIC易懂的语法风格和易用性。这个版本新增加的功能已经数不清,最重要的几个是:
1、? 继承。至此,Visual Basic完成了向面向对象转变的道路。
2、? 共享成员。
3、? Try…Catch结构化异常处理。
4、? Delegate和Interface。
5、? 名称空间。
6、? 对自由线程的支持。
特别的是,Visual Basic. NET大大减少了Visual Basic语言的关键字,如GoSub、PSet等等。原先的Visual Basic有多达120个关键字,这给写程序带来了很大的不便,现在经过精简,Visual Basic脱下了这个沉重的包袱。
Visual Basic. NET现在是一门现代的、强壮的、面向对象的、简单的可视化开发语言。强大的语言功能吸引了很多开发者。历史是在不断重演的,Visual Basic. NET如今的处境和Visual Basic 4.0很相似,由于兼容性变差,人气也降低了。同时由于依附于.NET Framework,程序发布造成了一定的困难。现在国内使用Visual Basic. NET的人相对于Visual Basic 6.0来讲显得很少。但是凭借Visual Basic. NET强大的语言功能和MS的支持,Visual Basic. NET一定会显出它的光辉来。
2003-稳中求变的新版本
Visual Basic. NET 2003是一个相当稳重的版本,改变很少,但对小处有很多改进。首先Visual Basic 6.0升级向导做了很大改进,这给从老版本痛苦升级的人带来了更多一些的希望。其次在IDE方面,Visual Basic. NET 2003修正了许多错误,还让事件处理恢复了6.0的开发体验。语言方面只有两项改进:
1、? 在For、For Each语句中声明循环变量。
2、? 增加了数学移位运算符<<和>>。
在这个比较成熟稳定的新版本下,许多Visual Basic的爱好和开始重新了解Visual Basic. NET,社区里面也渐渐热闹起来。但是,有些使用C#的开发者坚持认为Visual Basic. NET是垃圾,尽管Visual Basic. NET拥有比C#更多的功能和更好的IDE。这说明不了解Visual Basic. NET成为它普及的最大障碍。
2005-完美主义的Visual Basic,能否再现辉煌?
为了让Visual Basic有最佳的开发体验,Visual Basic 2005的设计者绞尽了脑汁。这次Visual Basic 2005光语言上的改进就足以让Visual Basic的开发人员高兴一阵子。大家可以去看看我那篇介绍Visual Basic 2005新增功能的贴子。挑重要的列在下边:
1、? 泛型
2、? 运算符重载
3、? Partial Type
4、? 窗体的默认实例(让你用VB6的语法使用窗体)
5、? 语法的多种改进
6、? My关键字
现在用Visual Basic 2005只要一行代码就可以读写注册表、访问文件、读写串口、获取应用程序信息…… 用Visual Basic 2005完全可以称作享受开发。而泛型、运算符重载等功能又可以让Visual Basic的开发人员深入.NET Framework的全部功能,开发出最优秀的应用程序。
Visual Basic 2005预示着Visual Basic光明的前景,所有Visual Basic的爱好者和使用者都和我一起等待这个新版本吧。
C++编程语言历史========
C++是从C语言发展而来的,而C语言的历史可以追溯到1969年。 在1969年,美国贝尔实验室的Ken Thompson为DEC PDP-7计算机设计了一个操作系统软件,这就是最早的UNIX。接着,他又根据剑桥大学的Martin Richards设计的BCPL语言为UNIX设计了一种便于编写系统软件的语言,命名为B。B语言是一种无类型的语言,直接对机器字操作,这一点和后来的C语言有很大不同。作为系统软件编程语言的第一个应用,Ken Thompson使用B语言重写了其自身的解释程序。 1972—1973年间,同在贝尔实验室的Denis Ritchie改造了B语言,为其添加了数据类型的概念,并将原来的解释程序改写为可以在直接生成机器代码的编译程序,然后将其命名为C。1973 年,Ken Thompson小组在PDP-11机上用C重新改写了UNIX的内核。与此同时,C语言的编译程序也被移植到IBM 360/370、Honeywell 11以时VAX-11/780等多种计算机上,迅速成为应用最广泛的系统程序设计语言。然而,C语言也存在一些缺陷,例如类型检查机制相对较弱、缺少支持代码重用的语言结构等,造成用C语言开发大程序比较困难。为了克服C语言存在的缺点,贝乐实验室的Bjarne Stroustrup博士及其同事开始对C语言进行改进和扩充,将“类”的概念引入了C语言,构成了最早的C++语言(1983)。后来,Stroustrup和他的同事们又为C++引进了运算符重载、引用、虚函数等许多特性,并使之更加精炼,于1989后推出了AT&T C++ 2.0版。随后美国国家标准化协会ANSI(American National Standard Instiute)和国际标准化组织ISO(International Standards Organization)一起进行了标准化工作,并于1998年正式发布了C++语言的国际标准ISO/IEC:98-14882。各软件商推出的 C++编译器都支持该标准,并有不同程序的拓展。 C++支持面向对象的程序设计方法,特别适合于中型和大型的软件开发项目,从开发时间、费用到软件的重用性、可扩充性、可维护性和可靠性等方面,C++均具有很大的优越性。同时,C++又是C语言的一个超集,这就使得许多C代码不经修改就可被C++编译通过。
JAVA编程语言历史=========
Java,是一种可以编写跨平台应用软件的面向对象的程序设计语言,由Sun(太阳微电子,Sun Microsystems)公司的James Gosling等人于1990年代初开发。它最初被命名为Oak,作为一种小家用电器的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近夭折之时,随着Internet的发展,Sun看到了 Oak在计算机网络上的广阔应用前景,于是改造了Oak,在1995年5月以"Java"的名称正式发布了。Java伴随着Internet的迅猛发展而发展,逐渐成为重要的Internet编程语言。
Java编程语言的风格十分接近C++语言。Java继承了C++语言面向对象技术的核心,舍弃了C++语言中的指针(以引用取代)、运算符重载、多重继承(以接口取代)等成分,增加了自动垃圾收集功能用于回收不再被引用的对象所占据的内存空间。在J2SE1.5版本中Java又引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
Java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,这同时也在一定程度上降低了Java程序的运行效率。
Sun公司对Java编程语言的解释是:Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
Java平台是基于Java语言的平台。这样的平台目前非常流行,因此微软公司推出了与之竞争的.NET平台以及模仿Java的C#语言。
目前Java提供以下三个版本:
J2ME(Java 2 Platform, Micro Edition):微型版的Java平台
J2SE(Java 2 Platform, Standard Edition):标准版的Java平台
J2EE(Java 2 Platform, Enterprise Edition):企业版的Java平台
Java的历史:
1995年5月23日,Java语言诞生
1996年1月,第一个JDK-JDK1.0诞生
1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术
1996年9月,约8.3万个网页应用了JAVA技术来制作
1997年2月18日,JDK1.1发布
1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议规模之纪录
1997年9月,JavaDeveloperConnection社区成员超过十万
1998年2月,JDK1.1被下载超过2,000,000次
1998年12月8日,JAVA2企业平台J2EE发布
1999年6月,SUN公司发布Java的三个版本:标准版、企业版和微型版(J2SE、J2EE、J2ME)
2000年5月8日,JDK1.3发布
2000年5月29日,JDK1.4发布
2001年6月5日,NOKIA宣布,到2003年将出售1亿部支持Java的手机
2001年9月24日,J2EE1.3发布
2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升
2004年9月30日18:00PM,J2SE1.5发布,是Java语言的发展史上的又一里程碑事件。为了表示这个版本的重要性,J2SE1.5更名为J2SE5.0