Recursive language: Difference between revisions

Content deleted Content added
Change parenthetical references.
Examples: suggest to rename the two constants "c" to distinguish from each other (and from alphabet symbol "c")
 
(15 intermediate revisions by 6 users not shown)
Line 1:
{{Short description|Formal language in mathematics and computer science}}
{{About|a class of formal languages as they are studied in mathematics and theoretical computer science|computer languages that allow a function to call itself recursively |Recursion (computer science)}}
 
In [[mathematics]], [[logic]] and [[computer science]], a [[formal language]] (a [[set (mathematics)|set]] of finite sequences of [[symbol (formal)|symbol]]s taken from a fixed [[alphabet (computer science)|alphabet]]) is called '''recursive''' if(or it''decidable'') language is a [[recursive set|recursive subset]] of the set[[Kleene closure]] of allan possible[[Alphabet finite sequences over the(formal languages)|alphabet of the language]]. Equivalently, a [[formal language]] is '''recursive''' if there exists a Turing machine that, when[[Decider given(Turing amachine)|decides]] finitethe sequence of symbols as input, always halts and accepts it if it belongs to theformal language and halts and rejects it otherwise.{{sfnp|Sipser|2012}} In [[Theoreticaltheoretical computer science]], such always-halting Turing machines are called [[total Turing machine]]s or '''algorithms'''.{{sfnp|Sipser|1997}} Recursive languages are also called '''decidable'''.
 
The concept of '''decidability''' may be extended to other [[models of computation]]. For example, one may speak of languages decidable on a [[non-deterministic Turing machine]]. Therefore, whenever an ambiguity is possible, the synonym used for "recursive language" is '''Turing-decidable language''', rather than simply ''decidable''.
Line 13 ⟶ 14:
There are two equivalent major definitions for the concept of a recursive language:
 
# A recursive formal language is a [[recursive set|recursive]] [[subset]] inof the [[set (mathematics)|set]] of all possible words over thefinite-length [[alphabetformal language|words]] ofover thean [[alphabet (formal languagelanguages)|languagealphabet]].
# A recursive language is a [[formal language]] for which there exists a [[Turing machine]] that, when presented with any finite input [[literal string|string]], halts and accepts if the string is in the language, and halts and rejects otherwise. Thedecider (Turing machine always halts: it is known as a [[Machine that always halts)|deciderdecides]] and is said to ''decide'' the recursive languageit.
 
ByOn the secondother definitionhand, anywe can show that a [[decision problem]] canis bedecidable shownby toexhibiting bea decidableTuring bymachine exhibitingrunning an [[algorithm]] for it that terminates on all inputs. An [[undecidable problem]] is a problem that is not decidable.
 
== Examples ==
Line 25 ⟶ 26:
is context-sensitive and therefore recursive.
 
Examples of decidable languages that are not context-sensitive are more difficult to describe. For one such example, some familiarity with [[mathematical logic]] is required: [[Presburger arithmetic]] is the first-order theory of the natural numbers with addition (but without multiplication). While the set of [[First-order_logic#Formulas|well-formed formulas]] in Presburger arithmetic is context-free, every deterministic Turing machine accepting the set of true statements in Presburger arithmetic has a worst-case runtime of at least <math>2^{2^{cnpn}}</math>, for some constant ''cp''>0.{{sfnp|Fischer|Rabin|1974}} Here, ''n'' denotes the length of the given formula. Since every context-sensitive language can be accepted by a [[linear bounded automaton]], and such an automaton can be simulated by a deterministic Turing machine with worst-case running time at most <math>cq^n</math> for some constant ''cq'' ,{{citation neededsfnp|date=March 2015Book|1974}}, the set of valid formulas in Presburger arithmetic is not context-sensitive. On a positive side, it is known that there is a deterministic Turing machine running in time at most triply exponential in ''n'' that decides the set of true formulas in Presburger arithmetic.{{sfnp|Oppen|1978}} Thus, this is an example of a language that is decidable but not context-sensitive.
 
== Closure properties ==
Line 45 ⟶ 46:
*[[Recursion]]
 
== ReferencesNotes ==
{{reflist}}
 
==References==
*{{cite journal
| last = Book | first = Ronald V. | author-link = Ronald V. Book
| doi = 10.1016/S0022-0000(74)80008-5
| journal = [[Journal of Computer and System Sciences]]
| mr = 366099
| pages = 213–229
| title = Comparing complexity classes
| volume = 9
| year = 1974}}
* {{cite journal | last = Chomsky | first = Noam | year = 1959 | title = On certain formal properties of grammars | journal = Information and Control | volume = 2 | issue = 2 | pages = 137–167 | doi = 10.1016/S0019-9958(59)90362-6 | doi-access = }}
* {{cite journal | first1=Michael J. | last1=Fischer | authorlink1=Michael J. Fischer | first2=Michael O. | last2=Rabin | authorlink2=Michael O. Rabin | date=1974 | title=Super-Exponential Complexity of Presburger Arithmetic | url=http://www.lcs.mit.edu/publications/pubs/ps/MIT-LCS-TM-043.ps | journal=Proceedings of the SIAM-AMS Symposium in Applied Mathematics | volume=7 | pages=27–41 }}
*{{cite journal | last1 = Oppen | first1 = Derek C. | year = 1978 | title = A 2<sup>2<sup>2<sup>''pn''</sup></sup></sup> Upper Bound on the Complexity of Presburger Arithmetic | journal = J. Comput. Syst. Sci. | volume = 16 | issue = 3| pages = 323–332 | doi = 10.1016/0022-0000(78)90021-1 | doi-access = free }}
* {{Cite book |last=Sipser | first = Michael | year = 1997 | title = Introduction to the Theory of Computation | publisher = PWS Publishing | chapter = Decidability | pages = [https://archive.org/details/introductiontoth00sips/page/151 151–170] | isbn = 978-0-534-94728-6 | author-link = Michael Sipser | chapter-url-access = registration | chapter-url = https://archive.org/details/introductiontoth00sips/page/151 }}
* {{Cite book | last=Sipser | first=Michael | year=2012 | title=Introduction to the Theory of Computation | publisher=Cengage Learning | chapter=The Church-Turing Thesis | pages=170 | isbn=978-1-133-18779-0 | author-link=Michael Sipser}}
 
{{Formal languages and grammars}}