A language is decidable If a TM recognises the language and goes into an Accept or Reject state. As a dev. I think this is important as it would mean we could determine if a program contains buffer overflows or deadlocks. Also, the following problems are Un-Decidable:
In terms of Decidability what would you say are the key points to Decidability and why is Decidability important (particularly to a developer).
Note: Bullet points are fine in answers - I can look up the topics myself. I just want to know what are the main points.
Maybe this belongs in the cstheory exchange, but I'll have a go at it anyway.
The key point is: some problems are undecidable, i.e. not solvable by an algorithm, so they should be tackled by other methods. Among these problems are many "meta-problems" concerning computer languages, for instance the problem of detecting a virus.
Having determined that a problem is undecidable, there are several possible courses of action:
no answer
when the time runs out.1 to 3 are popular for automated reasoning tools, including program verifiers. 4 is what virus scanners do. 5 is a good choice when allowing users to write scripts to automate a larger system; instead of giving them full JavaScript/Scheme/Lua/whatever, give them a restricted subset that does not allow unbounded recursion/loops.