2019-03-06 10:19:03分類:軟件開發(fā)6411
軟件開發(fā)如何學(xué)習(xí)?軟件開發(fā)好學(xué)嗎?下面我們就來看看軟件入門的知識之程序設(shè)計語言Java和C#的簡單介紹和對比:
要做軟件就必然會涉及到程序設(shè)計語言,它是什么?有哪些特點?又有哪幾部分組成的呢?在這里我們?yōu)榇蠹易隽艘粋€總結(jié),希望可以通過這些內(nèi)容讓大家對于程序設(shè)計語言有一個大概的認(rèn)識。
基本概念:
1、低級/高級
計算機(jī)的硬件只可以識別由1、0組成的機(jī)器指令程序,所以機(jī)器指令是最基本的計算機(jī)語言。由于機(jī)器指令是由特定的計算機(jī)系統(tǒng)所固有的、面向機(jī)器的語言,所以使用機(jī)器語言進(jìn)行程序設(shè)計,效率低、可讀性差、難以理解,而且也不便修改和維護(hù)。后來出現(xiàn)了由符號標(biāo)識的匯編指令組成的匯編語言,它和機(jī)器語言非常接近,在書寫格式上很大程度上決定于于計算機(jī)的機(jī)器指令,所以它在使用時也不是很方便,正是因為這種操作和后期維護(hù)上的不便等因素人們把機(jī)器語言和匯編語言稱之為低級語言。
在低級語言的基礎(chǔ)上,人們開發(fā)出了功能更強(qiáng)、抽象級別更高的程序設(shè)計語言,于是就出現(xiàn)了各種面向各類應(yīng)用程序的設(shè)計語言,這些我們統(tǒng)稱為高級語言,比如常見的Java、C、C++、PHP等都屬于高級語言的范疇,這些語言顯著的特點就是和人們使用的自然語言十分接近,提高了程序的設(shè)計效率。
2、編譯/解釋
在前邊我們介紹過計算機(jī)只可以識別由0、1組成的機(jī)器語言,那么高級語言是如何被計算機(jī)識別的呢?顯然計算機(jī)在識別高級語言之前需要先進(jìn)行翻譯,完成這項任務(wù)的程序被我們稱之為語言處理程序。高級語言的翻譯有很多形式,不過最基本的方式只有三種,即匯編、解釋、編譯。
用高級語言或者匯編語言編寫的程序我們稱之為源程序,它們不可以直接在計算機(jī)上執(zhí)行,它們需要相應(yīng)的翻譯程序進(jìn)行處理,變成計算機(jī)可以識別的內(nèi)容,被翻譯之后的程序我們稱之為目標(biāo)程序。那么高級語言采用的編譯和解釋兩種方式有哪些區(qū)別呢?這里我們對這部分內(nèi)容做個總結(jié)。
解釋程序,有時候也叫做解釋器,它或者是直接解釋執(zhí)行的源程序,或者是將源程序翻譯成某種中間代碼后再加以執(zhí)行;編譯程序則是將源程序翻譯為目標(biāo)程序,然后再在計算機(jī)上運行。這兩種方式的根本區(qū)別在于:編譯方式下,計算機(jī)中運行的是和源程序等價的目標(biāo)程序,源程序和編譯程序都不再參與目標(biāo)程序的執(zhí)行;相反在解釋方式下,解釋程序和源程序還是會參與到程序的運行中,運行程序的控制權(quán)在解釋程序。更加簡單的說就是在解釋方式下,翻譯源程序不再參與目標(biāo)程序的執(zhí)行過程,而編譯器則將源程序翻譯成獨立保存的目標(biāo)程序。
程序語言的分類
程序設(shè)計語言分類沒有統(tǒng)一的標(biāo)準(zhǔn),按照編程時的思維特點可以將程序分為結(jié)構(gòu)化程序設(shè)計語言、面向?qū)ο蟪绦蛟O(shè)計語言、函數(shù)式程序設(shè)計語言以及邏輯型程序設(shè)計語言等,下邊我們就對主要的一些內(nèi)容做個簡單的介紹。
1、結(jié)構(gòu)化程序設(shè)計語言
它是基于動作的語言,在這種語言中計算被看作是動作的序列,C語言就是顯著的代表。結(jié)構(gòu)化設(shè)計語言的特性反應(yīng)在如下幾個方面:
第一, 使用自上而下的逐步精華的方法進(jìn)行編程;
第二, 按照模塊組成的方法進(jìn)行變成;
第三, 程序只包含順序、判定、以及循環(huán)構(gòu)造。
結(jié)構(gòu)化設(shè)計語言的結(jié)構(gòu)簡單清晰,模塊化強(qiáng),描述方式接近人們習(xí)慣的推理方式,所以可讀性很好,而且在軟件的重用性和維護(hù)方面都有所進(jìn)步。
2、面向?qū)ο蟪绦蛟O(shè)計語言
目前最流行的設(shè)計語言,常見的Java、C++、C#等都是面向?qū)ο笤O(shè)計語言的顯著代表,它們支持?jǐn)?shù)據(jù)隱藏、數(shù)據(jù)抽象、用戶定義類型、繼承、多態(tài)等機(jī)制。
3、其他
除了結(jié)構(gòu)化程序設(shè)計語言和面向?qū)ο笤O(shè)計語言,還有函數(shù)式設(shè)計語言和邏輯式設(shè)計語言,因為我本身也不是特別了解,只是知道有這種說法,所以在這里就不多做介紹了,如果感興趣的話,可以到網(wǎng)上百度相關(guān)的資料,也歡迎您通過微信公眾號和我分析您的學(xué)習(xí)收獲。
常見的程序設(shè)計語言
從最初的FORTRAN設(shè)計語言興起到現(xiàn)在,程序設(shè)計語言經(jīng)過不斷的修改和創(chuàng)新,出現(xiàn)了很多優(yōu)秀的設(shè)計語言,這里我們總結(jié)了一些常見的設(shè)計語言。
1、FORTRAN
第一個被廣泛應(yīng)用于科學(xué)計算的高級語言。一個FORTRAN程序有一個主程序和若干子程序組成。不過發(fā)展到現(xiàn)在這門語言和最初的版本已經(jīng)有了很大的差別。
2、PASCAL
一種結(jié)構(gòu)化程序設(shè)計員,從ALGOL演化而言,不過功能更加強(qiáng)大,在這種設(shè)計語言中將程序和過程合二為一,統(tǒng)一成過程,而且過程可以嵌套和遞歸。
3、前端代碼的性能
這主要是針對瀏覽器而言,簡單說就是訪問頁面所用的時間。這個時間包括后端處理、代碼文件傳輸、頁面渲染、JS文件加載和運行,為了縮短這部分時間需要我們編寫簡潔并且符合標(biāo)準(zhǔn)的代碼,同時通過壓縮文件等手段來減少文件傳輸?shù)臅r間。
4、C
20世界70年代發(fā)展起來的一種通用的程序設(shè)計語言,主要在UNIX系統(tǒng)以及運行在UNIX系統(tǒng)上的軟件中使用,兼具了高級語言和匯編語言的特點,提供了一個高效的執(zhí)行語句并且允許程序員可以直接訪問操作系統(tǒng)和底層軟件,所以在系統(tǒng)級應(yīng)用、實時處理和嵌入式應(yīng)用的開發(fā)中稱為主要的程序設(shè)計語言。
5、C++
在C語言基礎(chǔ)上發(fā)展而來,和C兼容。在C++中,主要的是增加了類機(jī)制,使其稱為一種面向?qū)ο蟮某绦蛟O(shè)計語言。
6、Java
20 世紀(jì)90 年代發(fā)展起來的面向?qū)ο蟮脑O(shè)計語言,最初用來開發(fā)網(wǎng)絡(luò)瀏覽器的小應(yīng)用程序,不過因為是一種通用的程序設(shè)計語言,所以目前得到了廣泛的應(yīng)用。在Java中保留了C++的基本語法、類、繼承等概念,刪除了一些C++不太友好的特征,所以和C++相比,Java更加的簡單,語法和語義也更加合理。
7、PHP
一種可以在服務(wù)端執(zhí)行,嵌入HTML文檔的腳本語言,語言的風(fēng)格非常類似C語言,被網(wǎng)站編程開發(fā)人員廣泛的使用。PHP可以快速的執(zhí)行動態(tài)網(wǎng)頁,語法也混合了C、Java這些語言,同時還添加了一些自創(chuàng)的內(nèi)容。
8、Python
一種面向?qū)ο蟮慕忉屝统绦蛟O(shè)計語言,可以用來編寫?yīng)毩⒌某绦?,支持對操作系統(tǒng)底層的訪問,可以將Python源程序翻譯為字節(jié)碼在虛擬機(jī)上運行。雖然內(nèi)核很小,但是提供了豐富的基本構(gòu)件塊,還可以使用C、C++、Java等程序進(jìn)行擴(kuò)展,因此可以用來開發(fā)任何類型的程序。
9、Delphi
可視化的開發(fā)工具,在window環(huán)境下運行,采用面向?qū)ο蟮木幊陶Z言O(shè)bject Pascal和基本構(gòu)件的開發(fā)結(jié)構(gòu)框架,主要的特征是為基本窗體和面向?qū)ο蟮姆椒ā⒏嬖V的編譯器、強(qiáng)大的數(shù)據(jù)庫支持和Window編程緊密結(jié)合以及成熟的組件技術(shù)。
程序設(shè)計語言組成
程序設(shè)計語言是由哪幾部分組成的呢?在這里我們針對一些常見的設(shè)計語言的特點給大家做一個簡單的總結(jié)和介紹。
1、數(shù)據(jù)
在程序設(shè)計語言中針對不同的內(nèi)容有不同的數(shù)據(jù)類型,數(shù)據(jù)類型對應(yīng)的對象則對應(yīng)著應(yīng)用中具有特殊意義的組成,它的名稱被我們稱之為標(biāo)識符,由數(shù)字、字母、下劃線組成。對于數(shù)據(jù)而言按照不同的角度可以進(jìn)行如下劃分:
常量/變量,這種劃分番薯主要是按照程序運行的時候值是否可以被改變來劃分的,常量的值在程序運行中不可以被改變,而變量在程序運行中可以改變。
全局/局部變量,這種劃分方式是按照作用范圍來劃分的。全局變量作用域是整個文件和程序,而局部變量的作用域只是在定義它的函數(shù)或者程序塊中。
2、流程控制
流程控制語句,通過這些控制語句我們可以實現(xiàn)一些邏輯上的控制,主要的控制語句有三種,即順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),下邊我們就來簡單了解下這些流程控制語句。
如上所示是一個順序結(jié)構(gòu)的示意圖,表示一個操作序列,從第一個操作開始,按照順序依次向后執(zhí)行,直到序列的最后一個操作。
如上所示就是一個選擇結(jié)構(gòu)的示意圖,通過判斷給定的條件是否成立,然后按照判斷的結(jié)果執(zhí)行相應(yīng)的操作。
除了順序結(jié)構(gòu)和選擇結(jié)構(gòu)外,就是循環(huán)結(jié)構(gòu),描述了重復(fù)執(zhí)行的過程,對于一個循環(huán)結(jié)構(gòu)一般是由初始化、循環(huán)體、循環(huán)條件三部分組成的。湯姆索亞歷險記(http://www.simayi.net/dushubiji/6113.html)讀書筆記摘抄好詞好句及感悟賞析,常見的循環(huán)結(jié)構(gòu)有兩種,一種是while結(jié)構(gòu),另一種是do-while結(jié)構(gòu)。
其中while結(jié)構(gòu)如下所示:
這種結(jié)構(gòu)顯著的特點就是進(jìn)入循環(huán)之前必須是判斷條件成立,反之如果進(jìn)入循環(huán)前判斷條件不成立則不能進(jìn)入循環(huán)體中。而do-while結(jié)構(gòu)如下所示:
和while結(jié)構(gòu)不同,do-while結(jié)構(gòu)可以先進(jìn)入循環(huán)體中執(zhí)行一次,然后再進(jìn)行判斷。
3、其他
傳輸,指明語言允許的傳輸方式,比如賦值處理、數(shù)據(jù)的輸入和輸出等。
函數(shù),程序中重要的組成,它是一段具有獨立功能的程序,和函數(shù)密切相關(guān)的操作是函數(shù)定義、函數(shù)聲明以及函數(shù)調(diào)用。