Regular languages can be described using regular grammars, regular expressions, or finite automata. A regular grammar contains productions of the form A->aB or A->a where A and B are nonterminals and a is a terminal. A language is regular if it can be generated by a regular grammar. Regular expressions describe languages using operators like concatenation, union, and Kleene star. Finite automata are machines that accept or reject strings using a finite number of states. The three models are equivalent in that they can generate the same regular languages.