程序设计语言-软件设计(二十一)

2023-11-14

数据结构与算法(二十)快速排序、堆排序(四)icon-default.png?t=N176https://blog.csdn.net/ke1ying/article/details/129269655

这篇主要讲的是 编译与解释、文法、正规式、有限自动机、表达式、传值与传址、多种程序语言特点。

  • 编译的过程

解释型 和 编译型

编译型过程:

源程序  词法分析  语法分析  语义分析

中间代码生成   代码优化   目标代码生成    目标程序

词法分析:非法字符、关键字或者标识符错误。

语法分析:语法结构错误,if或者end if不匹配等。

语义分析:死循环或者零除数等。

  • 有限自动机

上面DFA状态转换图可以看到S是起始,{f}表示结束位置。

下面的S输入一个0可以到B,输入一个1可以到A。

C到f意思是,输入一个0可以到f,输入一个1也可以到f。

(a|b)*:abbaab,,ab的任意串。(a或b组成的都能表达出来)

(ab)*:代表ababab...多个或者一个。

(ab|ba)*:abbaabbaab...ab和ba 的任意串。(ab或ba组成的任意)

(ab)*(ba)*:这代表先来若干个ab 再来若干个ba。Ababab...bababa....

表达式 分为前缀表达式、中缀表达式、后缀表达式。(与二叉树的前序、中序、后序遍历一致,分别从 根左右、左根右、左右根来表达)

传值和传址

传值调用:形参取的是实际参数的值,形参的改变不会改变实际参数的值。

引用(传址)调用:形参取的是实参的地址,即相当于实际参数存储单元的地址引用,因此其值的改变会导致实际参数值的改变。

传值和传址的区别:

&a 代表传址,a代表传值。

Int *a代表指针类型的形式参数,int a代表传值的形式参数

C语言高效是他最大的特点。

C++开始面向对象,高效。

Java语言:面向对象,跨平台,中间代码。

Lisp语言:人工智能。

C#:面向对象,中间代码,.net。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

程序设计语言-软件设计(二十一) 的相关文章

  • Spring Security 通过并发登录尝试将用户锁定

    我是安全新手 遇到了一个问题 该问题导致用户帐户被锁定 只有重新启动应用程序才能修复它 我有一个带有 spring security 4 0 2 RELEASE 应用程序的 spring boot 1 3 0 BUILD SNAPSHOT
  • 如何让Spring RabbitMQ创建一个新的队列?

    根据我对rabbit mq的 有限 经验 如果您为尚不存在的队列创建新的侦听器 则会自动创建该队列 我正在尝试将 Spring AMQP 项目与rabbit mq 一起使用来设置侦听器 但出现错误 这是我的 xml 配置
  • JavaFX Platform.runLater 的使用以及从不同线程访问 UI

    我有几个问题Platform runLater 我有一个 JavaFX 应用程序类 在这个类中 我运行一个线程 该线程从网络套接字读取数据 现在当我创建一个新的Stage在线程内部 系统抛出异常 JavaFX 事件调度程序线程和我的网络读取
  • Java:高性能消息传递(单生产者/单消费者)

    我最初问这个问题here https stackoverflow com questions 3367192 java is while true loop in a thread bad whats the alternative 但我意
  • 实现与扩展:何时使用?有什么不同?

    请用易于理解的语言进行解释或提供某些文章的链接 extends is for 延伸一类 implements is for 实施一个接口 接口和常规类之间的区别在于 在接口中您不能实现任何声明的方法 只有 实现 接口的类才能实现方法 C 中
  • 将 spring-security 与 spring-webflux 结合使用时禁用 WebSession 创建

    我正在使用 Rest api 运行无状态 spring boot 应用程序 并希望按照所述禁用 WebSessions 的创建https www baeldung com spring security session https www
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对
  • 如何测试调用父类的受保护(不需要的)方法的方法?

    我陷入了一个非常奇怪的情况 我有一些需要测试的特定代码 这里是 public class A The real method of real class is so big that I just don t want to test it
  • 使用除 SINGLE_TABLE 之外的任何其他 Hibernate 继承策略时 JVM 崩溃

    好吧 这可能不太可能 但还是这样吧 在Java JRE 1 6 0 26 b03 中我有两个类 SuperControl及其子类SubControl 它们都需要是持久对象 我正在使用 Hibernate Annotations 来实现这一点
  • 如何识别 Java 中的不可变对象

    在我的代码中 我正在创建一个对象集合 这些对象将由各种线程以只有在对象不可变的情况下才安全的方式访问 当尝试将新对象插入到我的集合中时 我想测试它是否是不可变的 如果不是 我将抛出异常 我能做的一件事是检查一些众所周知的不可变类型 priv
  • 如何修复 Android 7.0 的 Spinner 模式下的 DatePickerDialog?

    我目前正在开发一个简单的项目 其中包含一个包含在 Web 视图中的网站 具有少量交互 以提高网站本身和 Android 移动设备之间的交互性 由于该网站包含用户生日的日期输入字段 因此我希望实现一个与所有设备兼容的旋转格式的日期选择器 我尝
  • C# 中的协变和逆变

    首先我要说的是 我是一名正在学习 C 编程的 Java 开发人员 因此 我会将我所知道的与我正在学习的进行比较 我已经使用 C 泛型几个小时了 我已经能够在 C 中重现我在 Java 中知道的相同内容 除了几个使用协变和逆变的示例 我正在读
  • SimpleDateFormat 将 lenient 设置为 false 时出现异常

    为什么这段代码会抛出无法解析日期的异常 SimpleDateFormat f new SimpleDateFormat yyyy MM dd T HH mm ss 000Z f setLenient false String dateStr
  • 如何使用 Guava 连接字符串?

    我写了一些代码来连接字符串 String inputFile for String inputLine list inputFile inputLine trim 但我不能使用 连接 所以我决定使用 Guava 所以我需要使用Joiner
  • 在服务器内部调用 Web 服务

    我有一个网络服务 getEmployee 当传递 id 时 它会获取单个员工的员工详细信息 同一服务器上的另一个 Web 服务 getEmployeeList 当传递一个部门时 它会获取整个员工列表 这将获取部门的 ID 然后调用 getE
  • Google Place Api:来自此 Android 客户端应用程序 com.package.name 的请求被阻止

    我在用PlaceAutocompleteFragment当我单击搜索字段 PlaceAutocompleteFragment 对话框消失时 我收到此错误 errors domain global re ason forbidden mess
  • H2 - (相当)长的 INSERT 失败,错误 42000

    H2 内存中 插入 错误 42000 尝试过版本 1 4 196 1 4 197 1 4 199 我还尝试在 H2 服务器 本地 上执行 INSERT 也失败 给出错误的行 抱歉 但出于安全原因 我无法生成更多 INSERT INTO tb
  • 如何从spark中的hbase表中获取所有数据

    我在 hbase 中有一个大表 名称为 UserAction 它具有三个列族 歌曲 专辑 歌手 我需要从 歌曲 列族中获取所有数据作为 JavaRDD 对象 我尝试了这段代码 但效率不高 有更好的解决方案来做到这一点吗 static Spa
  • 使用 Runtime.getRuntime().exec() 进行重定向不起作用

    我需要从程序执行命令 命令行是可以的 我在终端试了一下 但是在程序中不行 我从我的代码中添加一个副本 File dir new File videos String children dir list if children null Ei
  • Integer.parseInt 引发的 NumberFormatException

    嘿 我在学校上编码课 但老师没有很好地解释 所以我们必须在网上查找我所做的信息 但我无法找到代码中的错误 你能帮我吗 char end s do System out println Tipo de boleto char boleto c

随机推荐

  • Linux切换用户/超级用户权限

    在Linux操作系统 CentOS8 上安装yum工具时出现了问题 错误为 Error This command has to be run with superuser privileges under the root user on
  • npm切换源,nrm安装、配置及使用

    文章目录 人工智能福利文章 1 速度太慢 2 手动切换太麻烦 3 切换npm源推荐使用nrm 3 1 nrm安装方法 3 2 查看可选npm源 3 3 切换npm源 3 4 增加npm源 3 5 删除npm源 3 6 测试npm源速度 脑筋
  • 【UE4】【C++】PlayerController、AIController获取玩家对应的Pawn

    先创建一个基本的C 类 Tank 因为要对Tank进行各种操作 移动 寻找目标 所以选择了Pawn类型 PlayerController 再创建一个C 类 TankPlayerController 用以控制玩家操作的对象 Tank 创建好后
  • 创业公司融资,股权是如何一步步被稀释的?

    转自 https 36kr com p 5054730 融资过程中 股权的稀释总是难免的 本文作者 新元 股书 Kapbook 微信ID Kapbook 完整的股权激励在线解决方案 很多人并没有意识到 他们在加盟公司时拿到的期权比例 并非最
  • 记一次事务报错问题 Transaction synchronization is not active

    问题场景 在一次请求的返回结果中出现了这个错误信息 Transaction synchronization is not active 意思是 事务同步器没有激活 看着不像是业务代码里返回的提示 猜测是spring事务框架报出来的异常没有被
  • 基于SRS的视频直播服务器搭建

    srs提供的一个demo实例 包括实时流的rtmp播放 hls播放 视频会议 ffmpeg视频变换 jwplayer播放 OSMF播放 vlc播放等等功能 下面是在Centos 6 x环境下的编译搭建流程 1 下载或更新源码或者使用git更
  • MVC项目案例

    MVC项目 1 需求 访问链接 http localhost 8080 car get 得到JSON数据 name 保时捷 color 红色 price 641000 0 2 项目结构 cn tedu 放启动类 存子包 cn tedu se
  • [nodejs] 运行的nodejs代码走代理连接外网

    1 背景 nodejs后端调用三方服务sdk 运行主机在公司内外有网址过滤 无法连接到三方服务地址 设置代码走代理后服务调用正常 2 方法 修改node modules rest facade src Client js代码 让网络连接能够
  • Xorm 使用手册,增删改查之查

    Xorm 使用手册 增删改查之查 Xorm轻松学习 个人博客站点 简书 猫轻王 https www jianshu com u 6cce817646be 掘金 猫轻王 https juejin cn user 164091868034745
  • R 实践深度学习

    特点 将帮助您了解流行的深度学习架构及其在 R 中的变体 并为它们提供现实生活中的示例 涵盖了用于预测和分类的基本深度学习技术和概念 将了解神经网络 深度学习架构以及使用 R 实现深度学习的基础知识 将引导您使用重要的深度学习库 如 Ker
  • 4.28黄金双线收官会跌吗?今日如何稳健布局?

    近期有哪些消息面影响黄金走势 双线收官黄金多空该如何研判 黄金消息面解析 现货黄金价格周五 4月28日 小幅收跌 在美国公布第一季GDP增速低于预期后 金价在过去五个交易日内第四次收于2000美元下方 在今年初高通胀 利率继续上行和银行业危
  • 数字通信实验1 调制解调的matlab实现_实验要求

    实验1 调制解调的matlab实现 一 实验目的 掌握2ASK 2FSK 2PSK 2DPSK的调制解调实现流程 二 实验内容 完成2ASK相干解调的收发端完整程序 并画出已调制信号波形 功率谱密度波形 接收端各关键点波形 分别完成2FSK
  • 经验分享:如何运用R的MICE包对数据集中不同变量采用不同方法及跳过部分变量进行多重插补

    运用R的MICE包对数据集进行多重插补 multiple imputation 遇到两个具体需求 1 只需针对缺失值较高的部分变量而不是全部变量进行填充 但仍想将全部变量纳入数据集中 2 对于不同的具体变量 采用不同的多重插补具体方法 如处
  • 微信小程序——如何获取到输入框的值

    在微信小程序中 可以通过以下几种方式来获取输入框的值 使用 bindinput 绑定输入事件 通过 event detail value 获取输入框的值 具体操作如下
  • 拔叉零件的加工工艺,设计18铣槽的铣床夹具

    目 录 一 序言 1 二 零件的分析 3 1 零件的作用 3 2 零件的工艺分析 3 三 确定毛坯 4 四 工艺规程设计 5 五 夹具设计 14 六 总结 17 七 参考文献 18 一 序 言 机械制造工艺学课程设计使我们学完了大学的全部基
  • mock拦截axios请求,以及axios请求拦截设置token

    直接上源码
  • 投中网发布!持安科技荣登中国企业服务产业最佳投资案例TOP10

    近日 2022年度投中榜发布 持安科技凭借业内领先的零信任产品创新力 出众的方案落地实力及广阔的市场发展潜力 成功入选 投中2022年度中国企业服务产业最佳投资案例TOP10 投中榜 是投中信息秉承专业 严谨 客观 公正的原则 对中国私募股
  • 算法通过村第八关-树(深度优先)白银笔记

    文章目录 前言 1 最大深度问题 2 判断平衡树 3 最小深度 4 N叉树的最大深度 总结 前言 提示 我的整个生命 只是一场为了提升社会地位的低俗斗争 埃莱娜 费兰特 失踪的孩子 这一关我们看一些比较特别的题目 关于二叉树的深度和高度问题
  • 笔记-Flutter 之点击空白处取消TextField焦点

    本人是做iOS开发的 点击空白处取消TextField焦点这个需求是非常简单的 在学习Flutter过程中 面对这个需求走了不少弯路 现在得到了一个感觉不错的解决方案 这里和大家分享一下 也希望对小伙伴们有所帮助 GestureDetect
  • 程序设计语言-软件设计(二十一)

    数据结构与算法 二十 快速排序 堆排序 四 https blog csdn net ke1ying article details 129269655 这篇主要讲的是 编译与解释 文法 正规式 有限自动机 表达式 传值与传址 多种程序语言特