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

news2024/10/6 6:02:15

目录

  • 第七章、程序设计语言与语言处理程序基础
    • 1、编译与解释
    • 2、文法
    • 3、正规式
    • 4、有限自动机
    • 5、表达式
    • 6、传值与传址
    • 7、多种程序语言特点

第七章、程序设计语言与语言处理程序基础

1、编译与解释

编译器是将整个高级语言程序一次性转化成目标机器的机器代码,编译的结果是一个可执行的二进制文件

解释器是逐行解释高级语言程序,并且在解释过程中动态地生成机器代码,解释的结果是直接执行程序

请添加图片描述

2、文法

一个形式文法是一个有序四元组G=(V,T,S,P),其中:
1)V:非终结符。不是语言组成部分,不是最终结果,可理解为占位符。
2)T:终结符。是语言的组成部分,是最终结果。V∩T=∅
3)S:起始符。是语言的开始符号。
4)P:产生式。用终结符替代非终结符的规则。形如α→β

在这里插入图片描述
一棵语法树应具有以下特征:
1.每个结点都有一个标记,此标记是V的一个符号
2.根的标记是S
3.若一结点n至少有一个它自己除外的子孙,并且有标记A,则A肯定在Vn中:
4.如果结点n的直接子孙,从左到右的次序是结点n1,n2,……nk,其标记分别是:A1,A2,…,Ak,那么A->A1,A2…Ak,一定是P中的一个产生式。
在这里插入图片描述

3、正规式

在这里插入图片描述

4、有限自动机

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

在这里插入图片描述

5、表达式

在这里插入图片描述
前缀表达式(+ab)
中缀表达式(a+b)
后缀表达式(ab+)

例:表达式(a-b)*(c+5)的后缀式是

A.a b c 5 + * -
B.a b - c + 5*
C.a b c - * 5 +
D.a b - c 5 + *

在这里插入图片描述

6、传值与传址

在这里插入图片描述
在这里插入图片描述
值传递

void swap(int x,int y)
{
	int t;
	t=x;
	x=y;
	y=t;
	printf("%d%d",x,y);
}
void main()
{
	int a=3,b=4;
	swap(a,b);
	printf("%d%d",a,b);
}
4 3,3 4

地址传递

void swaps(int *x,int *y)
{
	int t;
	t=*x;
	*x=*y;
	*y=t;
	printf("%d %d",*x,*y);
}
void main()
{
	int a=3,b=4;
	swaps(&a,&b);
	printf("%d %d",a,b);
}
4 3,4 3

1.Fortran语言(科学计算,执行效率高)
2.Pascal语言(为教学而开发的,表达能力强,Delphi)
3.C语言(指针操作能力强,高效)
4.Lisp语言(函数式程序语言,符号处理,人工智能)
5.C++语言(面向对象,高效)
6.Java语言(面向对象,中间代码,跨平台)
7.C#语言(面向对象,中间代码,.Net)
8.Prolog语言(逻辑推理,简洁性,表达能力,数据库和专家系统)

7、多种程序语言特点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/514493.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Xcode安装ipa

iOS APP上架App Store其中一个步骤就是要把ipa文件上传到App Store!​ 下面进行步骤介绍!​ 利用Appuploader这个软件,可以在Windows、Linux或Mac系统中申请ios和上传IPA到App Store Connect。​ 非常的方便,没有Mac也可以用Ap…

手游反外挂方案解析

据中国音数协游戏工委发布的《2023年1—3月游戏产业报告》显示,2023年1—3月,中国移动游戏市场实际销售收入为486.94亿元,占游戏市场整体实际销售收入的72.12% ,虽然数据同比去年略有下滑,但足以证明,移动游…

【逆向】动态链接库

文章目录 动态链接库1. 动态链接库的定义2. 动态库的由来:3. Dll与ExE程序区别4. DLL导出5. DLL导入6. 静态库 动态链接库 1. 动态链接库的定义 动态链接库英文DLL,是Dynamic Link Libarary的缩写。Dll中包含若干公用的代码、数据等,可供其他…

如何搭建在线产品手册

在现代社会,随着科技的发展,越来越多的企业将目光投向互联网,并将自己的产品推向了线上。而对于这些线上产品,拥有一份完备的、易用、高质量的在线产品手册显得尤为重要。 那么如何才能搭建一份高质量且易用的在线产品手册呢&…

《Android性能优化》学习笔记—启动优化

为什么要做App的启动优化? 网页端存在的一个定律叫8秒定律:即指用户访问一个网站时,如果等待打开的时间超过8秒,超过70%的用户将会放弃等待。 同样的,移动端也有一个8秒定律:如果一个App的启动时间超过8秒…

UNIAPP实战项目笔记66 当前用户更改购物车商品数量的前端和后端交互

UNIAPP实战项目笔记66 当前用户更改购物车商品数量的前端和后端交互 思路 前端改变数量的时候将数据发送到后端 后端接收到数据后更改数据库中的数据 案例截图 代码 前端代码 cart.js export default{state:{list:[/* {id:1,name:"332经济法能聚聚会技能大赛 经济法能聚…

vmware15+ubuntu+AS

一、VMware Workstation 与 Device/Credential Guard 不兼容 安装VMware15后,在运行启动ubuntu时一直提示与Device/Credential Guard不兼容 1、WINR打开运行,输入services.msc; 2、服务中找 HV主机服务,双击打开设置改为禁用&am…

【Python入门篇】——Python中判断语句(if elif else语句,判断语句的嵌套与实战案例)

作者简介: 辭七七,目前大一,正在学习C/C,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: Python入门,本专栏主要内容为Python的基础语法,Python中的选择循环语句…

Day3--C高级3

一.编写一个名为myfirstshell.sh的脚本,它包括以下内容。 1、包含一段注释,列出您的姓名、脚本的名称和编写这个脚本的目的 2、和当前用户说“hello 用户名” 3、显示您的机器名 hostname 4、显示上一级目录中的所有文件的列表 5、显示变量PATH和HO…

【云原生】Kubernetes二进制--多节点Master集群高可用

多节点Master集群高可用 一、Kubernetes多Master集群高可用方案1、实现高可用方法2、多节点Master高可用的部署 二、多节点Master部署1、配置master022、修改配置文件kube-apiserver中的IP3、在 master02 节点上启动各服务并设置开机自启 三、负载均衡部署1、配置nginx的官方在…

Google I/O 2023 大会上发布了一些令人兴奋的技术和产品,让我们一起来看看吧!

文章目录 Google I/O 2023 的主要内容- **Android 14**:- **Google Pixel 7**:- **Google Assistant**:- **Google Lens**:- **Google Cloud**: Google I/O 2023 大会四大主题 回顾:跨移动、网络、AI 和云A…

以太坊钱包私钥爆破产业链和攻击案例

一:产业链频道:小飞机搜索"BRUTE_FORCE_CRYPTO_WALLET" 2、github项目(有成熟的工具)GitHub - Houzich/CUDA-GPU-Brute-Force-Mnemonic-Old-Electrum-V1: CUDA-GPU-Brute-Force-Mnemonic-Old-Electrum-V1 3、揭秘以太坊 Vanity 生成器 Profanity 私钥破解…

C++学习路线-自用

C学习路线 做目录索引用,后续更新 初步想在学习完成后做对应的link 1、summary 参考网址 https://mp.weixin.qq.com/s/tXilzUzN7cDhnc3ztw4Vlw https://blog.csdn.net/qq_43564374/article/details/109409256 https://zhuanlan.zhihu.com/p/130364187 学习方式 看书…

景区剧本杀开发方案

景区剧本杀软件发展趋势包括以下几个方面: 个性化定制:随着用户需求的不断增加,景区剧本杀软件将更加注重个性化定制,满足不同用户的需求。 跨平台支持:景区剧本杀软件将逐渐实现跨平台支持,比如在…

经典命令--sort、uniq、tr、cut等

目录 一:sort--排列工具 1.sort命令介绍 2.sort命令常用选项 3.sort命令事例 二: uniq--去重工具 1.uniq命令介绍 2.uniq命令常用选项 3.uniq命令事例 4.筛选出重复3次的ip 5.将超过3次登录失败的用户加入黑名单 三:tr-- 替换工具 1.tr命令介绍…

10个前端开发者务必知道的JavaScript 技巧

前言 过去,我写了很多垃圾代码,现在看起来很糟糕。 当我再次看到那些代码片段时,我甚至怀疑自己是否适合做程序员。 所以,这里有 10 个我总结的JavaScript 技巧,可以帮助你避免编写我曾经做过的那种垃圾代码。 Prom…

提取每个汉字的首字母

1&#xff1a;在项目 POM 中 引入 汉字拼音转换JAR包 ​​​​​<dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.1</version> </dependency> 2:工具类 public…

Vue项目修改页面标签

Vue项目修改页面标签 1、在 Vue CLI 创建的项目中&#xff0c;可以通过修改 public/index.html 文件来改变网页标题。 2、在 Element UI 中&#xff0c;可以通过修改 document.title 属性来改变页面的标题。以下是一个示例代码&#xff1a; export default {mounted() {// 修改…

Android 检查网络状态和监听网络状态变化

此篇存在的主要意义在于解决用户使用app中网络状态发生了变化&#xff0c;需要我们去动态监听网络连接状态&#xff08;有网、无网&#xff09;、网络类型 &#xff08;包括wifi、移动网络 -> 3G、4G等等&#xff09; 文章目录 门前授课具体实现异常场景兴趣扩展 门前授课 …

设备产线运维合集丨图扑数字孪生流水线,提升产品装配自动化效率

前言 图扑软件基于 HTML5&#xff08;Canvas/WebGL/WebVR&#xff09;标准的 Web 技术&#xff0c;满足了工业物联网跨平台云端化部署实施的需求&#xff0c;以低代码的形式自由构建三维数字孪生、大屏可视化、工业组态等等。从 SDK 组件库&#xff0c;到 2D 和 3D 编辑&#…