Can a CFG (Context Free Phrase Structure Grammar) express the application of phonological rules? (This question arose in the comments to another question about CFG.) My answer is yes, it can, in some cases, at least.

My answer, to be given below, has the form of assuming that a context free language without a certain example context sensitive phonological rule (n->m/_p) is context free that a CFG can be constructed for a corresponding language which is the same except for reflecting the application of the phonological rule. That will show that the language reflecting the application of the rule is still context free.

I'm not aware of this question being asked or answered in the linguistic literature, although in his book The Organization of Phonology, Stephen Anderson considers a related question, which is whether phonological features have real numbers as specifications.

  • 2
    Presumably you will edit the second paragraph, which is presently hard to parse.
    – user6726
    Feb 18, 2018 at 2:19
  • 1
    I assume that your theory also allows context-sensitive metarules.
    – user6726
    Feb 18, 2018 at 15:46
  • @user6726, Yes. Taking "metarule" to be a rule which applies to a grammar rather than forms generated by a grammar, the example I'm starting to work out in the answer I'm giving, n->m/_p is such a rule.
    – Greg Lee
    Feb 18, 2018 at 18:05
  • 1
    I am afraid you are mixing up the intuitive meaning of "context sensitive" with the formal definition of a "context free grammar". The quoted phonological rule (replace n with m when followed by p) can be expressed in a context free manner. Feb 18, 2018 at 18:58
  • @jknappen, I don't see how. I understand how the effect of "n→m/_p" can be gotten with a different means, but under what definition of "context free rule" can "n p → m p" be a context free rule?
    – user6726
    Feb 18, 2018 at 19:45

4 Answers 4


The only issue with encoding phonological alternations in CFG is unbounded dependencies: in whatever way GPSG manages that issue, that would be required for phonological relations as well. In explicating this, I will speak in terms of "words" though the term "signs" might be better, to generalize over words, larger-than-word chunks, and morphemes. The set of words in a language is finite, and each has a finite length. Therefore each word has a finite set of variants, Wα1, Wα2... Wαi... In the worst case, the set of rules introducing Wα have to be pretty specific, e.g. X → Wα2 Wβ5: there is a finite set of such rules. The realization rules then would be e.g. Wα1 → [don], Wα2 → [dom], Wβ1 → [pan], Wβ2 → [pam], Wγ1 → [kan] and the allomorph-selection rules would tell you to select Wα1 before Wβ1 and Wβ2 but not Wγ1. So X → Wα1 Wβ1; X → Wα1 Wβ2; X → Wα2 Wγ1.

A minor complication arises when the triggering word is not adjacent to the target, but this simply requires a few more rules: X → Wα1 Wδ1 Wβ1; X → Wα1 Wδ1 Wβ2; X → Wα2 Wδ1 Wγ1. Phonology has unbounded dependencies. I can't say that I understand how unbounded dependencies are handled in GPSG, but whatever the technology is for obvious syntax, you do the same with phonology. There may be ways to tidy up the system of rules so that you have something which more directly expresses the generalization underlying vowel harmony, for example. Context sensitive metarules that generate sets of rules would be useful.

The rules of this system conform to the requirements of a type-2 grammar: A → γ where A is a nonterminal and γ is a string of terminals and non-terminals. (Graphically I used sequences of letters such as Wα1 for convenience, rather than introducing many new letters like "䝿": hopefully it is obvious that the rule "Wβ1 → [pan]" is of type 2, as is obvious if I re-write it as "䝿 → [pan]").

This method can work for absolute, symbolic distinctions, but not for continuous real functions – i.e. phonetic implementation. For example, in the production of "extreme" in English, for dialects with rounding of r, lip protrusion starts at some point before r and increases over time, reaching a maximum at the end of r. Unless you settle for a close-enough finite set of time-instants, you can't expand the grammar to include selection of "...Wα1-at-40msc Wα1-at-41msc..." as an expansion of Wα1, since you skipped infinitely many times that exist between 40 and 41. But, the question asks about phonology and not phonetics, and phonology does not face the problem of infinitely subdividing time: it stops at the segment.

In a related vein, Anderson in Organization of phonology revises the SPE theory of feature coefficients so that rather that mapping + and - to 1, 2, 3, 4..., phonetic values range from 0 to 1. There is no representation of time in this theory, so no issue of continuously subdividing time. If Plougrescant Breton has rules that assign [0nasal], [.3nasal], [.5nasal], [.7nasal] depending on context, the phrase structure rules can simply be expanded to select [.5nasal] in the relevant context. The number of actual real values is determined by the number of rules, and it will be small. though more than 2. In fact, there isn't a compelling argument for using reals, and if you multiply his phonetic reals by 10, you get integers – nothing that he says depends on phonetic feature coefficients being reals.

  • Yes, this is a very good answer. I hope to elaborate my own answer to deal with unbounded dependencies. As you say, that is a crucial issue. The short answer is that GPSG describes unbounded dependencies using "feature percolation" up and down tree structures, and in the phonological case the same technique can be used.
    – Greg Lee
    Feb 19, 2018 at 17:27

In fact, something even more restricted the a Context Free Grammar, namely a Finite State Transducer (FST), has been successfully employed in research on phonology and on sound shifts in historical linguistics. There a lots of groups around the world working with this.

A rule like n->m/_p can be expressed by a finite state transducer as long as it is not applied recursively, i.e., to the string produced after the application of the rule.Note also, that the notation n->m/_p is already the notation of a rule for a popular FST. Despite superficial similarity with the notation of rules for Context Sensitive Grammars (CSG), it isn't the same thing. There are no symbols of CSG here.

  • Since every regular grammar is a CFG, if you are saying that a regular grammar can express certain phonological rules, you seem to be agreeing with me that a CFG can, also.
    – Greg Lee
    Feb 19, 2018 at 20:15
  • Yes, I can agree to this. Feb 19, 2018 at 20:19

I don't think phonological rules are context-free. The earliest speech synthesis techniques like formant synthesis and diphone selection synthesis where either each phone or diphone could be run on a finite-state machine to either synthesize or select an appropriate sound to output. But these methods exhibited various kinds of unnaturalness that later techniques are aiming to overcome, by incorporating more and more coarticulatory effects.

I'll quote from Syllable frequency effects in a context-sensitive segment production model, 2010, emphasis mine:

Based on our perception simulation results, we propose that this memory store is effectively composed of representations of fairly long stretches of speech. Individual ‘‘exemplars’’—that is, portions of such a representation that might be associated with a category label (for example, segment, feature, or word)—are stored adjacent, or closely linked, to the contexts in which they originally occurred, including neighboring, overlapping, or encompassing exemplars. Selection of exemplars for production is informed by this context information. Just as exemplar perception models identify newly encountered sounds by comparing them with stored members of existing categories, the basic assumption of the Context Sequence account is that selection of a stored category exemplar for production is weighted by the similarity of the exemplar’s original context with the relevant neighboring sounds in the current production context.

If a system is using combinations of neighboring, overlapping, or encompassing exemplars, I don't think a CFG is powerful enough to accommodate it all. Quoting again from the same paper,

A key assumption of the Context Sequence account is that a meaningful amount of this variability is predictable given the acoustic characteristics of surrounding segments, due to both local coarticulatory and longer-range context-specific production patterns. Suppose now that we take not only the target exemplar, but some of its surrounding context in addition, and compare the entire (now longer) resulting acoustic vector with the sequences of the same length centered around, again, all of the other segments in memory.

I notice that you haven't mentioned prosody in your question. If we have to account for prosody too, it would add another layer of complexity to a unit selection synthesis system. In that case, a CFG is definitely not powerful enough to accommodate phonological rules.

  • Well, if you can't describe phonological phenomena with phonological rules at all, which seems to be what you're saying, then you can't succeed in meeting the further constraint that phonological rules must apply in a CFG. I have only considered the case of rules that change phonemes to other phonemes in phonemic environments.
    – Greg Lee
    Feb 19, 2018 at 23:55
  • @GregLee I think it's a matter of how fine-grained we are trying to be, and for what purpose. For pedagogy, I think CFG is fine, but for practical use, people have tried everything from FSM to context-sensitive grammar. The paper I cited has many references to other papers that talk about coarticulatory effects.
    – prash
    Feb 20, 2018 at 0:54

I think the answer is yes, certain phonological rules are context free, in the sense that they can be described for any context free language. I'll just consider a hypothetical case in which the phoneme n changes to the phoneme m before the phoneme p. The general idea of this answer is to adapt techniques used in GPSG (Generalized Phrase Structure Grammar), in which theory syntactic transformations are avoided by, essentially, applying them to a CFG (Context Free Phrase Structure Grammar) rather than to language expressions that are generated by a CFG.

Here is a very small scale example to illustrate. I use lower case letters standing for phonemes and terminal symbols of a CFG, but to make the examples easier to read, I use ordinary English spelling. Please imagine that the spellings are actually phonemic forms.

Language without phonological rules:  
  {Dan punps, Elsa spits}
CFG for this language:  
  S -> NP VP
  NP -> Dan, Elsa
  VP -> punps, spits  

Language with the rule n -> m /__p:  
  {Dam pumps, Elsa spits}  
CFG for this language:  
  S -> NP-ends-with-m VP-begins-with-p  
  S -> NP-ends-with-n VP 
  NP-ends-with-m -> Dam  
  NP-ends-with-n -> Dan  
  NP -> Elsa    
  VP -> spits  
  VP-begins-with-p -> pumps  
  VP -> spits  

In this example, enough phonemic information is incorporated into syntactic category names (non-terminal symbols of a CFG) to describe which words and phrases have undergone the phonological rule and which words or phrases will trigger the rule.

Now, I'll give a more general account of how to produce a CFG for a context free language in which all the n's have changed to m's before p. Beginning with the language which has not undergone the change, we need to characterize all the words and phrases ending in n, all those that begin with p, which will tell us where the rule is applicable, then make the change everywhere it is applicable.

If a CF rule begins on its righthand side with terminal symbol (i.e., phoneme) p or a non-terminal symbol with the suffix -begins-with-p, then we check that the nonterminal symbol on the left of the CF rule has the suffix -begins-with-p, or add that suffix if it is not already there. (We will need to scan through all the CF rules several times to make sure this change is made everywhere it is applicable, but there are only a finite number of rules to check, since a CFG can have only a finite number of rules).

Similarly, we need to check for CF rules whose rightmost symbol is either n or a non-terminal with the suffix -ends-in-n, the if so, add to the non-terminal on the left side of the rule the suffix -ends in n. As above, this change has to be made everywhere applicable, for each of the finite number of rules.

To make the change, we begin by going through all the rules checking on the right side for any n before immediately following p and change any such n's to m's. Then any rule with a non-terminal with the suffix -ends-with-n, before terminal symbol p or a non-terminal with suffix -begins-with-p has its suffix changed to -ends-with-m.

Finally, any rule that has a non-terminal with suffix -ends-with-m and terminal symbol n at the end of the right side of the rule has that n replaced by m.

I have used a notation above that extends the non-terminal symbols of a CFG by adding suffixes to their names to add phonemic information, because I wanted to make clear that I was not changing a CFG into some other sort of grammar. But this notation conceals the fact that the above is just a GPSG metarule. In the notation of GPSG the book, Generalized Phrase Structure Grammar, I would have instead have described CF rules using features, instead of suffixes. Then, the structural description of the n->m/_p rule would be described with "foot features" which percolate up a syntactic tree and the structural change of the rule with a "head feature" which percolates down a syntactic tree.

  • 3
    Isn't the question whether all of a language's phonology can be modeled context free, not just some rules?
    – curiousdannii
    Feb 19, 2018 at 0:42
  • 1
    @curiousdannii, That is indeed the question, but one to which I do not have even a tentative answer. I mean only to try to show that it is an interesting question and to display some analytic techniques that may be helpful in solving it.
    – Greg Lee
    Feb 19, 2018 at 17:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.