2014-02-10 42 views
3

我的印象是,彙編語言的知識可以對任何高級程序員都有好處,因爲它可以幫助他們理解計算機是如何工作的,從而更智能地編寫高級代碼。彙編語言對Fortran程序員有幫助嗎?

我覺得誘惑,開始學習彙編語言僅僅因爲這個原因,但我也想知道是否會爲我有用的,作爲一個程序員FORTRAN,居然能寫彙編語言。

我能找到自己改寫,以便更好地解決科學問題彙編語言簡單FORTRAN過程?

道歉,如果這個問題已在別處回答。

+1

它始終是有助於瞭解更多,恕我直言...;)我不認爲這將真正幫助編寫科學計劃快,但它可能有利於優化這樣的程序,即使沒有裝配實際編寫的東西,這在大多數情況下,我認爲這是一個相當糟糕的主意。 – haraldkl

+1

有一個問題[學習大會](http://stackoverflow.com/questions/1360279/learning-assembly?rq=1)已經問過,你可能想仔細閱讀答案。請注意,使用gfortran,您可以鍵入'gfortran -S codename.f90'並獲取程序集輸出,以便您可以看到您的代碼如何比較以便手寫它。 –

+1

我認爲你爲學習如何閱讀彙編語言提出了一個合理的論點。至於手工製作緊湊,快速,高效的數字彙編程序以取代Fortran編譯器的產品......以及我剛剛描述了BLAS(* etc *)的一些更好的實現。你會發現自己編寫彙編語言例程來打敗它們嗎?堅韌的堅果開裂。 –

回答

0

其實我很驚訝有多少程序員認爲他們應該學習彙編,甚至嘗試它,他們掌握一些更高層次的語言之前。 有些場合需要組裝(系統級編程,工具鏈編程(後端),非常小的嵌入式CPU),但除此之外,它不是真的有用(再)。爲了您的目的,您可能應該瞭解CPU如何進行計算(以便能夠更好地組織數據&算法),也許可以查看CPU的某些架構細節等。Agner Fog編寫了a bunch of optimization manuals(免費提供)。 能夠讀取程序集,檢查編譯器生成的代碼是否有用,但不是絕對的要求。

我假設你已經足夠了解並行(和[GPGPU]),如果你想加快你的科學算法2

+1

學習一些裝配與掌握它不同。對於大多數對程序集有一定了解的人來說,至少能夠閱讀和理解簡單的例子,無論他們使用什麼高級語言,都會有所幫助。 – rcgldr