Abstract

Let ~ be a finite set of symbols, or alphabet. Define ~* to be the set of all finite length strings of symbols in X, including ~, the string of length 0. A language is a subset of X*, for some alphabet ~. Clearly, the natural languages and programming languages are languages in the formal sense. The theory of languages is concerned with the description of languages, their recognition and processing. A language may contain an infinite number of strings, so at the least, one needs a finite description of the language. Particular types of finite descriptions will yield useful properties of the languages they define, especially when the class of languages they define is "small" (i.e., not every language of conceivable interest is described). If C is the class of languages defined by a certain type of description, one would like to know whether membership in C is preserved under various operations. One would like to know that the languages in class C could be recognized quickly and simply, especially if one were attempting to develop a compiling system for a language or languages in C. Also useful are characterizations of languages in C, so one can tell easily if a given language is in class C. Finally, one wants algorithms, if they exist, to answer certain questions about the languages in C, such as: "Is string w in language L?" In this article, we will give the principal methods of describing languages and the principal results concerning each method.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.