0% found this document useful (0 votes)
140 views17 pages

Theory of Computation (CS F351) : BITS Pilani

This document discusses context free grammars (CFGs) which are used to describe the syntax of programming languages. CFGs are formal language generators that produce strings based on a set of production rules. The document provides an example CFG to generate strings of a's and b's, and defines the components of a CFG including terminals, nonterminals, rules, and the start symbol. It describes how strings are derived through multiple steps of rule replacements in a CFG. Finally, it notes that CFGs are useful for describing programming language syntax to enable parsing of computer programs.

Uploaded by

flame1406
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
140 views17 pages

Theory of Computation (CS F351) : BITS Pilani

This document discusses context free grammars (CFGs) which are used to describe the syntax of programming languages. CFGs are formal language generators that produce strings based on a set of production rules. The document provides an example CFG to generate strings of a's and b's, and defines the components of a CFG including terminals, nonterminals, rules, and the start symbol. It describes how strings are derived through multiple steps of rule replacements in a CFG. Finally, it notes that CFGs are useful for describing programming language syntax to enable parsing of computer programs.

Uploaded by

flame1406
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

Theory of Computation

(CS F351)
Dr.R.Gururaj
BITS Pilani CS&IS Dept.
Hyderabad Campus
Context Free Grammars
(Chapter-3)

CS F351 Theory of Computation Dr.R.Gururaj BITS Pilani, Hyderabad Campus


Concepts

Language Recognizer: A device that accepts valid strings.


Finite Automata are type of language Recognizers.

Language Generators: Devices that produce valid strings.


Ex: Regular Expressions.

Now we study certain types of formal language generators.

CS F351 Theory of Computation Dr.R.Gururaj BITS Pilani, Hyderabad Campus


Language Generators

That device begins when a signal to start is given to


construct the string.
It operation determined by a set of rules.
Eventually this process halts and produces the
completed string.
The language defined by the device is set of all strings
that it can produce.
It is difficult to produce a recognizer for English
language.

CS F351 Theory of Computation Dr.R.Gururaj BITS Pilani, Hyderabad Campus


We are interested in generators of artificial languages
such as Regular Languages and CFL.
Regular Expressions can be viewed as Language
generators.

a(a*U b*)b

How to generate a string according to the above RE

CS F351 Theory of Computation Dr.R.Gururaj BITS Pilani, Hyderabad Campus


First output an a. Then do the following two.
Either output a number of as or output number of bs.
Finally output a b

The language associated with this language generator is


set of all strings that can be produced by the process
above.

CS F351 Theory of Computation Dr.R.Gururaj BITS Pilani, Hyderabad Campus


Now we study more complex language generators called
as Context Free Grammars (CFGs).
CFGs are based on more complete understanding of the
structure of the strings belonging to the language.

CS F351 Theory of Computation Dr.R.Gururaj BITS Pilani, Hyderabad Campus


CS F351 Theory of Computation Dr.R.Gururaj BITS Pilani, Hyderabad Campus
CS F351 Theory of Computation Dr.R.Gururaj BITS Pilani, Hyderabad Campus
CS F351 Theory of Computation Dr.R.Gururaj BITS Pilani, Hyderabad Campus
CS F351 Theory of Computation Dr.R.Gururaj BITS Pilani, Hyderabad Campus
CFG

In CFG symbols that do not appear on the LHS of a


production rule are known as terminal symbols.
In the process of producing a string, by using CFG, we
see only terminal symbols in the string. Then we stop
further replacements and the result is a valid string
according to the language.

BITS Pilani, Hyderabad Campus


CFG Definition

A CFG G = ( V, , R, S)
V is an alphabet
is set of terminal symbols and subset of V
R set of rules (V- ) X V*
S is the start symbol
and is an element of V-

BITS Pilani, Hyderabad Campus


CFG Definition

CFG for L = {an bn: n 0}


CFG G = ( V, , R, S)

V = {S, a, b}
={a,b}
R ={ S aSb; Se}
S =is the start symbol

BITS Pilani, Hyderabad Campus


CFG Definition

A derivation in G of wn from w0 may be any


string in V*, and n is the length of the
derivation , may be any natural number
including zero.

We say that the derivation has n steps.

BITS Pilani, Hyderabad Campus


CFG Definition

CFG for L = {an bn: n 0} CFG G = ( V, , R, S)


V = {S, a, b} ={a,b}
R ={ S aSb; Se} S =is the start symbol

One possible derivation:

S aSb aaSbb aaaSbbb aaabbb


w0 w1 w2 w3 w4
Here the length of derivation is 4
BITS Pilani, Hyderabad Campus
CFG and PL

Computer programs written in any language


must satisfy some rigid criteria in order to be
syntactically correct, and therefore amenable for
mechanical interpretation.
The syntax of most of the languages can be
captured by CFG
If a programming language is described by CFG, it
will be easy for parsing.
Parsing is the process of analyzing a program to
find the syntax.
BITS Pilani, Hyderabad Campus

You might also like