第二章文法和语言 21文法的基本概念 个程序设计语言是一个记号系统,如自然语言一样, 它的完整的定义应包括语法和语义两方面。所谓一个语言的语 法是指一组规则,用它可以形成和产生一个合适的程序,目前 在程序设计语言的识别中广泛使用的是上下文无关的文法。在 这理主要介绍文法和语言的概念
第二章 文法和语言 2.1 文法的基本概念 一个程序设计语言是一个记号系统,如自然语言一样, 它的完整的定义应包括语法和语义两方面。所谓一个语言的语 法是指一组规则,用它可以形成和产生一个合适的程序,目前 在程序设计语言的识别中广泛使用的是上下文无关的文法。在 这理主要介绍文法和语言的概念
例:设有文法: <句子><主语><谓语> 主语><冠词×<形容词><名词> 冠词>he <形容词>→big <谓语><动词><直接宾语 动词>→ ate caught <直接宾语><冠词><名词> 名词> mouse cat
例:设有文法: <句子>→<主语><谓语> <主语>→<冠词><形容词><名词> <冠词>→the <形容词>→big <谓语>→<动词><直接宾语> <动词>→ate|caught <直接宾语>→<冠词><名词> <名词>→mouse|cat
<句子>=><主语><谓语>=><冠词><形容词><名词><谓语 the<形容词><名词><谓语>=> the big<名词><谓语 > the big cat<谓语>=> the big cat<动词><直接宾语> the big cat ate<直接实语>=> the big cat ate<冠词>< 名词>> e big cat ate the<名词>=> the big cat ate the mouse
则: <句子>=><主语><谓语>=><冠词><形容词><名词><谓语 > =>the<形容词><名词><谓语>=> the big<名词><谓语 > =>the big cat <谓语>=>the big cat <动词><直接宾语> =>the big cat ate<直接宾语>=>the big cat ate<冠词>< 名词>=>the big cat ate the <名词> =>the big cat ate the mouse
21.1符号和符号串 定义2.1 字母表是有穷非空集合。用表示。 例:无符号一进制数的字母表为{0,1 C语言的字母表为字母、数字和若于专用符号组成的符号集 定义2.2 、符号串是由字母表中的符号组成的有穷序列,又称字符 例: a.,b. c ba,bac,Cacb,等都是字母表{abC}上的符号串
2.1.1 符号和符号串 定义 2.1 字母表是有穷非空集合。用Σ表示。 例:无符号二进制数的字母表为{0,1} C语言的字母表为字母、数字和若干专用符号组成的符号集 定义 2.2 符号串是由字母表中的符号组成的有穷序列,又称字符 串、串。 例:a,b,c,ba,bbac,caacb,···等都是字母表{a,b,c}上的符号串
定义2.3 不包含任何字符串的空符号串用表示 定义2.4 符号串x的长度,即符号串x中的字符用表示(读作x的 长度 例:|abd=3|a=1|E|=0 定义2.5 设非空符号串u=Xy其中y字,则称为U的子串,若u 则称y为u的真子串
定义 2.3 不包含任何字符串的空符号串用ε表示 定义 2.4 符号串x的长度,即符号串x中的字符用|x|表示(读作x的 长度) 例:|abc|=3 |a|=1 |ε|=0 定义 2.5 设非空符号串u=xvy,其中v≠ε,则称v为u的子串,若|u|> |v|则称v为u的真子串