我只是對所有的語言類型有點困惑。高級/低級語言區別與面向對象/程序區別相比有什麼區別 - 如果有的話?很多類比似乎都很相似。高級編程語言是傾向於面向對象的,而低級語言是面向過程的嗎?
回答
高/低級別的區別更多的是抽象而不是範式。通常情況下,你越「越低」,就越需要了解你正在運行的機器 - 它的內存,文件系統甚至處理器指令集。
高級語言在您和機器之間放置了一層抽象。它處理血淋淋的細節。這既好又壞。抽象帶走了一些擔憂,但也帶走了控制。
一個高層次的語言可以是程序性的,面向對象,功能等..
較低層次的語言可能無法提供像面向對象的概念,因爲面向對象是一種抽象。
這兩個軸(「範式」和「層次」)之間不一定有任何因果關係,但我認爲相關性是邏輯和函數式語言往往是最高層次,後面是面嚮對象語言,程序語言通常較低。
而不是問題的一部分,但我也認爲相關的動態類型語言往往比靜態類型的語言更高級。
我認爲這可能是一個有趣的可視化,讓人們可以在三個軸上進行編程語言的三維散點圖:範例(邏輯/功能/ oo /程序)鍵入(靜態/動態)和級別(請參閱例如針對測量水平的各種度量的「完成代碼」)。
高級別/低級別是指語言對彙編程序和機器代碼(彙編程序是低級別的,C被認爲比C++或Java等級低)感知到的「接近度」。
面向對象程序編程是爲支持某種程序設計方法(稱爲編程範例)而提供的語言工具。如果語言高或低,超出事實,OO語言往往不會低,因爲彙編程序不瞭解對象和類,它們與語言高低無關。還有很多其他的範例,比如函數式編程。
「高級別」和「低級別」是人們可能不同意的模糊詞彙。你可以看看編程語言提供的抽象數量,你需要編寫多少代碼才能完成特定的任務,然後調用需要更少代碼的語言。當然,那麼你需要一種測量代碼大小的方法。
我喜歡說 - 這一切都歸結爲機器指令集。所以,無論代表多高級別的東西,它仍然歸結爲機器指令。所以,高級語言是思想的抽象,而低級語言則更接近硬件。
類比是相似的,因爲它歸結爲一件事 - 機器代碼!
不是真的。例如,C++是面向對象的,它的級別相當低。
我認爲這是一個很好的比喻。
面向對象的語言往往比純功能語言更高。看看C++和c。正如docesam所提到的,C++仍然是相當低的水平,但C++仍然比純粹的功能性的哥哥c更高。因爲面向不是唯一使語言成爲高層次的東西,但它絕對是一個面向對象的指示器,意味着對真實原始機器指令的更多抽象。
但是,面向對象不足以確定哪種語言是最高級別的。
我想看看下面的事情:
- 的語言是否有靜態或動態類型? (Javascript & Python vs Java和C++)
- 面向對象還是不是? (c vs C++)
- 純文本宏或模板? (C對C++)
- 動態綁定VS靜態綁定(再次使用Javascript &的Python和Java & C++)
- 是否語言支持命名的函數或者你有使用線跳?
- 該語言是否允許評論之類的內容?
- 還有更多
- 1. 面試問題:面嚮對象語言與面嚮對象語言的區別
- 2. XML是一種面向網絡的編程語言嗎?
- 3. 是否有高級語言編譯爲低級語言(如C)的術語?
- 4. 是否可以將低級語言轉換爲高級語言?
- 5. 面向對象編程語言中的關係特徵
- 6. 爲什麼C++被稱爲面向對象的編程語言?
- 7. 是否有一種允許對對象進行低級別訪問的面向對象的語言?
- 8. winbatch windows腳本語言面向對象?
- 9. 什麼是一些最純粹的面向對象的語言?
- 10. Python語法最接近的語言是更低級的語言!
- 11. 有沒有完整的面向方面的編程語言?
- 12. Javascript是否可以模仿面向對象的語言?
- 13. LISA語言對象是否定向?
- 14. 面向語言的編程文章/論文/教程
- 15. 編程語言如何同時支持功能和麪向對象編程?
- 16. 功能只在非面向對象的語言中使用嗎?
- 17. 面嚮對象語言的堆對象表示
- 18. 硒是一種特定的面向語言(如Java)嗎?
- 19. C語言的頭文件和麪向對象編程的可重用性?
- 20. 這是不好的面向對象編程嗎?通過方法
- 21. 語言級別的線程
- 22. 是否有一種面向代理之間交互描述的編程語言?
- 23. 面向對象編程
- 24. 面向對象編程
- 25. Scala面向對象編程
- 26. mysqli面向對象編程
- 27. 面向對象編程(HOW!)
- 28. Python面向對象編程
- 29. 面向對象編程
- 30. Python:面向對象編程
我認爲Renee所做的連接是有效的。 C++仍然是一種比原始C更高級別的語言。通用規則是面向對象的語言通常比純粹的函數式語言更高級別,這是有效的。 – HumbleWebDev 2016-11-30 01:54:31