面對需求人員不斷提出的變態需求,軟件開發人員的主要工作就是將需求人員口中或文檔中的自然語言翻譯成計算機能夠理解的形式語言。自然語言指的是人類的語言,比如漢語、英語等,它具有多義性(在不同的上下文中,意義是不同的),冗余性(語法錯了一點 并不會讓人引起誤解)。而形式語言是用精確的數學或機器可處理的公式定義的語言,例如計算機編程語言,它的特點就是語法非常嚴格,并不具有多義性和冗余性。
成都創新互聯公司服務項目包括介休網站建設、介休網站制作、介休網頁制作以及介休網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,介休網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到介休省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!計算機編程語言可以分為高級語言和低級語言。高級語言編程更加容易、維護容易,具備可移植性(一份代碼可以運行在多個平臺上),典型代表 :Java、Python、C、C++、Ruby、C#等。低級語言只能在某個平臺上運行,不具備可移植性,比如說我們在Intel x86編寫的代碼,無法在PowerPC或ARM上運行,它的典型代表有機器語言和匯編語言。
高級語言中又可以分為解釋型語言(interpreting)和編譯型語言(compiling)。解釋型語言通過解釋器讀入高級語言寫的指令,然后解釋執行,Ruby、Python、PHP都是解釋型語言。編譯型語言使用編譯器把高級語言變成目標代碼。下面舉個例子來介紹解釋型語言和編譯型語言的區別。
sum = x*4 - y
針對上面這行代碼,計算機首先要做詞法分析,將代碼變成一個個token。下圖中的每一行表示一個token。
再獲得token之后,進行語法分析 構建抽象語法樹(AST)。
解釋型語言會對抽象語法樹進行解釋執行,而編譯型語言會繼續進行語義分析、中間代碼生成、代碼優化、目標代碼生成。
目前很多語言都是混合了解釋和編譯,例如Java,如下圖所示,Java編譯器先把Java編譯成Class文件,然后在各個JVM上解釋執行,由于每個平臺對應一個JVM,因此Java是跨平臺的。由于2-8原則的存在,JVM發現一段代碼經常執行,那么,JVM將這段代碼編譯成本地代碼,即如果有熱點代碼,就編譯成本地代碼(Native Code)。
計算機高級語言還可以分為靜態語言和動態語言。靜態語言是代碼經過編譯之后,類型就確定了,典型代表就是Java。靜態語言可以通過IDE來進行類型錯誤檢查。而動態語言類型錯誤無法在編譯期檢查出來,會在運行期出現。為了幫助大家更好的理解,直接上代碼。當執行test(new Women())
,IDEA會報告編譯出錯。為了消除這個錯誤,我們可以抽象出一個對象Person
,然后讓Man
和Women
都繼承于這個Person
,而且void test(Person p)
,這樣一來既消除了錯誤,又維護了原有的功能。
class Man {
public void eat(){
System.out.println(" man eat!");
}
}
class Women {
public void eat(){
System.out.println(" Women eat!");
}
}
void test(Man m){
m.eat();
}
通過上述內容的介紹,我們知道了計算機語言的分類,那么,我們該如何
定義一門語言呢?選我們需要定義BNF。通過BNF來判定源代碼是否符合該規范。下面,以Java的Class的BNF為例。
修飾符(modifier)是“public、private、protected、static等”關鍵字(keyword)之一;
修飾符之后是class關鍵字,class之后是標識符(identifier),標識符是有“a...z $..”組成
可選的extends
具體實例
public class Employee extend Person{
...
? ? 略
...
}
編譯器首先讀取public這個token,同時,由于編譯器事先知道BNF,那么 它知道public是modifier是符合語法的。
然后,編譯器讀入class,同BNF進行比較,符合語法的。直到編譯器讀入extend,發現和BNF規定的不相符,提示錯誤。
如果源代碼符合BNF規則,則繼續進行詞法分析、語法分析、語義分析等等,這里就不做過多介紹了,我會在后續文章中詳細介紹的。
順序
分支(if else,switch)
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
當前名稱:漫談計算機語言-創新互聯
鏈接地址:http://m.newbst.com/article24/dcieje.html
成都網站建設公司_創新互聯,為您提供App開發、網頁設計公司、關鍵詞優化、靜態網站、網站建設、網站內鏈
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯