能否通過邏輯程式設計消滅程式BUG?

時間 2021-05-12 03:56:08

1樓:Alvin Chen

讓邏輯清楚只是軟體工程很微不足道的功能之一。軟體工程最主要的目的是用科學方法管理軟體開發流程使其可控度、可估算度提高。邏輯清楚只是使這兩個度提高的基礎之一。

軟體工程的核心還是在專案流程的管理上,程式本身的邏輯只是特別微觀的一部分。

2樓:

你怎麼證明Coq,Isabelle之類的工具是對的?

Programming is the art of adding bugs to an empty text file.

—— Louis Srygley

3樓:卡拉迦迪斯

可以當我們把 BUG定義為人為造成的邏輯錯誤的時候,邏輯程式設計就可以消滅這些BUG了……

UML啊 OOP啊等一系列程式設計概念

雖然不是幹這個用的,但確實起到了這種作用……把複雜問題簡單化,然後規避邏輯錯誤……其他答主想的有些太複雜了……

4樓:

現在不可以,將來也不可能,有這麼一群蛋痛的計算機科學家證明了圖靈計算機上一定不能完成的事,可參閱「停機問題」,現已證明「停機問題」不可解,而找BUG可視為「停機問題」的父類集合,因為程式無法結束本身就是乙個BUG,也就是說,這種程式理論上根本不存在

5樓:James Swineson

我之前用easyC在機械人上面程式設計,由於我是我校第乙個會easyC的(當時老師們還不是很會),我做了以下工作:(以下內容經過我校某個很厲害的老師優化,增加了很多東西)

1.把所有基本動作模組化(前進/轉彎,搖臂動作,輔助履帶動作),用簡單的英文表達,如

#define up 1

#define down -1

#define in 1

#define out -1

voidgo(

intleft_speed

,int

right_speed

,int

control_mode

,int

control_value

)void

arm(

intspeed

,int

direction

,int

time

)void

track

(int

speed

,int

direction

,int

time

)這樣的話一目了然。(我應該沒寫錯語法吧……)

2.不同事件流程分離。

然後寫下來就是這個樣子:

void

task1

(void

)3.輪詢式偽多工。

以上函式的最後乙個引數都是設定總時長(對於前進還可以檢測距離),執行的時候靠乙個無限迴圈不斷輪詢各個後台函式,進行獲取當前任務,檢測剩餘時間,判斷是否到達,然後輸出。偵錯程式也是以乙個新進執行緒的方式注入主程序。

其實各種模組寫好以後,再寫task的時候就是完全符合做事邏輯的東西了。

6樓:隨心所往

簡單的說就是不可能。總會有很多操作是邏輯上都合理,但是結果有差異的。

比如a=b+c和a=b*c,如果你想要的前者,但是寫成了後者那語言本身如何檢查的出來呢?

C語言能否通過結構體實現物件導向程式設計?

藍彼得 能!而且在有些嵌入式系統裡就是這麼做的,因為效能和資源。實際上物件導向語言最終也是通過過程式語言來實現的。用C語言實現物件導向,首先要手動的構建一些基礎設施,比如你要有乙個基類,用巨集 結構和函式指標來封裝基本的物件導向功能。繼承乙個類要遵循你自己定義的程式設計規範,基本上就是繼承父類的結構...

開水能否消滅病毒?

YZCheng 消毒都是需要時間的,當溫度和時間足夠時可以消毒,但是用開水燙一下消毒效果很不理想。當然假如100攝氏度開水 溫度恆定 持續較長時間可以滅活病毒。不同病毒的耐熱程度不同,消毒的時間也不同。回答僅供參考 TODAYNOW 高中生物選修一 高壓蒸汽滅菌 1.排氣式壓力蒸汽滅菌器 壓力103...

細胞能否消滅已經侵入的病毒?

趙泠 能,而且十分常見。規律間隔成簇短回文重複序列 規律間隔成簇短回文重複序列相關蛋白系統 或相關核酸酶系統 CRISPR Cas 系統 是細菌和古菌的後天免疫系統,能夾帶曾經接觸過的外來核酸的片段,用來偵測並摧毀該種核酸鏈。這可以消滅已經侵入自己細胞內的一些病毒 噬菌體或外來質粒等 目前已發現三種...