Difference between revisions of "Formal grammar"
Karl Jones (Talk | contribs) (→See also) |
Karl Jones (Talk | contribs) (→External links) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 32: | Line 32: | ||
== See also == | == See also == | ||
+ | * [[Attribute grammar]] | ||
+ | * [[Backus–Naur Form]] | ||
* [[Formal language]] | * [[Formal language]] | ||
* [[Formal system]] | * [[Formal system]] | ||
Line 37: | Line 39: | ||
* [[Mathematical logic]] | * [[Mathematical logic]] | ||
* [[Theoretical computer science]] | * [[Theoretical computer science]] | ||
+ | * [[Van Wijngaarden grammar]] | ||
== External links == | == External links == | ||
* [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.
Contents
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:
- Theoretical computer science
- Theoretical linguistics
- Formal semantics
- Mathematical logic
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
- Attribute grammar
- Backus–Naur Form
- Formal language
- Formal system
- Mathematics
- Mathematical logic
- Theoretical computer science
- Van Wijngaarden grammar
External links
- Formal grammar @ Wikipedia