Context Free Grammar (CFG) for Chemistry
Get FREE domain for 1st year and build your brand new site
In this article, we have presented the Context Free Grammar for Chemical Formula like MnO4- in Chemistry. This will give us a strong idea of applying ideas of Context Free Grammar in Theory of Computation in other fields like Chemistry.
Prerequisite: Context Free Grammar
Table of contents:
- Context Free Grammar for Chemistry
- Example of using this CFG
Let us get started.
Context Free Grammar for Chemistry
The Context Free Grammar for Chemistry is as follows:
G = (V, Σ, R, S) where:
- V is the set of variables.
V = {Form, Cmp, Ion, Elem, IonNum, Num}
You can make meaning of the variables as follows:
-
Form means Formulation and is the starting variable.
-
Cmp means Compound
-
Ion means Ions can it can be a single charge like +, - or multiple charge.
-
Num means a constant number that can be 1 or IonNum
-
IonNum means the Ionization Numbers. All integers from 2 and onwards should be added.
-
Elem means elements like Hydrogen (H), Helium (He) and others. All elements in the Periodic table needs to be added as a rule in this.
-
Term is a terminal variable and results in a Compound or Element
-
Σ is the set of terminals.
Σ = {All elements from Periodic table, All integers starting from 1, +, -}
Σ = {H, He, Li, Be, B, C, Mg, O, ..., 1, 2, 3, 4, ..., +, -}
-
S is the starting variable. S = Form.
-
R is the set of rules.
The Rules are:
Form -> Cmp | Cmp Ion
Cmp -> Term | Term Num | Cmp Cmp
Term -> Elem | (Cmp)
Elem -> H | He | Li | Be | B | C | Mg | ...
Ion -> + | - | IonNum + | IonNum -
IonNum -> 2 | 3 | 4 | ...
Num -> 1 | IonNum
Chemical Formulae that can be formed using the above rules are:
- Cu3(CO3)2(OH)2
- MnO4
- H2O
- S2-
Example of using this CFG
Let us use the above Rules of our Context Free Grammar G for Chemistry to form the formula MnO4-:
Form
=> Cmp Ion
=> Cmp Cmp Ion
=> Cmp Term Num Ion
=> Term Term Num Ion
=> Elem Term Num Ion
=> Mn Term Num Ion
=> Mn Elem Num Ion
=> MnO Num Ion
=> MnO Ion Num Ion
=> MnO4 Ion
=> MnO4-
With this article at OpenGenus, you must have the complete idea of forming a Context Free Grammar for Chemical Formula in Chemistry.