国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于計算機編程語言的區(qū)別、聯(lián)系及發(fā)展前景的討論

2017-04-06 04:38:11趙晨懿
數(shù)字通信世界 2017年8期
關(guān)鍵詞:匯編語言編程語言使用者

趙晨懿

(陜西師范大學(xué)附屬中學(xué),西安 710061)

基于計算機編程語言的區(qū)別、聯(lián)系及發(fā)展前景的討論

趙晨懿

(陜西師范大學(xué)附屬中學(xué),西安 710061)

本文將通過對機器語言的發(fā)展史,與其各自區(qū)別和聯(lián)系的論述,淺析機器語言的發(fā)展前景,并預(yù)測它如何直接影響人類未來的發(fā)展。

編程語言;發(fā)展史;區(qū)別;聯(lián)系

1 匯編和編程語言

1.1 編程語言發(fā)展史

計算機語言共有機器語言、匯編語言、高級語言三大類,本文將探討它們在不同場合及不同歷史時期的應(yīng)用。

1.1.1 機器語言

1946年2月14日,世界上第一臺通用計算機ENIAC誕生于美國的賓夕法尼亞大學(xué),這個機器上有一種特定的穿孔卡片,可以操作計算機進(jìn)行工作。不過這種卡片的語言與人類語言差別極大,只有專家才能理解這種由0和1組成的語言,這也就相當(dāng)于硬件的通電為1無電為0,這種語言被稱為機器語言。機器語言是第一個計算機語言,這種語言是只有計算機才能識別的語言,以后的語言都是在其基礎(chǔ)上發(fā)展變化而來。

機器語言的本質(zhì),其實是一群機器指令的整合,它們能直接被用二進(jìn)制代碼表示的機器識別并執(zhí)行。但不同型號的機器語言是不相通的,用機器語言編寫程序,使用者要首先理解所用計算機的全部指令和指令的涵義,編出的程序全是些0,1代碼,不易被使用者理解,還易出錯,是一件十分繁瑣的工作,而這大大激勵了人們?nèi)ふ腋鼮閮?yōu)秀的計算機語言。

1.1.2 匯編語言

通過科學(xué)家們的不懈努力,計算機語言進(jìn)入了第二階段,出現(xiàn)了匯編語言。這是一種用于計算機或其他電子設(shè)備的計算機語言,也稱為符號語言。它用助記符代替了操作碼,用標(biāo)號或地址符號代替了地址碼。在不同的機器中,匯編語言對應(yīng)著不同的機器語言指令集,通過匯編過程對計算機進(jìn)行操作。

比起機器語言,匯編語言具有更高的機器相關(guān)性,更加便于記憶和書寫,但又同時保留了機器語言高速度和高效率的特點。匯編語言仍是面向機器的語言,很難從其代碼上理解程序設(shè)計意圖,設(shè)計出來的程序不易被移植,故不像其他大多數(shù)的高級計算機語言一樣被廣泛應(yīng)用。所以在高級語言高度發(fā)展的今天,它通常被用在底層,通常是程序優(yōu)化或硬件操作的場合。這最終導(dǎo)致了高級語言的出現(xiàn)。

1.1.3 高級編程語言

當(dāng)計算機語言步入到第三階段時,就出現(xiàn)了面向使用者的高級語言,是一種被高度封裝了的編程語言。與機器語言相反,高級語言以人類的日常用語為基礎(chǔ),是一種接近于人類語言習(xí)慣的編程語言。它使用人們易于接受的文字(如英語),程序中的符號也與日常用的數(shù)學(xué)公式有關(guān),這大大提高了程序的可讀性。高級語言還具有易學(xué),易掌握的特點,一般人只需幾周的時間的學(xué)習(xí),便可上手編程開發(fā)出簡易的程序。同時高級語言遠(yuǎn)離機器語言,消除了環(huán)境特異性帶來的代碼移植的困難,利用率高。高級語言作為語言發(fā)展的重要里程碑,自動化程度高,表達(dá)形式多樣且靈活,將繁瑣的事務(wù)拋給了編譯程序,可以說是對程序員的一次解放。

當(dāng)語言發(fā)展到這一階段時,可以說已經(jīng)開始開枝散葉。從1954年最早出現(xiàn)的Fortran語言,被科學(xué)家們廣泛運用,到現(xiàn)在大家熟悉的C#、C++、JAVA。不同高級語言在合適的場合做合適的事,各自發(fā)揮各自的優(yōu)勢,皆在自己的領(lǐng)域占有一席之地,高級語言在這一歷史時期快速發(fā)展。

1.2 匯編語言概述及其意義

雖然匯編語言相對于高級語言,像是一個被打入冷宮的貴妃,但它仍是計算機領(lǐng)域最重要的兩類語言之一。在匯編語言還未出現(xiàn)之前,人們?yōu)榱讼褂脵C器語言所帶來的麻煩和不便,開始用一些簡潔的英文字母、符號串來替代一個特定的指令(助記符)。比如,移位指令“SHL、SHR、SAL、SAR”,用于執(zhí)行算數(shù)和邏輯運算的加法指令“ADD/ADC”,通用數(shù)據(jù)傳輸指令“MOV”等,這樣一來,使用者能夠輕松讀懂并理解程序設(shè)計的意圖,糾錯及維護(hù)都變得簡易了許多,這種計算機語言便是匯編語言,即第二階段計算機語言。然而計算機并不能識別這些符號,而專門負(fù)責(zé)將這些符號譯成二進(jìn)制數(shù)的翻譯程序就被稱為匯編程序。雖然匯編語言同樣非常依賴于硬件,無法跨機器使用,但效率非常高,針對計算機指定硬件而設(shè)計的匯編語言程序,能有效提高計算機硬件的功能和特長,程序簡捷而質(zhì)量高,因此匯編語言仍是計算機學(xué)習(xí)的最佳起點,在計算機學(xué)習(xí)中占有不可替代的一席之地。

1.3 高級編程語言概述及其意義

由于匯編語言過于依賴機器硬件,且其助記符記憶困難,寫出的代碼過于冗長,這激勵了人類又發(fā)明了更加易用的高級語言。這種語言更加類似人類的自然語言,其較為顯著的進(jìn)步是避免了對硬件的直接操作,使得一般人經(jīng)過短暫的學(xué)習(xí)之后都就可以進(jìn)行編程的工作。

人們意識到我們所設(shè)計的計算機語言,應(yīng)該要更接近于人們平時使用的語言,符號最好要類似于數(shù)學(xué)公式,同時又不那么依賴于機器硬件,編出的程序要能在所有電子設(shè)備上通用。經(jīng)過科學(xué)家的不懈努力,40多年來,高級語言可以說是經(jīng)歷了一段“百家爭鳴”的時期,共有數(shù)百種高級語言橫空出世。它們前后經(jīng)歷了從早期語言到結(jié)構(gòu)化程序設(shè)計環(huán)境,和從過程化程序語言到非過程化程序語言的歷程。相應(yīng)地,程序的研發(fā)也由最初的個體戶、作坊式的封閉式生產(chǎn),發(fā)展為產(chǎn)業(yè)化、流水線式的工業(yè)化開發(fā)。

回顧高級語言的發(fā)展歷史,我們可以了解人類的需求是如何影響高級語言發(fā)展的規(guī)律。高級語言為了解放程序員而誕生,而語言的易用也使越來越多的人參與到編程當(dāng)中,未來的語言應(yīng)更是如此,高級語言具有簡潔、智能、易表達(dá)、易理解的特點必然會是未來語言發(fā)展的趨勢之一。

2 匯編語言與高級編程語言的區(qū)別和聯(lián)系

2.1 兩者的區(qū)別

匯編語言的特點是能被計算機直接識別和執(zhí)行,使用它進(jìn)行編程可以減少占用空間、提高運行速度,并能直接對硬件實施控制。在需要實時控制的時候,有著不可替代的重要地位,但匯編語言在編程和理解時要復(fù)雜、困難一些,尤其是在進(jìn)行數(shù)據(jù)處理或是邏輯運算時更加凸顯出其劣勢。

而高級語言是面向使用者的語言,能更準(zhǔn)確地被程序員所理解,它的表達(dá)能力強,功能多,編程效率高,上手速度快,自動化程度高,因而更受歡迎。在大部分軟件開發(fā)中,使用者都采用高級語言編程,以提高編程效率。但在要求存儲空間小,執(zhí)行速度快,需直接對硬件進(jìn)行控制的場合,則應(yīng)用匯編語言編程,以達(dá)到優(yōu)化程序速度的目的。

2.2 兩者的聯(lián)系

這樣兩種看似差別很大的語言,它們之間又有著緊密的聯(lián)系。在一些程序設(shè)計當(dāng)中,如果把兩者結(jié)合起來使用,將兩種語言的優(yōu)勢同時發(fā)揮出來,則可以解決很多特性難題。在許多程序的設(shè)計當(dāng)中,高級語言和匯編語言可以相互交叉調(diào)用,進(jìn)行參數(shù)傳遞,共享數(shù)據(jù)信息,這便是所謂的混合編程[1]。

程序員往往在高級語言程序中直接嵌入?yún)R編語句,以實現(xiàn)對硬件直接進(jìn)行控制的功能,這是混合編程中最常見的做法。也可以在高級語言程序中使用匯編語言中定義的變量和常量,或使用內(nèi)部函數(shù)對匯編語句進(jìn)行調(diào)用。

簡而言之,這類混合編程的方法可以讓高級語言與匯編語言互相取長補短,各自發(fā)揮各自優(yōu)勢,同時減少各自缺點所帶來的不便,善用這個方法可以使開發(fā)和編程工作達(dá)到事半功倍的效果。

3 編程語言發(fā)展前景

未來電子產(chǎn)業(yè)的發(fā)展可能會顛覆傳統(tǒng)的計算機體系結(jié)構(gòu),縱觀前史,在語言、工具、框架三者中,語言的發(fā)展始終是相對緩慢的。但隨著計算機運行速率的增加,CPU性能的成倍提高,圖像處理、模式識別等技術(shù)的日益成熟,在計算機系體結(jié)構(gòu)量變的同時,語言和編程模式也將會發(fā)生一些質(zhì)變。

面向使用者的思想在高級語言的發(fā)展與設(shè)計中發(fā)揮著至關(guān)重要的作用。而未來語言的發(fā)展趨勢,將會完全面向?qū)ο螅妆磉_(dá)指令,更易讓人編寫。編程語言將會更有表現(xiàn)力,可以幫助人們采用最優(yōu)的數(shù)據(jù)架構(gòu)完成更多的工作。因此,方便、快捷將是未來語言發(fā)展趨勢的關(guān)鍵詞之一。

不得不說,即使是在高級語言已得到高速發(fā)展的今天,用計算機語言進(jìn)行編程對大多數(shù)人而言還是一個比較陌生或者說比較困難的,只有專業(yè)人才才能夠熟練運用這些語言進(jìn)行軟件開發(fā)。回顧匯編語言與高級語言之間的進(jìn)化歷程,不難發(fā)現(xiàn),隨著高級語言的形式愈發(fā)向自然語言靠攏,易用與普及也必將是未來編程語言的發(fā)展趨勢之一,計算機語言的使用將不再僅局限于專業(yè)的編程人員。

但人類往往過于看重新事物給自己所帶來的便利,但卻不曾注意新事物當(dāng)中未被挖掘出來的有潛力的一面。在計算機語言發(fā)展史中容易被忽略的一點,就是所編程出的程序的可移植性。從匯編語言到高級語言的歷程,打破了不同機器,語言不相通的尷尬局面。但在今天,形形色色的開發(fā)平臺中依舊有著無法打破的隔閡。安卓上的應(yīng)用需要在IOS中重新開發(fā)一遍,PS4上的游戲需要大量時間才能移植到PC上。而未來科學(xué)家們有可能打破這種局限性,使得程序可以在不同的平臺上分享,避免移植程序所花費的精力。

目前常見的編程語言大都是命令式的,例如C#,C++或是Java等,這些語言的特征在于,代碼里更多地表現(xiàn)出“如何(How)完成工作”這樣的實現(xiàn)細(xì)節(jié),例如for循環(huán),i+=1等,這些細(xì)節(jié)或少或多會掩蓋了我們的最終目標(biāo)。因此,編程語言發(fā)展的最后一大趨勢,便是讓代碼包含更多的“What”,讓執(zhí)行環(huán)境更加聰明地去適應(yīng)當(dāng)前的執(zhí)行要求,程序員可以直接告訴計算機“做什么”,而不是“怎么做”。未來的使用者完全可以用計算機語言來實現(xiàn)“智能編程”,用真實生活中的工作流程來完成編程。

4 結(jié)束語

自高級語言出現(xiàn)以來,其發(fā)展的速度是驚人的,不少科學(xué)家和經(jīng)濟(jì)學(xué)家認(rèn)為,科技的發(fā)展速度將按照摩爾定律呈指數(shù)型增長。隨著科技的高速發(fā)展,會出現(xiàn)更多更高級的編程語言,計算機技術(shù)也必將會得到更廣泛的應(yīng)用,但隨之而來的困難與挑戰(zhàn),也會像雨后春筍般地紛紛涌現(xiàn)出來。不少科學(xué)家曾試圖對未來進(jìn)行預(yù)測,但其成果大多是不盡如人意。我們利用過去這面鏡子,謹(jǐn)慎地預(yù)測未來,是為了讓人們看到未來更多的可能性,以對充滿挑戰(zhàn)的未來做好顛覆與變革的準(zhǔn)備。

[1] 柴孝.C語言與匯編語言的混合程序設(shè)計技術(shù)[J].信息與電腦:理論版,2011(11):181-182

[2] 翟乃強.匯編語言與C語言及VisualC_混合編程[J].青島科技大學(xué)學(xué)報,2003(9):137-138

[3] 葉連杰.計算機編程語言的發(fā)展與應(yīng)用[J].信息與電腦:理論版,2014(11):191-192

[4] 張莉,韓其睿.淺談C#編程語言的特點及潛在的新功能[J].儀器儀表用戶,2005(5):83-84

[5] 張越男.試析C#編程語言的特點及功能[J].軟件,2013(3):145-146

10.3969/J.ISSN.1672-7274.2017.08.020

TP31文獻(xiàn)標(biāo)示碼:A

1672-7274(2017)08-0047-03

猜你喜歡
匯編語言編程語言使用者
“法定許可”情況下使用者是否需要付費
壓力-體積轉(zhuǎn)換在CFC編程語言中的實現(xiàn)解析
高等學(xué)校計算機專業(yè)課程教學(xué)改革實踐——以匯編語言與接口技術(shù)課程為例
計算機教育(2020年5期)2020-07-24 08:52:50
Java編程語言的特點與應(yīng)用
匯編語言與C語言的混合程序設(shè)計技術(shù)研究
電子制作(2019年10期)2019-06-17 11:45:16
新型拼插休閑椅,讓人與人的距離更近
好日子(2018年5期)2018-05-30 16:24:04
淺談不同編程語言對計算機軟件開發(fā)的影響
電子制作(2018年1期)2018-04-04 01:48:36
提高《匯編語言程序設(shè)計》教學(xué)效率的思考與實踐
抓拍神器
面向?qū)ο骔eb開發(fā)編程語言的的評估方法
临清市| 云龙县| 余姚市| 颍上县| 通州市| 汉阴县| 申扎县| 九台市| 怀远县| 汾阳市| 漳浦县| 洛隆县| 临邑县| 南投县| 新巴尔虎右旗| 中西区| 芜湖市| 松溪县| 辽源市| 明光市| 孙吴县| 铜陵市| 阿巴嘎旗| 延庆县| 宁陕县| 贵州省| 肇州县| 固原市| 沈阳市| 双柏县| 广汉市| 吴桥县| 望谟县| 苏尼特左旗| 石景山区| 三穗县| 仙居县| 景德镇市| 株洲市| 凤凰县| 增城市|