ArticleslgStudy

computer science

Recursively enumerable language

Recursively enumerable language is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Recursively enumerable language rather than just read about it. In short: In mathematics, logic and computer science, a formal language is called recursively enumerable (also recognizable, partially decidable, semidecidable, Turing-acceptable or Turing-recognizable) if it is a recursively enumerable subset in the set of all possible words over the alphabet of the language, i.e., if there exists a Turing machine which will enumerate all valid strings of the language. These are generated by…

Key takeaways

  • Recursively enumerable language belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Recursively enumerable language to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Recursively enumerable language from memory before moving on to harder problems.

Reference excerpt

In mathematics, logic and computer science, a formal language is called recursively enumerable (also recognizable, partially decidable, semidecidable, Turing-acceptable or Turing-recognizable) if it is a recursively enumerable subset in the set of all possible words over the alphabet of the language, i.e., if there exists a Turing machine which will enumerate all valid strings of the language. These are generated by unrestricted grammars. Recursively enumerable languages are known as type-0 languages in the Chomsky hierarchy of formal languages. All regular, context-free, context-sensitive and recursive languages are recursively enumerable. The class of all recursively enumerable languages is called RE.

Definitions There are three equivalent definitions of a recursively enumerable language:

A recursively enumerable language is a recursively enumerable subset in the set of all possible words over the alphabet of the language. A recursively enumerable language is a formal language for which there exists a Turing machine (or other computable function) which will enumerate all valid strings of the language. Note that if the language is infinite, the enumerating algorithm provided can be chosen so that it avoids repetitions, since we can test whether the string produced for number n is "already" produced for a number which is less than n. If it already is produced, use the output for input n+1 instead (recursively), but again, test whether it is "new". A recursively enumerable language is a formal language for which there exists a Turing machine (or other computable function) that will halt and accept when presented with any string in the language as input but may either halt and reject or loop forever when presented with a string not in the language. Contrast this to recursive languages, which require that the Turing machine halts in all cases. All regular, context-free, context-sensitive and recursive languages are recursively enumerable. Post's theorem shows that RE, together with its complement co-RE, correspond to the first level of the arithmetical hierarchy.

Example The set of halting Turing machines is recursively enumerable but not recursive. Indeed, one can run the Turing machine and accept if the machine halts, hence it is recursively enumerable. On the other hand, the problem is undecidable. Some other recursively enumerable languages that are not recursive include:

Post correspondence problem Mortality (computability theory) Entscheidungsproblem

Closure properties Recursively enumerable languages (REL) are closed under the following operations. That is, if L and P are two recursively enumerable languages, then the following languages are recursively enumerable as well:

the Kleene star L ∗ {\displaystyle L^{*}} of L the concatenation L ∘ P {\displaystyle L\circ P} of L and P the union L ∪ P {\displaystyle L\cup P}

the intersection L ∩ P {\displaystyle L\cap P} . Recursively enumerable languages are not closed under set difference or complementation. The set difference L − P {\displaystyle L-P} is recursively enumerable if P {\displaystyle P} is recursive. If L {\displaystyle L} is recursively enumerable, then the complement of L {\displaystyle L} is recursively enumerable if and only if L {\displaystyle L} is also recursive.

See also Computably enumerable set Recursion

Sources Sipser, Michael (1997). Introduction to the Theory of Computation (1st ed.). PWS Publishing. ISBN 978-0-534-94728-6. (accessible to patrons with print disabilities) Kozen, D.C. (1997), Automata and Computability, Springer.

External links Complexity Zoo: Class RE

Worked examples

Example 1 — a first encounter with Recursively enumerable language

Start with the simplest possible case. Write down what Recursively enumerable language claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Recursively enumerable language before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Recursively enumerable language ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Recursively enumerable language

In research
Recursively enumerable language appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Recursively enumerable language in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Recursively enumerable language is common in secondary-school and first-year university syllabi. It links to neighbouring topics Alan Turing, Formal languages, Mathematics of computing, so understanding it makes those chapters shorter.
In everyday life
Look for Recursively enumerable language outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Recursively enumerable language in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Recursively enumerable language means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Recursively enumerable language out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Recursively enumerable language in simple terms?

In mathematics, logic and computer science, a formal language is called recursively enumerable (also recognizable, partially decidable, semidecidable, Turing-acceptable or Turing-recognizable) if it is a recursively enumerable subset in the set of all possible words over the alphabet of the languag…

Why does Recursively enumerable language matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Recursively enumerable language?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Recursively enumerable language.

Tags

  • Alan Turing
  • Formal languages
  • Mathematics of computing
  • Theory of computation

Keep exploring