จำเป็นต้องมีโปรแกรมหรือไม่ ในคำอื่น ๆ เป็นโปรแกรมที่ทำงานตลอดเวลาพฤติกรรมที่ไม่ได้กำหนดทางเทคนิค? โปรดทราบว่านี่ไม่เกี่ยวกับลูปที่ว่างเปล่า การพูดเกี่ยวกับโปรแกรมที่ทำ "สิ่ง" (เช่นพฤติกรรมที่สังเกตได้) ตลอดไป
เช่นบางสิ่งเช่นนี้
int main()
{
while (true)
{
try
{
get_input(); // calls IO
process();
put_output(); // calls IO, has observable behavior
// never break, exit, terminate, etc
} catch(...)
{
// ignore all exceptions
// don't (re)throw
// never go out of loop
}
}
}
นี่เป็นคำถามเชิงวิชาการมากกว่าเนื่องจากผู้รวบรวมสติทั้งหมดจะสร้างโค้ดที่คาดหวังสำหรับโปรแกรมประเภทข้างต้น (สมมติว่าไม่มีแหล่งอื่นของ UB) และแน่นอนว่ามีโปรแกรมมากมายที่ไม่เคยหยุดทำงาน (ระบบปฏิบัติการ, เซิร์ฟเวอร์, เซิร์ฟเวอร์) อย่างไรก็ตามมาตรฐานบางครั้งก็แปลก
แทนเจนต์: คำจำกัดความจำนวนมาก (บาง?) ของ "อัลกอริทึม" ต้องการให้อัลกอริทึมต้องยุติเช่นชุดของการดำเนินการที่ไม่เคยยุติจะไม่ถือว่าเป็นอัลกอริทึม
สัมผัสวง ปัญหาการหยุดชะงักระบุว่าไม่มีอัลกอริทึมที่มีอยู่เพื่อตรวจสอบว่าโปรแกรมโดยพลการเสร็จสิ้นการป้อนข้อมูล อย่างไรก็ตามสำหรับโปรแกรมนี้โดยเฉพาะเนื่องจากไม่มีสาขาที่นำไปสู่การออกจากตัวหลักคอมไพเลอร์สามารถระบุได้อย่างง่ายดายว่าโปรแกรมจะไม่มีวันสิ้นสุด อย่างไรก็ตามเรื่องนี้ไม่เกี่ยวข้องเนื่องจากคำถามคือทนายความภาษา