国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

編程語言和胖手指

開發 項目管理
最近發表在第四屆International Workshop on Evaluation and Usability of Programming Languages and Tools上的一篇論文中,我展示了一些研究發現:通過往由各種不同語言編寫的類似程序中隨機的制造一些干擾信息,看編譯器或運行系統能否發現由這些干擾引起的錯誤,或者最終導致了程序輸出了錯誤的結果。

[[81996]]

水星探索項目中一段Fortran代碼里的逗號被寫成了點號,影響了運算的準確性,導致太空探測器無法到達更遠的軌道。出現這種事情的幾率有多大?一種編程語言的設計在多大程度上會影響程序正確性和導致相似的事件?最近發表在第四屆International Workshop on Evaluation and Usability of Programming Languages and Tools上的一篇論文中,我展示了一些研究發現:通過往由各種不同語言編寫的類似程序中隨機的制造一些干擾信息,看編譯器或運行系統能否發現由這些干擾引起的錯誤,或者最終導致了程序輸出了錯誤的結果。

在由我和我的同事 Vassilios Karakoidas、Panagiotis Louridas共同指導的這項研究中,我們首先選擇了10中流行的編程語言,以及用它們寫出的一批程序。我們選擇這些語言的條件是基于一篇IEEE Spectrum文章里提供的數據(由軟件研究公司TIOBE建立的一個索引目錄)、出現在Powell’s Books書名中的數量、IRC在線討論中引用的數量,以及Craigslist中招聘職位的數量。在這樣一個流行語言的大集合中,由于一些可操作性的原因,部分語言被排除在外。根據流行度索引,這個集合大概能覆蓋所有語言的71%到86%。

然后我們從Rosetta Code wiki中尋找我們研究的這10種語言寫成的執行相同任務的各種源代碼。用Rosetta Code這個網站的創辦人自己的話,這個網站的目的就是搜集用不用的各種語言來完成同一種任務的代碼,展示它們的相似和不同,幫助那些研究基礎工作的人了解問題的另一種解決方案。

我們的下一步是要制造一個代碼干擾器:一個能系統的往代碼里隨機引入各種隨機混亂的工具。干擾器能替換標志符,把一些數字加一,隨機改變字符或把字符串替換成相似的東西或隨機的串。最后,我們把干擾器應用到我們搜集的代碼里,檢查這些被修改后有錯誤的代碼是否能被編譯器或運行環境檢測到,或是否導致了錯誤的輸出。

理論上,我們人工引入的這些錯誤是模擬現實生活中的很多具體表現。錯誤拼寫——“胖手指”——就是一個很常見的例子。另外的場景包括馬虎大意,自動重構錯誤(特別是在像C和C++這些語言里,自動重構是很難正確無誤的實現的),復雜的編輯器命令導致的意外失誤,或搜索-替換操作造成的錯誤,甚至還包括貓踩著鍵盤上產生的后果。

總計我們一共測試了136個任務實現,嘗試了2萬8千種干擾操作,其中成功的有261,667 (93%)個。被干擾的程序中有90,166 (32%)個編譯通過或語法上沒有發現異常。60,126 (67%, 或 總共被干擾的數量的23%)個能正常的結束運行。 18,256個輸出了完全無異的結果,表明干擾沒有對程序產生任何影響。其余的,41,870 個程序 (能運行的70%, 總數的16%)編譯和運行都沒有問題,但輸出了結果錯誤。

chart

上圖顯示了對各種語言的統計結果,是按失敗情況統計:成功的編譯或執行,沒有捕獲程序中的錯誤,導致輸出了錯誤的結果。上圖驗證了我們一些非常直覺的看法。強靜態類型語言(Java, Haskell, C++)比那些弱的或動態類型語言(Ruby, Python, Perl, PHP, 和 JavaScript)能在編譯器捕獲更多的錯誤。稍微有點意外的是,C語言出現在了中間位置,驗證了一個被很多人相信的觀點:C語言的類型系統并不像它的眾多追隨者(包括我)認為的那樣強。然而,C語言在運行期卻拋出了大量的錯誤,導致最終它的不正確輸出結果的比率跟那些強類型語言的相似。

這還有一副類似的統計圖,統計的是運行時各種語言的表現。同樣,相比起強類型語言,弱類型語言更傾向于仍能無異常(崩潰或拋出異常)的運行。根據這兩個統計表可以看出,弱類型語言在輸出結果上將會有更高的錯誤率。相比起C++或C#,PHP的錯誤率是36%,而C++的是8%,C#是10%,用像PHP這樣語法上不是很嚴格的語言寫成的應用,雖然充分利用了這些弱類型語言帶來的方便性,但不經意的拼寫錯誤也會很容易溜進產品代碼里。總的看來,動態腳本語言跟強靜態類型語言比起來差距很大。這可能是我們只在較高層面測試這些腳本語言特征有關。

我們對這些數據做了進一步分析,發現了下面一些事情。

  • 這些在靜態語言和動態語言干擾測試對比結果在統計學上有重要意義。這驗證了靜態語言比動態語言更容易發現錯誤。
  • C#的表現更像C和C++,而不是Java,盡管它外觀上跟后者更相似。
  • Haskell 的表現跟Java很相似。
  • 統計數據顯示在靜態類型語言間被干擾表現有明顯不同,比如C和C++間,C++和Java間,Haskell和Java間等。然而,動態語言間卻沒有一個可比較的模式。借用托爾斯泰的一句話,它們看起來各有各不同。

然而,我想我們的研究最重要的成果是,通過對具有可比性的語言進行干擾測試,提供了對編程語言的設計進行評價的數據資料。

英文原文:Programming Languages vs. Fat Fingers

譯文鏈接:http://www.aqee.net/programming-languages-vs-fat-fingers/

責任編輯:林師授 來源: 外刊IT評論
相關推薦

2013-08-01 09:08:21

編程語言

2011-08-16 10:03:45

Groovy編程語言Web

2021-08-23 15:05:21

PyretJavaScript編程

2022-09-16 07:32:15

編程計算機命令

2015-10-21 13:51:16

編程站著坐著

2019-12-06 17:40:39

程序員編程語言JavaScript

2011-08-16 10:37:07

Web

2009-11-16 08:58:43

PHP語言

2011-05-30 08:42:59

D語言

2014-05-07 10:59:40

編程語言技術趣聞

2017-12-19 07:16:31

編程語言技術軟件開發

2015-03-27 10:16:48

編程流行編程語言編程創造者

2022-04-24 15:55:22

Go語言語言函數

2014-06-06 14:25:03

iOS 8SwiftWWDC2014

2019-09-26 09:42:44

Go語言JavaPython

2022-07-01 11:56:54

C語言C++編程語言

2009-08-14 16:25:36

C#中間語言和元數據

2009-10-28 14:25:17

VB.NET Sock

2013-12-04 15:20:33

Android SDK應用程序

2014-12-03 09:56:54

編程
點贊
收藏

51CTO技術棧公眾號

国产美女精品写真福利视频| 69av亚洲| 日韩精品91亚洲二区在线观看| 久久精品国产欧美激情| 国产精品一区二区三区久久| 国产精品二区在线| 成人看片网页| 91老司机福利 在线| 精品国产91久久久| 国产精品三级在线| 91高潮精品免费porn| 直接在线观看的三级网址| 国产精品久久777777| 国产精品二区三区| 欧美1区2区视频| 国产精品入口免费视| 91嫩草国产线观看亚洲一区二区 | 日韩www在线| 八戒八戒神马在线电影| 色综合久久中文字幕| 天堂a√中文在线| 亚洲欧洲99久久| 91视频免费版污| 国产精品国产三级国产普通话99 | 国产精品三级| 91在线网站视频| 色综合一区二区日本韩国亚洲| 欧美理论片在线观看| 国产成人精品免费视| 成人日韩av在线| 美国毛片一区二区| 成人免费在线网| 91啪亚洲精品| 青青青青在线视频| 26uuu国产电影一区二区| 午夜影院网站| 欧美唯美清纯偷拍| 久久电影天堂| 久久亚洲欧美日韩精品专区| 91精品国产自产精品男人的天堂| 97视频免费看| 日韩视频在线一区二区三区 | 裤袜国产欧美精品一区| 欧美激情欧美激情在线五月| 成人香蕉社区| 亚洲欧美日韩精品综合在线观看 | 在线成人性视频| 男人操女人的视频在线观看欧美| 99re6热在线精品视频播放速度| 久久综合图片| 久草在线官网| 另类少妇人与禽zozz0性伦| 欧美aⅴ99久久黑人专区| 麻豆av一区| 亚洲视频你懂的| 欧美a级在线观看| 91在线观看欧美日韩| 91婷婷韩国欧美一区二区| 久草香蕉在线| 一本一本久久a久久精品牛牛影视 一本色道久久综合亚洲精品小说 一本色道久久综合狠狠躁篇怎么玩 | 欧美影院一区二区三区| 18国产精品| 成人免费观看毛片| 亚洲午夜私人影院| 成人看片在线观看| 在线免费观看成人| 91成人国产精品| 亚洲成人最新网站| 精东传媒在线观看| 亚洲免费伊人电影在线观看av| 激情欧美日韩| 91在线高清| 91久久久久久| 在线观看免费亚洲| 亚洲激情午夜| 国产在线制服美女| 性亚洲最疯狂xxxx高清| 一区视频在线播放| 深夜福利一区| 美乳在线观看| 动漫3d精品一区二区三区 | 成人精品视频一区二区三区| 午夜av在线播放| 伊人av成人| 精品视频偷偷看在线观看| 精品一区二区免费在线观看| 国产乱子伦三级在线播放| 国产精品久久久久久久久久三级 | 国产成人超碰人人澡人人澡| 91cn在线观看| 水蜜桃色314在线观看| 色播久久人人爽人人爽人人片视av| 国产精品白丝av| 日韩视频一二区| 五月婷婷之综合激情| 精品国产sm最大网站免费看| 美女网站久久| 日韩影院在线| 国产视频一二区| 亚洲高清在线播放| 自拍偷拍亚洲欧美| 国产精品乱子久久久久| 国产h片在线观看| 久久久久欧美| www国产亚洲精品久久网站| 久久一日本道色综合久久| 日韩欧国产精品一区综合无码| av成人在线看| 色网站在线免费观看| 视频一区二区三| 一区二区三区精品久久久| 亚洲国产第一| 久久香蕉精品香蕉| 青春有你2免费观看完整版在线播放高清 | 亚洲最大成人网色| 久久九九热免费视频| 丁香五六月婷婷久久激情| 国产成人av一区二区三区在线| 免费观看成人性生生活片| 一二三四社区在线视频6| 亚洲精品乱码久久久久久蜜桃91 | 亚洲黄色影片| 97久久精品一区二区三区的观看方式| 最新av电影| 久久精品午夜福利| 一本久道久久综合| 国产综合18久久久久久| 国产精品jvid在线观看蜜臀| 少妇精69xxtheporn| 精品日韩欧美一区二区| 欧美性高潮在线| 欧美性xxxxx极品娇小| 一区二区三区精品在线| 国产91丝袜在线18| 蜜臀久久99精品久久久画质超高清| 亚洲美女91| av亚洲精华国产精华精华| 欧美日韩亚洲国产精品| 日本在线天堂| 久久这里精品国产99丫e6| 亚洲激情免费观看| 不卡的电视剧免费网站有什么| 麻豆一二三区精品蜜桃| 99精品人妻少妇一区二区| 精品亚洲永久免费精品| 禁久久精品乱码| h视频在线免费| 欧美在线一二三区| 一区二区三区久久精品| 国产精品久久久久久久久免费丝袜 | 久久99精品国产.久久久久久| 亚洲视频一起| 伊人久久精品一区二区三区| 日本免费在线视频| 伊人永久在线| 精品视频一二区| 性欧美孕妇孕交| 亚洲电影小说图| 日本一区二区三区中文字幕| 日本三级视频在线观看| 日本在线丨区| av在线中文| 日韩精品无码一区二区三区免费| 国内视频一区二区| 国内精品二区| 超碰97在线人人| 久久一区二区三区欧美亚洲| 国产精品黄色av| 91精品国产91久久久| 久久精品国产亚洲| 欧美肥婆姓交大片| 国精产品一区一区三区有限在线| 亚洲制服丝袜在线| 国产精品久久久久国产精品日日| 中文字幕第一区| 亚洲六月丁香色婷婷综合久久| 欧美韩国一区二区| 亚洲国产精品久久久久秋霞不卡 | 中国china体内裑精亚洲片| 免费99精品国产自在在线| 欧美国产日韩在线| 国产精品国产三级欧美二区| 精品一区二区三区三区| 精品久久一区二区三区| 亚洲女人初尝黑人巨大| 久久久久在线观看| 成人久久一区二区三区| 国产精品日韩久久久久| 亚洲精品欧美日韩| 国产一二三区在线播放| 天天干天天操天天做| 在线观看特色大片免费视频| 欧美在线极品| 夜夜嗨av一区二区三区四区| 国产成人精品影院| 精品一区二区三区免费毛片爱| 久久综合99re88久久爱| 欧美成人精品3d动漫h| 亚洲图片都市激情| 美女91在线|