软件工程师——(八)程序设计语言与语言处理程序基础

71 阅读3分钟

1. 编译与解释

image.png

2. 文法

1. 文法的定义

image.png

2. 文法的类型———需简单记忆

image.png

3. 语法的推导树

image.png

  • 1、作用
    • 通过推导树可以了解到一种语法可表达的串,构造的一些句型是什么样子
  • 2、例题说明
    • 1、文法G中的终结符[T]为{a,b},一般以小写字母表示,
    • 2、文法G中的非终结符[V](这种符号可以推出其他符号){S,A},一般以大写字母表示,
    • 3、文法G中的起始符[S]S,
    • 4、文法G中的产生式[P]S->aAS|aA->SbA|SS|ba,
    • 5、根据产生式S->aAS|a可以得出S->aASS->a,
    • 6、根据产生式A->SbA|SS|ba可以得出A->SbAA->ssA->ba,
    • 7、使用产生式S->aAS可以得到第一步的语法树
      flowchart TD
      1[S] --- 2[a] & 3[A] & 4[S]
      
    • 8、接着使用产生式A->SbAS->a可以得到第二步的语法树
      flowchart TD
      1[S] --- 2[a] & 3[A] & 4[S]
      3[A] --- 5[S] & 6[b] & 7[A]
      4[S] --- 8[a]
      
    • 9、接着使用产生式S->a可以得到第三步的语法树
      flowchart TD
      1[S] --- 2[a] & 3[A] & 4[S]
      3[A] --- 5[S] & 6[b] & 7[A]
      4[S] --- 8[a]
      5[S] --- 9[a]
      
    • 10、从而得到构造句型aabAa推导树

3. 正规式(重点)———对有限自动机另一种表达形式

1. 说明

image.png

  • 1、符号说明
    • 1)|代表的意思
    • 2)*代表循环多次的意思(0->无穷大)

2. 例题

image.png

  • 例题解析
    • 1、第(1)个空解析———D
      • A选项———S->aA、A->bS、S->aA、A->bS、S->aA、A->b———最终得到ababab
      • B选项———S->bB、B->aS、S->bB、B->aS、S->bB、B->a———最终得到bababa
      • C选项———S->aA、A->bS、S->bB、B->aS、S->aA、A->b———最终得到abbaaa
      • D选项———S->bB、B->aS、S->bB、B->无法得到b开头的———所以无法识别babba
    • 2、第(2)个空解析———C
      • A选项———第(1)空的A\B\C\D选项都可以表达,过于宽泛
      • B选项———只能表达abab...,不满足所有
      • C选项———第(1)空的A\B\C选项到都可以表达,不能表达D,适用
      • D选项———只能表达abab...baba...

4. 有限自动机(重点)

1. 表示方式

image.png

2. 考察形式

  • 给一个图,判断能否得到指定的串,即看从起点是否能够找到一条到终点的路(例如:0011或111等)

3. 例题

image.png

  • 例题解析———C———A为起点、C为终点
    • A选项———(A输入0,进入B)(B输入0,还是在B)(B输入0,还是在B)(B输入0,还是在B)———最终没有到达C
    • B选项———(A输入1,还是在A)(A输入1,还是在A)(A输入1,还是在A)(A输入1,还是在A)———最终没有到达C
    • C选项———(A输入0,进入B)(B输入1,还是在C)(C输入0,进入B)(B输入1,进入C)———最终到达C
    • D选项———(A输入1,还是在A)(A输入0,进入B)(B输入1,进入C)(C输入0,进入B)———没有到达C

5. 表达式(重点)

1. 说明———利用树的遍历前、中、后缀表达式的过程

2. 例题

image.png

  • 1、例题解析———D
    • 先将表达式转换为树的形式(括号不需要构造到树中)
    • 然后利用树的遍历方式求解

6. 传值与传址(重点)

image.png

0. 形参和实参

image.png

1. 形参———如上(swap方法参数列表中的x,y就是形参)

2. 实参———如上(main方法调用swap方法参数列表中的a,b就是实参)

1. 函数的调用方式

1. 传值调用————结果为4 3,3 4

image.png image.png

2. 传址(引用)调用————结果为4 3,4 3

image.png image.png

7. 多种程序语言特点———重点关注不常见的语言的特点和其他的不同

image.png