|
2006-10-23
僅僅使用軟件的人們 通常意識不到編寫軟件有多么困難。噢,設計部分和最初開發部分都很有趣。最困難的部分是使其正確運行(且運行速度足夠快)。對于程序員而言,這就好比一餐開始時是美味的雙層牛奶巧克力咖啡干酪餅,而結束時卻是菠菜奶油沙司。
之所以說編程仍是一門藝術而不是一門科學或工程學科,是因為我們還不能將其分解成多個組成步驟,而后機械地進行。一旦我們在此方面獲得成功,在某種程度上就會出現一種新的可能性:在編程時采用以人為本的設計語言 (PODL) 編寫程序,通過編程來證明程序的正確性以及分析和支持語義查詢。然而到那時,編程依然是一門藝術,也就是其中含有那么多傳統智慧。
但是,如同許多傳統智慧一樣,此類比經不起進一步推敲。事實上,編制程序(我干這行已經有 20 多年了)根本一點都不像藝術 —— 至少不像寫小說(我干這一行也已經有 20 多年了)那樣的藝術。讓我用兩個片段(一個程序片段和一個散文片段)來說明我的觀點吧。
第一個片段是一個用于分析 Visual C++® 7.1 的詞法分析程序的一部分。該片段如下所示:
if ( index >= TokenID::lastKeyword() ) {
string token = tokenString( index );
if (( isdigit( token[ 0 ] )) || ( token[0] == ‘-’ )) {
#ifdef TELL_ME
display( "!! TokenSet::tokenIdentify: ", "文字數字:", token );
#endif
return TokenID::TK_Literal;
}
} if ( index >= TokenID::lastKeyword() ) {
string token = tokenString( index );
if (( isdigit( token[ 0 ] )) || ( token[0] == ‘-’ )) {
#ifdef TELL_ME
display( "!! TokenSet::tokenIdentify: ", "文字數字:", token );
#endif
return TokenID::TK_Literal;
}
}
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。