2009-06-02 348 views

回答

7

高/低級別的區別更多的是抽象而不是範式。通常情況下,你越「越低」,就越需要了解你正在運行的機器 - 它的內存,文件系統甚至處理器指令集。

高級語言在您和機器之間放置了一層抽象。它處理血淋淋的細節。這既好又壞。抽象帶走了一些擔憂,但也帶走了控制。

一個高層次的語言可以是程序性的,面向對象,功能等..

較低層次的語言可能無法提供像面向對象的概念,因爲面向對象是一種抽象。

0

這兩個軸(「範式」和「層次」)之間不一定有任何因果關係,但我認爲相關性是邏輯和函數式語言往往是最高層次,後面是面嚮對象語言,程序語言通常較低。

而不是問題的一部分,但我也認爲相關的動態類型語言往往比靜態類型的語言更高級。

我認爲這可能是一個有趣的可視化,讓人們可以在三個軸上進行編程語言的三維散點圖:範例(邏輯/功能/ oo /程序)鍵入(靜態/動態)和級別(請參閱例如針對測量水平的各種度量的「完成代碼」)。

1

高級別/低級別是指語言對彙編程序和機器代碼(彙編程序是低級別的,C被認爲比C++或Java等級低)感知到的「接近度」。

面向對象程序編程是爲支持某種程序設計方法(稱爲編程範例)而提供的語言工具。如果語言高或低,超出事實,OO語言往往不會低,因爲彙編程序不瞭解對象和類,它們與語言高低無關。還有很多其他的範例,比如函數式編程。

0

「高級別」和「低級別」是人們可能不同意的模糊詞彙。你可以看看編程語言提供的抽象數量,你需要編寫多少代碼才能完成特定的任務,然後調用需要更少代碼的語言。當然,那麼你需要一種測量代碼大小的方法。

-1

我喜歡說 - 這一切都歸結爲機器指令集。所以,無論代表多高級別的東西,它仍然歸結爲機器指令。所以,高級語言是思想的抽象,而低級語言則更接近硬件。

類比是相似的,因爲它歸結爲一件事 - 機器代碼!

1

不是真的。例如,C++是面向對象的,它的級別相當低。

+0

我認爲Renee所做的連接是有效的。 C++仍然是一種比原始C更高級別的語言。通用規則是面向對象的語言通常比純粹的函數式語言更高級別,這是有效的。 – HumbleWebDev 2016-11-30 01:54:31

0

我認爲這是一個很好的比喻。

面向對象的語言往往比純功能語言更高。看看C++和c。正如docesam所提到的,C++仍然是相當低的水平,但C++仍然比純粹的功能性的哥哥c更高。因爲面向不是唯一使語言成爲高層次的東西,但它絕對是一個面向對象的指示器,意味着對真實原始機器指令的更多抽象。

但是,面向對象不足以確定哪種語言是最高級別的。

我想看看下面的事情:

  • 的語言是否有靜態或動態類型? (Javascript & Python vs Java和C++)
  • 面向對象還是不是? (c vs C++)
  • 純文本宏或模板? (C對C++)
  • 動態綁定VS靜態綁定(再次使用Javascript &的Python和Java & C++)
  • 是否語言支持命名的函數或者你有使用線跳?
  • 該語言是否允許評論之類的內容?
  • 還有更多