-1

I am a bit confused with the difference between regular and context free languages. A recursive language is a language, for which there exits a TM which always halts. I am facing problem in proving the above statement.

  • Welcome to StackOverflow. Please read and follow the posting guidelines in the help documentation. [on topic](http://stackoverflow.com/help/on-topic) and [how to ask](http://stackoverflow.com/help/how-to-ask) apply here. StackOverflow is not a design, coding, research, or tutorial service. – Prune May 30 '17 at 20:26
  • I'm voting to close this question as off-topic because it's about pure CS theory and therefore a better fit at cs.stackexchange.com. – templatetypedef May 31 '17 at 20:06

1 Answers1

0

Regular languages are accepted by finite automata, which have no usable memory. Context-free languages are accepted by pushdown automata, which have a single stack (supporting push/pop) for memory. A recursive language is one that can be decided by a Turing machine, which has a (potentially) infinite tape for memory. Regular languages are recursive because you can make a TM equivalent to a FA by not using the tape. Context free languages are recursive because you can make a TP equivalent to a PDA by using the tape as a stack: only reading and writing to the last non-blank symbol. This lacks details but can be made into a rigorous proof of the claims you are asking be proven.

Patrick87
  • 27,682
  • 3
  • 38
  • 73