作者Asuma (在世界的中心叫賣愛情)
看板Military
標題Re: [新聞] J10vsSU27的對抗比是10:1
時間Fri Jan 5 14:49:29 2007
※ 引述《murkier (札布克汗)》之銘言:
: 殲10的討論,如果不願意看大陸的討論。
: 那就請看台灣軍武狂人 的論壇 裡面的討論。
: http://acewings.com/cobrachen/forum/topic.asp?TOPIC_ID=2818
: 討論共10頁
看到蠻嚴重的錯誤,不過我懶得註冊那邊的帳號
(參與太多地方的討論會把空閒時間吸光的)
就在這邊指正一下
以下是ewings先生提到的:
: C語言是"高階語言",代表接近人類語法,容易寫,功能也多
: 但是這就代表指令無法直接作用在機器上,必需要經過轉譯成為機器能理解的指令,
: 而越"高階",就代表轉譯的過程越複雜,機器必須消耗額外的資源去轉譯,更遭糕的
: 是轉譯會造成指令延遲
: 在PC前你可以忍受電腦一秒鐘後才反應,難道FBW可以忍受飛行員下指令後一秒鐘後
: 飛機才反應嗎?
: 容易用且大家常用的語言不代表他的效率高,效率越高的語言通常都是非常難用
: C語言三行就能運作的指令,在fortun上需要十多行,fortun難寫多了,但是在運算
: 速度上C語言沒得比
: 更難寫難用的組合語言則更快
: 為了性能和可靠度,軍用航電系統沒人在用C語言寫
事實上,控制系統,或是任何內嵌系統的軟體
一定是離線編譯成binary code再上線使用
不會讓機器"消耗額外的資源去轉譯",因為編譯的過程是在桌上型電腦而不是戰機上
(在戰機上搞這種接近virtual machine的線上編譯是浪費資源外加疊床架屋)
桌上型編譯跑個三天三夜也沒關係,重點是最後跑出來binary code
程式放進電腦裡真正使用的時候,其實已經分不出是什麼語言寫的了
有線上編譯的嗎? 幾乎沒有,雖然一開始SUN開發java是有這樣的動機
不過後來顯然是大失敗,所以java到頭來還是在general purpose computing上茁壯
高階語言寫realtime system的確是有問題
不過問題不是在線上編譯,而是因為在設計過程中無法預測實際的反應時間
對於以毫秒計算的loop delay來說風險太大
高階語言的速度快不快也不能一概而論
理論上algorithm一樣的話,用任何語言編出來的binary code應該要一樣大也一樣快
(因為最終要在機器上跑的指令是一樣的)
但是實際上絕對不會如此,因為這牽涉到編譯器的好壞
有些編譯器基於其他考量(例如gcc這種標榜"跨平台通用"的編譯器)
編出來的binary code有時候就不會那麼聰明
一道指令可以完成的事可能會變成好幾道指令的組合,多走很多冤枉路
有些基於特定平台設計的編譯器
編出來的binary code並不會比組語高手寫同樣的運算來得差
(比MIPS賽豬公的時候,測試程式一定會用這種最佳化到極點的編譯器來編)
C,或是其他高階語言,其實在內嵌系統開發上沒那麼萬惡
F-22的航電系統是用美國軍方規定的ADA寫的
你可以去看看ADA的語法,一樣是高階語言,它可沒比C低階喔
用C寫也不是不行,只是以hard realtime system來說
編出來之後一定要人工trace一次,把每一個task花的時間都評估好才行
--
我無法相信ewings先生為什麼會對計算機概論那麼不懂卻用那麼重的口氣回話
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 24.207.236.212
1F:推 ewings:很簡單,因為只是我討厭白目而已.........(茶) 01/05 16:50
2F:→ ewings:況且我講的是特殊硬體的DFBW電腦,而那個白目鬼扯通用軟體 01/05 16:51
3F:→ ewings:為了特殊且少量的硬體撰寫專用編譯器的情況,並不存在 01/05 16:54
4F:推 Lordaeron:軍用的都有軍用的compiler, 都有優化過的, 有專門的廠商 01/05 17:18
5F:→ Lordaeron:在做的, 不會沒有的. 01/05 17:19
6F:推 ewings:所謂的"專門"廠商,就是系統包商,對特定硬體開發編譯器 01/05 17:20
7F:→ ewings:然後同時抓編譯器和程式的Bug,還不如直接用低階語言寫 01/05 17:22
8F:→ ewings:做硬體次系統的幹嘛沒事公開自己的硬體架構讓別間公司來斷 01/05 17:24
9F:→ ewings:掉自己後面軟體升級的獨家生意? 01/05 17:25
10F:推 caml:真是小白。到現在還不知道美國軍機的rtos是用ada寫的。 01/05 18:03
11F:→ caml:中共從以色列搞來的代碼都可能是ada。 01/05 18:05
12F:推 ewings:而有些人更搞不懂有些子系統連Operating System都沒有 01/05 19:52
13F:推 void:竟然有腦殘以為C是運作時才編譯............... 01/06 18:03
14F:→ void:這種人跟別人討論個洨阿.... 01/06 18:03