国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

對C++標準委員會強制For循環的不同看法

2019-11-17 05:25:48
字體:
來源:轉載
供稿:網友

  我曾在網上發了一個貼子,指出C++標準委員會制定標準強制for循環一致性的做法是不合理的。

  其實關于強制for循環一致性的討論一直是比較激烈的,以前我在國外一些郵件列表中經常見到這樣的話題,兩方面的意見基本持平,不分高下。

  我在做我自己的太極語言時發現了一個規則,根據這個規則平滑推理過來可以判定出不應強制for循環一致性,我就在我的blog和貼子里說了。可是沒想到竟然……

  我覺到我們中國程序員界有一種不正確的思維定勢,過于迷信C++標準委員會(不只C++),過于迷信這樣的所謂權威,不敢對它說一個不字,不敢懷疑它,不敢討論它,甚至對討論它的嘲笑譏諷。

  可是大家考慮過沒有,這些所謂的標準是怎么來的?是討論來的,是爭辯來的,而且標準的本身也不是穩定不變的。不能因為它是標準就不能違反它,更不能因為它是標準就不答應爭論它,不能因為它是標準就諷刺懷疑它的人。

  我忽然覺到中國程序員界怎么這么在意“符合國際標準”,而國際上的各大公司卻是在爭著讓自己的標準成為國際標準,即使成為不了標準也要守著自己的地盤守好以備東山在起,所以你看很多所謂的“國際標準”就在那里擺著,許多科研單位與公司卻不把它放在眼里,所以出來那么多不符合標準的東西,除了統一底層接口以外各自都發展出有各自特色的一套東西。在技術的高端,不講究什么標準,標準只能暫定,不是絕對的定論。

  大家知道微軟等不少公司的C/C++編譯器一直在拒絕C++標準委員會制定的標準強制for循環一致性,VC一直到2005版才不得不向標準屈服。許多人卻說微軟這樣做是為了商業利益,說微軟的編譯器符合了標準就可以掙更多的錢。其實我覺的象微軟這樣的公司,在技術問題上并不會太在意錢,決不會為了錢而改變技術的初衷。微軟之所以拒絕這個C++標準一定是因為了技術上的原因——是因為微軟的編譯器開發小組認為C++標準委員會錯了所以才這樣做的。(后來lippman來了,給lippman一個面子吧,這才……)。在這點上,微軟假如想用迎合C++標準的方式來掙錢,那么決不會推遲到2005。恐怕是C++標準剛剛出來就會做了。

  強制for循環一致性或不強制for循環一致性在技術實現上是很簡單的——曾經做過類C/C++編譯器的都明白,只是國內太少了。下面看看在我的太極語言中實現這兩種情況的代碼多么簡單。在太極語言中,沒有for,while,switch,if..else..,這些都是用代碼組合機制實現的(太極語言的編譯描述控制語言“無極語言”的一部分)

  (1)不強制一致性

//定義 for 的概念
mean for(a,b,c,d)
{
 a;
 SignForBegin:;
 goto (b) SignForBody;
 goto SignForEnd;
 SignForBody:;
 d;
 SignForContinue:;
 c;
 goto SignForBegin;
 SignForEnd:;
}

//使用for
for(int i;int j;i=0;j=0)(i<100)(i=i+1)
{
 j=j+i;
}
  (2)強制一致性

//定義 for 的概念
mean for(a,b,c,d)
{
{
 a;
 SignForBegin:;
 goto (b) SignForBody;
 goto SignForEnd;
 SignForBody:;
 d;
 SignForContinue:;
 c;
 goto SignForBegin;
 SignForEnd:;
}
}

//使用for
for(int i;int j;i=0;j=0)(i<100)(i=i+1)
{
 j=j+i;
}
  我僅僅在(1)的{}內部再嵌套一層{}就可以了。別的什么代碼都不用做。(2)的for循環會變成{....},而{}里定義的名字全是封閉的,從而就強制了for循環的一致性。

  if,while....也同樣。

  底層的東西做好了,這些高層的東西想怎么做就怎么做,想符合標準就符合,不想符合就不符合,一切看愿意怎么做。

  忽然想起來,微軟的代碼里肯定是有很多不符合標準的“非強制for循環一致性”的代碼,而且是感到這樣做是有好處的,所以與C++標準對抗到2005才低頭。而且幕后一定是bill gates在挺著。

  我發現很多人一考慮到微軟時往往輕易被什么“微軟只是有錢其實沒技術”之類的說法限制住思維,其實這些說法我覺的完全是無稽之談。沒技術?lippman也沒技術嗎?borland過去的那幾個小子也沒技術嗎?原來的dec vms 小組也沒技術嗎?……沒技術只憑商業手段難道就這么好在技術圈子里玩?頂多只能說微軟一些技術不是最好的。

  我剛剛了解到,哈哈,微軟原開發小組里許多人(包括borland過去的)在for循環一致性的問題上和lippman不一樣,雖然2005開始支持標準,不過許多人挺有意見的……

  我覺的我們中國的程序員界應該增強信心與活力,不要整日屈服在所謂標準與權威之下,——看看在我們中國被瞻仰的香餑餑C++標準在國外遭到了多少質疑?該懷疑的時候就是要懷疑,國外的程序員界就是這么走過來的。同時程序員界也應該對這些懷疑的論調持寬容態度,懷疑外國人的標準與權威不應該被譏諷。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 连州市| 北京市| 永寿县| 德州市| 耒阳市| 遵化市| 雷山县| 修文县| 霍城县| 曲阳县| 肥东县| 枣庄市| 惠东县| 沁阳市| 囊谦县| 乐清市| 宜兰市| 敦化市| 成安县| 荥阳市| 清水河县| 宁陕县| 崇礼县| 龙井市| 金寨县| 和林格尔县| 浑源县| 临西县| 施秉县| 资兴市| 太和县| 银川市| 崇仁县| 和田县| 平邑县| 梁河县| 静海县| 南京市| 海兴县| 普兰县| 堆龙德庆县|