Difference between revisions of "Formal grammar"

From Wiki @ Karl Jones dot com
Jump to: navigation, search
(See also)
(External links)
 
(One intermediate revision by the same user not shown)
Line 32: Line 32:
 
== See also ==
 
== See also ==
  
 +
* [[Attribute grammar]]
 
* [[Backus–Naur Form]]
 
* [[Backus–Naur Form]]
 
* [[Formal language]]
 
* [[Formal language]]
Line 43: Line 44:
  
 
* [https://en.wikipedia.org/wiki/Formal_grammar Formal grammar] @ Wikipedia
 
* [https://en.wikipedia.org/wiki/Formal_grammar Formal grammar] @ Wikipedia
 +
 +
[[Category:Computer science]]
 +
[[Category:Language]]

Latest revision as of 05:44, 21 April 2016

In formal language theory, a grammar (when the context is not given, often called a formal grammar for clarity) is a set of production rules for strings in a formal language.

Rules

The rules describe how to form strings from the language's alphabet that are valid according to the language's syntax.

Describes form, not meaning

A grammar does not describe the meaning of the strings or what can be done with them in whatever context -- only their form.

Fields and applications

Formal language theory, the discipline which studies formal grammars and languages, is a branch of applied mathematics.

Applications are found in various fields, including:

Rewriting strings

A formal grammar is a set of rules for rewriting strings, along with a "start symbol" from which rewriting starts. Therefore, a grammar is usually thought of as a language generator. However, it can also sometimes be used as the basis for a "recognizer"—a function in computing that determines whether a given string belongs to the language or is grammatically incorrect. To describe such recognizers, formal language theory uses separate formalisms, known as automata theory. One of the interesting results of automata theory is that it is not possible to design a recognizer for certain formal languages.

Parsing

Parsing is the process of recognizing an utterance (a string in natural languages) by breaking it down to a set of symbols and analyzing each one against the grammar of the language. Most languages have the meanings of their utterances structured according to their syntax -- a practice known as compositional semantics.

As a result, the first step to describing the meaning of an utterance in language is to break it down part by part and look at its analyzed form (known as its parse tree in computer science, and as its deep structure in generative grammar).

See also

External links