日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

五种常见的计算机高级语言,[转]计算机语言的种类总结

發布時間:2024/3/12 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 五种常见的计算机高级语言,[转]计算机语言的种类总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

計算機語言的種類總結內容導讀: 今天來總結一下語言的種類,語言的種類從不同的角度會有不同的劃分,比如機器語言、匯編語言、高級語言、低級語言(機器語言及匯編語言)、編譯語言、解釋型語言、腳本語言、動態語言、靜態語言、函數式語言(比如f#及scala)、命令式語言、面向對象語言(比如c++...

今天來總結一下語言的種類,語言的種類從不同的角度會有不同的劃分,比如機器語言、匯編語言、高級語言、低級語言(機器語言及匯編語言)、編譯語言、解釋型語言、腳本語言、動態語言、靜態語言、函數式語言(比如f#及scala)、命令式語言、面向對象語言(比如c++及java)、過程式語言、混合型語言(介于編譯型語言與解釋型語言之間,比如java與c#)等等,語言的種類繁多,五花八門什么都有,真正的全部總結全面不是一件容易的事情,這里我只是起個拋磚引玉的作用,希望對大家有所幫助。

另外關于機器語言、匯編語言及高級語言的資料,我以前寫過一篇文章,在這里就不說很詳細了。

1.動態語言及靜態語言

動態語言,是指程序在運行時可以改變其結構:新的函數可以被引進,已有的函數可以被刪除等在結構上的變化。比如眾所周知的ecmascript(javascript)便是一個動態語言。除此之外如ruby、python等也都屬于動態語言,而c、c++等語言則不屬于動態語言。

所謂的動態類型語言,意思就是類型的檢查是在運行時做的,比如如下代碼是不是合法的要到運行時才判斷(注意是運行時的類型判斷):

defsum(a,b):

returna+b

via:

可以簡單的理解為直接被解釋執行的語言稱為動態語言。而需要編譯環境將程序轉換為其它的編碼再執行的語言稱為靜態語言。

當前靜態語言有:java、c/c++、c#、delphi、vb等。

動態語言有:asp、php、cgi、lisp、perl、python,smalltalk、ruby等。

via:

2.函數式編程語言

f#是微軟.net平臺上一門新興的函數式編程(fp,functionalprogramming)語言,作為微軟唯一的fp語言,其位置的特殊性引起了很多人的關注,而微軟也致力于將f#打造成為.net平臺的頂峰語言,我們也期待著f#能夠給函數式編程語言帶來一次重大革命。

via:

scala是一種基于java的通用編程語言,旨在推廣函數式編程,它編譯成java字節碼,在java虛擬機(jvm)上運行。雖然scala本質上是一個函數式編程語言,但它也體現了面向對象語言的所有必要元素,這一點使函數式編程特性對編程社區的吸引力更大。

f#是由微軟主持開發的一個通用編程語言,它是.net通用運行時(clr)的一部分,它是以另一個正統的函數式編程語言ocaml為基礎的,微軟在.net平臺中引入f#除了人們對函數編程的興趣不斷上升外,另一個重要的原因是函數編程非常適合高性能和并行計算。雖然它的語法清晰,但f#實際上混合了函數式編程語言,命令式語言和面向對象語言的語法特性,它的面向對象和命令式特性大部分都與.net平臺兼容,f#的三重性質也很實用,它允許程序員使用任意結合這三個編程語言的特性使用。

via:

pyton及ruby也可以進行函數式編程

python函數式編程到底有什么用呢?我想實際的好處就是可以將更好的描述問題本身,而不是描述解決問題的操作步驟。

via:

3.命令式程序設計語言

命令式程序設計語言是基于動作的語言,以馮諾依曼計算機體系結構為背景。機器語言及匯編語言是最早的命令式語言。在這種語言中,計算機被看做是動作的序列,程序就是用語言提供的操作命令書寫的一個操作序列。用命令式程序設計語言編寫程序,就是描述解題過程中每一步的過程,程序的運行過程就是問題的求解過程,因此也稱為過程式語言。fortran、algol、cobol、c、ada、pascal等都是命令式程序設計語言。

via:

4.面向對象語言

面向對象語言(object-orientedlanguage)是一類以對象作為基本程序結構單位的程序設計語言,指用于描述的設計是以對象為核心,而對象是程序運行時刻的基本成分。語言中提供了類、繼承等成分。

面向對象語言借鑒了20世紀50年代的人工智能語言lisp,引入了動態綁定的概念和交互式開發環境的思想;始于20世紀60年代的離散事件模擬語言simula67,引入了類的要領和繼承,成形于20世紀70年代的smalltalk。

面向對象語言的發展有兩個方向:一種是純面向對象語言,如smalltalk、eiffel等;另一種是混合型面向對象語言,即在過程式語言及其它語言中加入類、繼承等成分,如c++、objective-c等。

面向對象語言刻畫客觀系統較為自然,便于軟件擴充與復用。有四個主要特點:

⑴識認性,系統中的基本構件可識認為一組可識別的離散對象;

(2)類別性,系統具有相同數據結構與行為的所有對象可組成一類;

(3)多態性,對象具有惟一的靜態類型和多個可能的動態類型;

(4)繼承性,在基本層次關系的不同類中共享數據和操作。

其中,前三者為基礎,繼承是特色。四者(有時再加上動態綁定)結合使用,體現出面向對象語言的表達能力。

一般認為,較典型的面向對象語言有:

simula67,支持單繼承和一定含義的多態和部分動態綁定;

smalltalk支持單繼承、多態和動態綁定;

eiffel,支持多繼承、多態和動態綁定;

c++,支持多繼承、多態和部分動態綁定。

java,支持單繼承、多態和部分動態綁定

五種語言涉及概念的含義雖基本相同,但所用術語有別。

基于類的面向對象語言是面向對象世界里的主流。它包括:

simula,第一個面向對象語言

smalltalk,第一個支持動態類型的語言

c++,它的大部分基于類的特性繼承自simula.等等等等。

與基于類的語言相對應的是基于對象的面向對象語言。這里“基于對象”的概念和把visualbasic叫做基于對象的概念是不同的。這里的“基于對象”是指一個只以對象為中心,沒有類的概念的語言,類似python之類的語言。

via:

5.過程式語言

過程式語言與面向對象語言,到底有什么區別?可能是初學者常碰到的問題。簡單來說,過程式語言整個是構建在動詞上的語言。比如,最常見的經典過程式語言-c語言,打印一條語句的語法是printf(),這個方法的名字本身就是一個動詞,這個動詞強調了一個動作的過程,所謂過程式就是這個意思。

同樣的方法在面向對象的java中就是這樣寫:system.out.println();前面說過面向對象語言就是構建在名詞基礎上的系統,對象就是一個名詞。大家都知道對象封裝了操作和屬性,所以system是一個對象,后面跟上分類在out目錄下的方法println。這就是面向對象的寫法。

via:

6.解釋型語言

計算機不能直接理解高級語言,只能直接理解機器語言,所以必須要把高級語言翻譯成機器語言,計算機才能執行高級語言編寫的程序。

翻譯的方式有兩種,一個是編譯,一個是解釋。兩種方式只是翻譯的時間不同。編譯型語言寫的程序執行之前,需要一個專門的編譯過程,把程序編譯成為機器語言的文件,比如exe文件,以后要運行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe文件),因為翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程序執行效率高。

解釋則不同,解釋性語言的程序不需要編譯,省了道工序,解釋性語言在運行程序的時候才翻譯,比如解釋性basic語言,專門有一個解釋器能夠直接執行basic程序,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。

via:

7.腳本語言

1).腳本語言(javascript,vbscript等)介于html和c,c++,java,c#等編程語言之間。

html通常用于格式化和鏈結文本。而編程語言通常用于向機器發出一系列復雜的指令。

2).腳本語言與編程語言也有很多相似地方,其函數與編程語言比較相象一些,其也涉及到變量。與編程語言之間最大的區別是編程語言的語法和規則更為嚴格和復雜一些.

3).與程序代碼的關系:腳本也是一種語言,其同樣由程序代碼組成。

注:腳本語言一般都有相應的腳本引擎來解釋執行。他們一般需要解釋器才能運行。python、javascript,asp,php,perl,nuva都是腳本語言。c/c++編譯、鏈接后,可形成獨立執行的exe文件。

4).腳本語言是一種解釋性的語言,例如python、vbscript,javascript,installshieldscript,actionscript等等,它不象c\c++等可以編譯成二進制代碼,以可執行文件的形式存在.

腳本語言不需要編譯,可以直接用,由解釋器來負責解釋。

5).腳本語言一般都是以文本形式存在,類似于一種命令.

舉個例子說,如果你建立了一個程序,叫aaa.exe,可以打開.aa為擴展名的文件.

你為.aa文件的編寫指定了一套規則(語法),當別人編寫了.aa文件后,你的程序用這種規則來理解編寫人的意圖,并作出回應.那么,這一套規則就是腳本語言.

via:

8.編譯型語言

編譯型語言寫的程序執行之前,需要一個專門的編譯過程,把程序編譯成為機器語言的文件,比如exe文件,以后要運行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe文件),因為翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程序執行效率高。

這里提一下編譯型語言和解釋型語言的區別:解釋性語言在運行程序的時候才翻譯,比如解釋性basic語言,專門有一個解釋器能夠直接執行basic程序,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。

via:

9.以另一個角度將程序語言分為5類

1)、webpagescriptlanguages

就是網頁代碼,比如html、javascript、css、asp、php、xml都應該屬于此類(照蔡的意思,html不應該屬于anguages的,可能他覺得太簡單了吧,不過我覺得html也應該算的,大家愛聽誰的就聽誰的好了,這個不重要)

2)、interpretedlanguages(解釋型語言)

包括perl、python、rebol、ruby等,也常被稱作script語言,通常被用于和底下的操作系統溝通。照蔡的意思,每個人至少應該學會一套這類的語言。這類語言的缺點是效率差、源代碼外露——所以不適合用來開發軟件產品,一般用于網頁服務器。

3)、hybridlaguages(混合型語言)

代表是java和c#。介于解釋型和編譯型之間。蔡認為c#是.net最重要的語言,值得期待其后續發展;至于java,蔡叫看他的《sleeplessinjava》——我倒!

4)、compilinglanguages(編譯型語言)

c/c++,java都是編譯型語言。蔡說c++很復雜,要成為高手沒三五年是不行的(就憑這句話,我決定向java投降),雖然如此,但真正要成為高手的都應該懂c/c++。

關于delphi,蔡說如果想要跨linux和windows平臺的語言,則delphi似乎是最好的選擇。

5)、assemblylanguages(匯編語言)

匯編語言是最接近于硬件的語言,不過現在幾乎沒多少人用了。

程序語言學習順序建議

如果完全沒有程序經驗,可照這個順序:javascript——解釋型語言——混合型語言——編譯型語言——匯編(如果需要的話)

用業界流行一句話做結尾“真正的程序員用c++,聰明的程序員用delphi”,那么,什么樣的程序員用java呢?

總結

以上是生活随笔為你收集整理的五种常见的计算机高级语言,[转]计算机语言的种类总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。