F_JustWei's Studio.

程序设计语言与语言处理程序基础

字数统计: 511阅读时长: 1 min
2021/05/24 Share

程序设计语言与语言处理程序基础

编译过程

image-20210524163340097

文法定义

一个形式文法是一个有序四元组G=(V, T, S, P),其中:

  1. V:非终结符。不是语言组成部分,不是最终结果,可理解为占位符。
  2. T:终结符。是语言的组成部分,是最终结果。$V\cap T=0$
  3. S:起始符。是语言的开始符号。
  4. P:产生式。用终结符替代非终结符的规则。形如a→β

image-20210526120757042

image-20210524164141089

语法推导树

一棵语法树应具有以下特征:

  1. 每个结点都有一个标记,此标记是V的一个符号
  2. 根的标记是S
  3. 若一结点n至少有一个它自己除外的子孙,并且有标记A,则A肯定在Vn中:
  4. 如果结点n的直接子孙,从左到右的次序是结点$n_1,n_2,..n_k$其标记分别是:$A_1,A_2,…,A_k$,那么A→$A_1,A_2…A_k$一定是P中的一个产生式。

例题:文法G= ({a,b}, {S,A},S,P),其中:S→aAS|a;A→SbA|SS|ba,请构造句型aabAa的推导树。

image-20210524164315358

S→aAS; S→a; A→SbA; A→SS; A→ba

有限自动机

image-20210524164342016

正规式

image-20210524164353913

==D C==

  1. A:S→aA→abS→abaA→ababS→ababaA→ababab

    B:S→bB→baS→babB→babaS→bababB→bababa

    C:S→aA→abS→abbB→abbaS→abbaaA→abbaab

例题:下图所示为一个有限自动机(其中,A是初态、C是终态),该自动机可识别(1)。

image-20210524164406615

解析:如果选项路线可以使初态(A)到达终态(C),即为正确。故选C。

image-20210524164416800

==D==

函数调用-传值与传址

image-20210524164428504

各种程序语言特点

  1. Fortran语言(科学计算,执行效率高)
  2. Pascal语言(为教学而开发的,表达能力强, Delphi )
  3. C语言(指针操作能力强,高效)
  4. Lisp语言(函数式程序语言,符号处理,人工智能)
  5. C++语言(面向对象,高效)
  6. Java语言(面向对象,中间代码,跨平台)
  7. C#语言(面向对象,中间代码,.Net)
  8. Prolog语言(逻辑推理,简洁性,表达能力,数据库和专家系统)
CATALOG
  1. 1. 程序设计语言与语言处理程序基础
    1. 1.0.1. 编译过程
    2. 1.0.2. 文法定义
    3. 1.0.3. 语法推导树
    4. 1.0.4. 有限自动机
    5. 1.0.5. 正规式
    6. 1.0.6. 函数调用-传值与传址
    7. 1.0.7. 各种程序语言特点