Looking for languages that are not Turing complete
I know a little about what is a turing-machine and a turing-complete language, but t开发者_如何学编程o understand better, could someone give examples of languages that are not Turing complete? (maybe even machines that are not Turing, as well?)
Regular expressions, in the formal definition, consisting only of:
- concatenation ( ab )
- unbounded repetition ( a* )
- alternation ( a|b )
- grouping ( (ab)|(cd) )
can only recognise regular languages. A Turing-complete programming language can recognise recursively-enumerable languages.
An example is that regular expressions cannot tell you if a string consists of matched pairs of parentheses: eg ()(())
is accepted while ()((())()
is rejected, while Turing-complete programming languages can.
(Note that regexes in modern programming languages are more powerful than the formal academic definition of regular expressions. Some may even be Turing complete.)
Regular languages - those that can be described as regular expressions - are not Turing complete.
Markup languages (used for describing data, not computation) like XML and JSON are not Turing complete.
精彩评论