About

A regular language is a language that can be described by regular expressions.

A language which cannot be described by a regular expression is called non-regular.

Context Free Grammar

Regular expressions are not very powerful at describing languages mostly due to their lack of recursion definition.

Context-free grammar(CFG) has been created to resolve this problem and defines any kind of recursive language.

A language is also regular, if its syntax can be expressed by a single context free expression. (ie they can be described by finite automata)

The requirement that a single equation suffices also implies that only terminal symbols occur in the expression. Such an expression is called a regular expression.

Programs are particularly simple and efficient:

  • for the recognition of regular sentences
  • ie for the determination of the structure of the sentence,
  • ie for the determination of whether the sentence is well-formed

Via Memory definition

If the algorithm takes:

  • a fixed, finite amount of memory, independent of the size of the input string, then the language is regular.
  • a memory amount that depends on the input string size, then the language is non-regular

1) 2)

2)
Chapter 2 - Book - Hopcroft, Motwani, Ullman, Automata Theory, Languages, and Computation 3rd Edition. pdf