首页 > 编程语言 >专题七:程序设计语言

专题七:程序设计语言

时间:2024-12-28 16:43:29浏览次数:7  
标签:闭包 文法 专题 终结符 语言 正规 程序设计 自动机

重点模块说明

编译与解释、文法、**正规式、有限自动机、表达式、传值与传址、**多种程序语言特点

编译与解释

画板
画板

文法的定义以及语法推导树

文法定义

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

1)V:非终结符。不是语言组成部分,不是最终结果,可理解为占位符。

2)T:终结符。是语言的组成部分,是最终结果。VnT=

3)S:起始符。是语言的开始符号。

4)P:产生式。用终结符替代非终结符的规则。形如α→β

正则闭包:A+=A1UA2UA3UUAU.(也就是所有幂的组合)

闭包:A=A°UA+(在正则闭包的基础上,加上A={c})。

例如a²=[a,aa,aaa,.,e},而(ab)={ab,abab,ababab,.,c}

文法的类型

类型 别称 说明 对应自动机
0型 短语文法 G的每条产生式a一P满足a属于V的正则闭包
且至少含有一个非终结符,而属于V的闭包
图灵机
1 型 上下文有关文法 **G的任何产生式a一β满足 al<=
2型 上下文无关文法 G的任何产生式为A一β,A为非终结符,β为V的闭包 非确定的下推自动机
3型 正规文法 G的任何产生式为A一αB或A一α,α属于非终结符的闭包,A、B都属于非终结符 有限自动机

语法推导树

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

1.每个结点都有一个标记,此标记是V的一个符号:

2.根的标记是S:

3.若一结点n至少有一个它自己除外的子孙,并且有标记A,则A肯定在V中:

4.如果结点n的直接子孙,从左到右的次序是结点n,n.n,其标记分别是:A,A,A,那么A>A,AA,一定是P中的一个产生式。

有限自动机与正规式(非确定有限自动机(NFA)、确定有限自动机(DFA))

有限自动机

image
image

S是一个有限集,每个元素为一个状态

image是一个有穷字母表,每个元素为一个输入字符

image是转换函数:是一个单值对照

S0,属于S,是其唯一的初态

Z是一个终态集(可空)

正规式(对有限自动机的另一种表达形式)

:::color1 正规式是描述程序语言单词的表达式,对于字母,其上的正规式及其表示的

正规集可以递归定义如下。

①ε是一个正规式,它表示集合L(E)={e}。

②若a是Z上的字符,则a是一个正则式,它所表示的正规L(a)={a}。

③若正规式r和s分别表示正规集L(r)=L(s),则

(a)r|s是正规式,表示集合L(r)UL(s):

(b)r·s是正规式,表示集合L(r)L(s);

(c)r是正规式,表示集合(L(r))

(d)(r)是正规式,表示集合L(r)。

仅由有限次地使用上述三个步骤定义的表达式才是上的正规式。由此可见,

正规式要么为空,要么由字母、或、连接、闭包运算符组成。其中闭包运算符

“*”具有最高的优先级,连接运算具有次高优先级,或运算符“1”具有最低

优先级。

:::

表达式(逆波兰式/后序式)。解析逆波兰式的时候仅需要从左到右依次解析即可,但要考虑括号的优先级。

前缀表达式(+ab)

中缀表达式(a+b)

后缀表达式(ab+)

画板
画板

函数调用(传值与传址)

传递方式 主要特点
传值调用 形参取的是实参的值,形参的改变不会影响实参的值【单向】
传址调用
引用调用
指针调用
形参取的是实参的地址,形参的改变会影响实参的值【双向】

多种程序语言的特点

1.Fortran语言(科学计算,执行效率高)

2.Pascal语言(为教学而开发的,表达能力强,Delphi)

3.C语言(指针操作能力强,高效)

4.Lisp语言(函数式程序语言,符号处理,人工智能)

5.C++语言(面向对象,高效)

6.Java语言(面向对象,中间代码,跨平台)

7.C#语言(面向对象,中间代码,.Net)

8.Prolog语言(逻辑推理,简洁性,表达能力,数据库和专家系统)

标签:闭包,文法,专题,终结符,语言,正规,程序设计,自动机
From: https://www.cnblogs.com/yongjannes/p/18637640

相关文章

  • 2024-2025-1学号20241309《计算机基础与程序设计》第十四周学习总结
    作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里2024-2025-1计算机基础与程序设计第十四周作业这个作业的目标自学教材《C语言程序设计》第13章并完成云班课测试作业正文2024-2025-1学号20241309《计算机基础与程序设计》第......
  • C语言实现DES加密 配完整源代码
    示例如下:二进制明文:0000000100100011010001010110011110001001101010111100110111101111二进制密文:0001001100110100010101110111100110011011101111001101111111110001源代码如下:#include<stdio.h>voidoutput(chardata[],intnumber);voidchange(intimax,intjm......
  • C++高级程序设计 20241228
    当然可以。在C++中,面向对象编程(OOP)是一种编程范式,它使用类和对象来模拟现实世界中的实体和行为。以下是构造函数、拷贝构造函数、析构函数和普通成员函数的简单解释和例子:1.构造函数构造函数是一种特殊的成员函数,用于创建对象时初始化对象的状态。它与类同名,并且没有返回类型,甚......
  • 【上篇】DeepSeek-V3-Base:前所未见的突破革新多语言编程
    我们推出的DeepSeek-V3是一个强大的专家混合(MoE)语言模型,它拥有671B个总参数,每个标记有37B个激活参数。为了实现高效推理和低成本训练,DeepSeek-V3采用了多头潜意识(MLA)和DeepSeekMoE架构,这在DeepSeek-V2中得到了充分验证。此外,DeepSeek-V3还率先采用了无辅助损失的负载均衡......
  • python语言ddts爬虫程序代码QZQ
    #https://search.dangdang.com/?key=%C5%C0%B3%E6&act=inputimportrequestsimportosfromlxmlimportetreeimportosimportcsvimportcertifios.environ[‘REQUESTS_CA_BUNDLE’]=certifi.where()url=‘https://search.dangdang.com/?key=%C5%C0%B3%E6&a......
  • python语言wph爬虫程序代码QZQ1
    #https://list.vip.com/102747162.htmlimportrequestsimportreimportosimportjsonimportcsvimportcertifios.environ[‘REQUESTS_CA_BUNDLE’]=certifi.where()url=‘https://mapi-pc.vip.com/vips-mobile/rest/shopping/pc/product/module/list/v2’he=......
  • 2024-2025-1 20241417 《计算机基础与程序设计》第十四周学习总结
    2024-2025-120241417《计算机基础与程序设计》第十四周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>2024-2025-1计算机基础与程序设计第十四周作业这个作业的目标<《C语言程序设计......
  • 《计算机基础与程序设计》第十四周学习总结
    学期(2024-2025-1)学号(20241412)《计算机基础与程序设计》第十四周学习总结作业信息这个作业属于哪个课程<班级的链接>2024-2025-1-计算机基础与程序设计这个作业要求在哪里<作业要求的链接>2024-2025-1计算机基础与程序设计第十四周作业)教材学习内容总结复习......
  • 小小计算器(C语言程序)
             ......
  • C语言---猜数字游戏
    猜数字游戏代码#include<stdio.h>#include<time.h>#include<stdlib.h>voidmeun(){ printf("**********************\n"); printf("*******1.play*******\n"); printf("*******0.quit*******\n"); printf("......