2015-04-06 50 views
3

這是一個天真的問題,但爲什麼庫中的所有函數和變量名稱如此之短?爲什麼圖書館實施者使用短名稱?

例如在lapack.cpp函數的名稱是

dgetrs 

看看這個網站 http://www.netlib.org/lapack/explore-html/d6/d49/dgetrs_8f.html

所有的功能都在相同的短的方式命名。

有更大的名字是否有任何性能成本?

從我的觀點來看,使用短名稱會導致如此多的問題,這使得難以理解代碼。調試變得困難。許多事情可以通過一個好的函數名稱來傳達,爲什麼圖書館開發者會放棄它?我意識到寫圖書館的人比我更有經驗,所以我想知道原因。

打字變得稍微容易些,但是長期來看,打字的可用性和可維護性並沒有得到補償?

+5

唯一的性能成本是編譯器/解釋器。據說舊版本的FORTRAN的長度限制只有6個字符。 – Lalaland 2015-04-06 03:24:44

+0

@拉拉蘭有道理。對於像C++這樣的較新的(相對)語言是否有這樣的代價?感謝 – nnrales 2015-04-06 03:27:36

+1

@Lalaland,這並不能解釋爲什麼標準C庫具有'strcpy','strlen'等。 – 2015-04-06 03:28:25

回答

3
  1. Dennis Ritchie設定了一個目標,即C不應該要求連接器比Fortran多。
  2. 直到Bjarne Stroustrup開始了一個更長標識符的廣告系列,連接器通常對名稱的限制相當短。

因此C例如患有像strcpy()這樣的庫名,正是出於這個原因。它在八十年代後期不再是一個問題,但這種習慣似乎仍然存在。