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