<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=The_Power_of_10</id>
	<title>The Power of 10 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=The_Power_of_10"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=The_Power_of_10&amp;action=history"/>
	<updated>2026-07-17T23:00:20Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=The_Power_of_10&amp;diff=4132710&amp;oldid=prev</id>
		<title>imported&gt;InternetArchiveBot：​补救4个来源，并将0个来源标记为失效。) #IABot (v2.0.9.3</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=The_Power_of_10&amp;diff=4132710&amp;oldid=prev"/>
		<updated>2023-01-23T17:59:05Z</updated>

		<summary type="html">&lt;p&gt;补救4个来源，并将0个来源标记为失效。) #IABot (v2.0.9.3&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;The Power of 10&amp;#039;&amp;#039;&amp;#039;是[[NASA]][[喷气推进实验室]]（JPL）的Gerard J. Holzmann在2006年所提出，有關軟體可靠性的原則&amp;lt;ref name=&amp;quot;PowerOf10&amp;quot;&amp;gt;{{Cite web |url=http://web.eecs.umich.edu/~imarkov/10rules.pdf |title=The Power of 10: Rules for Developing Safety-Critical Code |access-date=2022-12-20 |archive-date=2022-09-02 |archive-url=https://web.archive.org/web/20220902092203/https://web.eecs.umich.edu/~imarkov/10rules.pdf |dead-url=no }}&amp;lt;/ref&amp;gt;。此原則的目的是要消除[[C語言]]中不容易[[代碼評審|評審]]，或不容易進行[[靜態程序分析|靜態分析]]的程式寫法。此原則是補充[[MISRA C]]的內容，後來已整合JPL的{{le|編程規範|Coding conventions|編程標準}}裡&amp;lt;ref name=&amp;quot;JPL&amp;quot;&amp;gt;[https://web.archive.org/web/20111015064908/http://lars-lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf JPL C Coding Standard - JPL Laboratory for Reliable Software]&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
==原則==&lt;br /&gt;
這十條原則是&amp;lt;ref name=&amp;quot;PowerOf10&amp;quot;/&amp;gt;：&lt;br /&gt;
# 不要使用複雜的流程控制，像是[[goto]]或是[[递归 (计算机科学)|递归]]。&lt;br /&gt;
# 所有迴圈都要有固定的上下界，以避免迴圈失控。&lt;br /&gt;
# 不要使用{{le|heap記憶體管理|Manual_memory_management}}。&lt;br /&gt;
# 限制函式的長度，列印後不得超過一頁。&lt;br /&gt;
# 每個函式至少要有二個[[斷言_(程式)#執行期檢查的斷言|執行時檢查的斷言]]（assertion）。&lt;br /&gt;
# 限制資料在程式中的可存取範圍，越小越好。&lt;br /&gt;
# 有傳回值的函式，要檢查函式的傳回值，不然就要轉型成void，表示其傳回值沒有意義。&lt;br /&gt;
# 謹慎的使用[[預處理器]]。&lt;br /&gt;
# [[指標_(電腦科學)|指標]]只能使用一個[[解引用运算符]]&amp;quot;*&amp;quot; ，而且不要使用[[函数指针]]。&lt;br /&gt;
# 在編譯時開啟所有的警告（warnings），需要處理完所有的警告，才能發行軟體。&lt;br /&gt;
&lt;br /&gt;
==應用==&lt;br /&gt;
NASA曾研究[[豐田汽車]]的{{le|电子油门加速器|Electronic throttle control}}[[韌體]]，有243處違反上述的規定&amp;lt;ref&amp;gt;[http://embeddedgurus.com/barr-code/2011/03/unintended-acceleration-and-other-embedded-software-bugs/ Unintended Acceleration and Other Embedded Software Bugs] {{Wayback|url=http://embeddedgurus.com/barr-code/2011/03/unintended-acceleration-and-other-embedded-software-bugs/ |date=20221220085456 }}, March 1st, 2011, by Michael Barr, Embedded Gurus&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web |url=http://www.nhtsa.gov/staticfiles/nvs/pdf/NASA_FR_Appendix_A_Software.pdf |title=NASA Engineering and Safety Center Technical Assessment Report, National Highway Traffic Safety Administration Toyota Unintended Acceleration Investigation, Appendix A |access-date=2022-12-20 |archive-date=2022-12-20 |archive-url=https://web.archive.org/web/20221220085515/https://www.nhtsa.gov/staticfiles/nvs/pdf/NASA_FR_Appendix_A_Software.pdf |dead-url=no }}&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
==相關條目==&lt;br /&gt;
*[[生命攸關系統]]&lt;br /&gt;
*{{le|編程規範|Coding conventions}}&lt;br /&gt;
*[[软件质量]]&lt;br /&gt;
*{{le|軟體保證|Software assurance}}&lt;br /&gt;
&lt;br /&gt;
==延伸閱讀==&lt;br /&gt;
*{{cite journal&lt;br /&gt;
 | author     = G.J. Holzmann&lt;br /&gt;
 | date       = 2006-06-19&lt;br /&gt;
 | title      = The Power of 10: Rules for Developing Safety-Critical Code&lt;br /&gt;
 | journal    = IEEE Computer&lt;br /&gt;
 | volume     = 39&lt;br /&gt;
 | issue      = 6&lt;br /&gt;
 | page       = 95&amp;amp;ndash;99&lt;br /&gt;
 | doi        = 10.1109/MC.2006.212&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
==參考資料==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
==外部連結==&lt;br /&gt;
* [https://opensourcesatellite.org/how-do-you-make-software-reliable-enough-space-travel/ Open Source Satellite: How do you make software that is reliable enough for space missions?] {{Wayback|url=https://opensourcesatellite.org/how-do-you-make-software-reliable-enough-space-travel/ |date=20221220085504 }}&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Power of 10}}&lt;br /&gt;
[[Category:C語言]]&lt;/div&gt;</summary>
		<author><name>imported&gt;InternetArchiveBot</name></author>
	</entry>
</feed>