运行时与编译时

2023-12-10

运行时和编译时有什么区别?


编译时和运行时之间的差异就是尖头理论家所说的一个例子相区别。它是最难学习的概念之一,特别是对于没有太多编程语言背景的人来说。为了解决这个问题,我发现询问很有帮助

  1. 程序满足什么不变量?
  2. 这个阶段可能会出现什么问题?
  3. 如果该阶段成功,后置条件是什么(我们知道什么)?
  4. 如果有的话,输入和输出是什么?

编译时间

  1. 该程序不需要满足任何不变量。事实上,它根本不需要是一个格式良好的程序。你可以将这个 HTML 提供给编译器并观察它的吐...
  2. What can go wrong at compile time:
    • 语法错误
    • 类型检查错误
    • (很少)编译器崩溃
  3. If the compiler succeeds, what do we know?
    • 该程序结构良好——无论用什么语言,都是一个有意义的程序。
    • 可以开始运行该程序了。 (程序可能会立即失败,但至少我们可以尝试。)
  4. What are the inputs and outputs?
    • 输入是正在编译的程序,以及它需要的任何头文件、接口、库或其他巫毒。import为了得到编译。
    • 输出希望是汇编代码或可重定位目标代码,甚至是可执行程序。或者如果出现问题,输出是一堆错误消息。

Run time

  1. 我们对程序的不变量一无所知——它们是程序员输入的任何内容。运行时不变量很少由编译器单独强制执行;它需要程序员的帮助。
  2. 可能出错的是运行时错误:

    • 被零除
    • 取消引用空指针
    • 内存不足

    此外,程序本身也可能检测到错误:

    • 试图打开不存在的文件
    • 尝试查找网页并发现所称 URL 格式不正确
  3. 如果运行时成功,程序就会完成(或继续运行)而不会崩溃。
  4. 输入和输出完全取决于程序员。文件、屏幕上的窗口、网络数据包、发送到打印机的作业等等。如果程序发射导弹,那就是输出,并且仅在运行时发生:-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

运行时与编译时 的相关文章

  • 哪些属性有助于运行时 .Net 性能?

    我正在寻找可用于通过向加载器 JIT 编译器或 ngen 提供提示来确保 Net 应用程序获得最佳运行时性能的属性 例如我们有可调试属性 http msdn microsoft com en us library k2wxda47 aspx
  • 优雅降级 - 何时考虑

    在为使用 AJAX 的应用程序设计和构建 UI 时 您何时考虑优雅降级 对于禁用 JavaScript 或正在使用屏幕阅读器的用户 最后 网站的 AJAX 版本完全完成后 在每个发展阶段 I don t 还有别的事 这些日子 渐进增强 ht
  • 如何在 Perforce 树中查找未跟踪的文件? (svn状态的模拟)

    有人有脚本或别名来查找 Perforce 树中未跟踪 实际上 未添加 的文件吗 编辑 我更新了对此已接受的答案 因为看起来 P4V 在 2009 年 1 月的版本中添加了对此的支持 EDIT 请用p4 status现在 不再需要跳圈了 参见
  • 与随机数生成算法相关的种子是什么?为什么经常使用计算机时间来创建该种子?

    我读到了seeds用于初始化随机数生成器 但似乎种子的随机性对于从生成器获得良好的随机性并不重要 所以我想了解什么是seed实际上 为什么这么称呼呢 最后为什么time在计算机系统中是用来生成这样的种子的 伪随机数生成器生成数字序列 它不是
  • 算法:找到圆中的峰值

    Given n排列成圆圈的整数显示了一种可以找到一个峰值的有效算法 峰值是不小于它旁边的两个数字的数字 一种方法是遍历所有整数并检查每个整数以查看它是否是峰值 这产生O n 时间 似乎应该有某种方法来分而治之 以提高效率 EDIT 好吧 基
  • 如何为所有语言创建字母数字正则表达式?

    我今天遇到了这个问题 此正则表达式仅匹配英语 a zA Z0 9 如果我需要支持这个世界上的任何语言 我应该编写什么正则表达式 如果您使用字符类简写和 Unicode 识别正则表达式引擎 您就可以做到这一点 这 wclass 匹配 单词字符
  • Swift 中计算只读属性与函数

    在 Swift WWDC 简介会话中 只读属性description被证明 class Vehicle var numberOfWheels 0 var description String return numberOfWheels wh
  • 我使用仅大小写不同于其类型的变量名是不道德的吗?

    例如 采用这段代码 var person new Person 或者对于 Python 爱好者来说 person Person 我经常被告知这有多糟糕 但还没有看到这两行代码不道德的例子 对我来说 人就是一个人 试图给它起另一个名字是浪费时
  • 有人真正有效地实现了斐波那契堆吗?

    你们中有人曾经实施过斐波那契堆 http en wikipedia org wiki Fibonacci heap 几年前我就这样做了 但它比使用基于数组的 BinHeaps 慢了几个数量级 当时 我认为这是一个宝贵的教训 告诉我们研究并不
  • 全部配对图表上的所有路径

    这可能是一个没有最佳解决方案的问题 假设我有一个有向图 不知道它是否有循环 循环检测将是这个问题的方面之一 给定一组顶点 可能是数百万个顶点 我需要计算给定图的所有唯一对之间的所有不同路径 没有重复顶点的路径 我该如何应对这种情况 让我们看
  • 如果数据库可访问,加盐和散列有什么意义?

    我刚刚学习了散列的概念 嘿 不要忘记盐 并使用盐来确保密码安全 散列它是一种单向加密 实际上不是加密而是散列 因此无法对其进行逆向工程 加盐是在散列之前在密码上添加随机创建的值的前缀或附加值 因为散列 只是散列 的问题是 一些天才提供了字典
  • 使 C# 编译器相信执行将在成员返回后停止

    我认为目前这是不可能的 或者这是否是一个好主意 但这是我刚才正在考虑的事情 我使用 MSTest 对我的 C 项目进行单元测试 在我的一项测试中 我执行以下操作 MyClass instance try instance getValue
  • 以编程方式更改对象的位置

    我尝试过以下代码 this balancePanel Location X this optionsPanel Location X 更改我在程序运行时在设计模式下制作的面板的位置 但它返回错误 无法修改 System Windows Fo
  • 从原点开始在离散 2D 网格上迭代向外螺旋的算法

    例如 这是预期螺旋的形状 以及迭代的每个步骤 y 16 15 14 13 12 17 4 3 2 11 18 5 0 1 10 x 19 6 7 8 9 20 21 22 23 24 其中线条是 x 轴和 y 轴 以下是算法每次迭代 返回
  • 自动跟踪算法

    我正在尝试写一个simple跟踪例程来跟踪电影中的某些点 本质上我有一系列 100 帧长的电影 在黑暗背景上显示一些亮点 我每帧有大约 100 150 个点 它们在电影的过程中移动 我想跟踪它们 所以我正在寻找一些有效的 但可能不会过度实施
  • 是否有加权水库采样的算法? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 当数据流中的点具有相关权重时 是否有一种算法可以执行水库采样 Pavlos Efraimidis 和 Paul Spirakis 的算
  • 从 java 程序中编译 .java 文件?

    我找到了这段代码 JavaCompiler compiler ToolProvider getSystemJavaCompiler if compiler run null null null fileName 0 System err p
  • 查找字符串中最常见的子字符串的算法

    是否有任何算法可用于查找字符串中最常见的短语 或子字符串 例如 以下字符串将 hello world 作为其最常见的两个单词短语 hello world this is hello world hello world repeats thr
  • 在java中执行外部程序并传递命令

    我有这个国际象棋引擎 Rybka exe 我必须在 java 中执行 以下是如何运行 Rybka 的示例 单击它后 控制台将打开并等待输入 然后你输入 uci 并按 Enter 键并等待它加载 大约 1 秒 然后你必须输入更多行作为选项和内
  • 领域驱动设计与模型驱动架构

    我很好奇 领域驱动设计和模型驱动架构有什么区别 我的印象是他们有某些相似之处 你能启发我吗 Thanks 不要不同意上面的大部分内容 尽管它可能值得稍微扩展一下 DDD 中最重要的一个概念是关注问题域 将对技术的痴迷放在一边 主要集中于对您

随机推荐

  • 如何使用 hibernate criteria api 执行 union 子句查询

    SELECT supplier id FROM suppliers UNION ALL SELECT supplier id FROM orders 我只是在查询的 UNION ALL 子句上方和查询的 UNION ALL 子句下方创建两个
  • 无法在设备 HTC6435LVW Droid DNA Deluxe 上检索 Build.MANUFACTURER

    这看起来是一个非常基本的问题 我无法检索一些基本信息 例如Build MANUFACTURER Build MODEL and Build VERSION RELEASE 我的代码可以在 50 多种设备上运行 但在以下情况下失败HTCC64
  • 与在电子邮件签名中实施图像相关的一些问题?

    我需要用图像实现电子邮件签名 到目前为止 我们只支持已经可以使用的电子邮件签名中的文本 我需要提供该功能 我可以在邮件签名中插入图像 我可以将电子邮件发送给我的应用程序中的用户 也可以发送给外部邮件域 如 gmail yahoo 等 上的用
  • 获取 JAX-RS 资源中的 ServletContext

    我正在玩 JAX RS 部署在 Tomcat 上 基本上是 Path hello Produces text plain public class Hellohandler GET public String hello return He
  • FILTER_SANITIZE_STRING 有何作用?

    有大约一百万个问答来解释这些选项 例如FILTER FLAG STRIP LOW 但是什么是FILTER SANITIZE STRING自己做 没有任何选择 它只是过滤标签吗 根据PHP手册 剥离标签 可选择剥离或编码特殊字符 根据W3学校
  • Android - 导航抽屉片段

    我已经在我的 Android 应用程序中实现了导航抽屉 但现在我希望能够在用户单击导航栏中的任何列表项时使用片段更改布局 这是我到目前为止所得到的 XML
  • 在 Windows 上可以使用什么来代替 Unix 管道进行进程间通信?

    我有一个启动子进程的应用程序 子进程从标准输入读取要操作的文件 对于某些操作 它需要一个输入文件 其中包含有关如何处理其操作的文件的信息 我们将其称为 控制文件 控制文件的名称也是从 stdin 读取的 父应用程序可以使用临时文件作为控制文
  • 如何在express和bodyParser中接受application/csp-report作为json?

    我正在尝试编写一个中间件来接受来自浏览器的 CSP 报告 浏览器问题application csp report as Content Type 发布的请求是 JSON 格式 目前我使用bodyParser text接受该内容类型 但我想也
  • 记录与数据库通信的 SQL

    我正在为我的 Web 应用程序开发 SQL 记录器 我希望能够记录由用户与 GUI 交互触发的 SQL 查询 我在Spring环境中工作 使用maven和mybatis 我将我的 webapp 打包成一个 war 并将其部署到 tomcat
  • 从 OpenOffice 运行 SWT 应用程序时发生致命错误

    我有一个开发办公室Java 插件应用程序 我正在打电话SWT从一个XActionListener SWT 的加载是使用特殊的类加载器动态完成的 SWT 窗口显示良好 但当我点击 SWT 窗口的关闭按钮时 出现错误 我附上了此错误生成的错误文
  • 如何测试使用 exec_() 调用的自定义对话框窗口?

    我正在尝试为我的项目编写系统测试 我有一个启动各种窗口的控制器类 但是 我似乎无法使用 exec 和 qtbot 来控制 Windows 启动 这是一个 MVCE from PyQt5 QtWidgets import from PyQt5
  • Angular 1.5 组件 $onDestroy 和 $scope.$destroy() 之间的区别

    我想了解控制器之间的区别 onDestroy方法和 scope destroy 定义表明 当需要销毁组件的包含范围时 将调用 onDestroy 但 scope destroy 的情况不是一样吗 根据我创建的 plunkerhttps pl
  • PyQT 中的弹出式、非模态、内联对话框

    很难描述我想在这里做什么 所以这就是我想要的 单击 弹出 对话框的按钮 但是 该对话框应该是非模式的 我还希望它能与父应用程序 锁定 这样如果我移动它 它也会随之而来 看起来我或多或少试图描述一个内联弹出窗口 但我不确定这是否就是它的名字
  • 如何修复我的正则表达式,使其不与贪婪量词匹配太多? [复制]

    这个问题在这里已经有答案了 我有以下几行 14 48 say 0ed673079715c343281355c2a1fde843 2 laka hello 我使用一个简单的正则表达式来解析它 if line d d ssay my ts ha
  • 如何清除mkmapview的缓存

    在我的应用程序中 我有一个文本字段和一个搜索按钮 当用户在文本字段上填写地址后单击搜索按钮时 我的应用程序会显示结果并在地图视图上放置一个图钉 我正在使用谷歌地图 API 我还添加了用户可以拖放图钉的功能 当用户将图钉拖放到另一个地方时 应
  • C++程序设计

    如何有效地设计C 模块化程序 如何学习 对于初学者 您可能想要采取 暴力 过程 1 写一个简单的main函数在一个文件中 2 添加一些功能 编译然后测试 3 重构 在Google中使用这个关键字 以下是一些重构指南 并非所有指南都可以同时适
  • 父进程:子进程已退出,状态为 3221226356 -- 正在重新启动

    我正在 Windows 7 Home Premium 上运行带有 XAMPP 1 8 1 Apache 2 4 3 和 PHP 5 4 7 的测试服务器 昨天一切都运行良好 但今天我开始在 Apache 的 error log 中收到此消息
  • PHP 中的 EVP_BytesToKey 实现

    我一直在尝试在 PHP 中实现与 C 中完全相同的函数 但是 我还没有看到完全相同的结果 我认为问题在于我仍然不完全理解的 计数 或迭代 函数定义 int EVP BytesToKey const EVP CIPHER type const
  • Django Rest Framework:通过 AJAX 上传文件

    我有一个视图和序列化器 class UserView generics RetrieveUpdateAPIView model get user model serializer class UserProfileSerializer pe
  • 运行时与编译时

    运行时和编译时有什么区别 编译时和运行时之间的差异就是尖头理论家所说的一个例子相区别 它是最难学习的概念之一 特别是对于没有太多编程语言背景的人来说 为了解决这个问题 我发现询问很有帮助 程序满足什么不变量 这个阶段可能会出现什么问题 如果