Ruby 是脚本语言还是解释语言?

2024-03-08

我刚刚注意到在Ruby的维基百科页面中,这种语言被定义为解释性语言。
我明白我的背景中可能缺少一些东西。
我一直都知道不需要编译器的解释型语言和编译型语言(需要在程序执行之前进行编译)之间的区别,但是脚本语言有什么特点呢?
Ruby 可以定义为脚本语言吗?

谢谢你并原谅我的停电


事情不仅仅是黑白的。至少,它们也有大和小、响亮和安静、蓝色和橙色、灰色和灰色、长和短、对和错等等。

解释/编译只是对语言进行分类的一种方式,并且它完全独立于(以及无数其他事物)您是否将同一种语言称为“脚本语言”。最重要的是,它也是一个破碎的分类:

  • 解释/编译取决于语言的实现,而不是语言(这不仅仅是理论,确实有相当多的语言同时存在解释器和编译器)
  • 有一些语言实现(很多,包括大多数 Ruby 实现)are编译器,但“仅”编译为字节码并解释该字节码。
  • 还有一些实现可以在解释和编译为本机代码(JIT 编译器)之间切换。

你看,现实是一头复杂的野兽;)如上所述,Ruby 经常被编译。然后解释该编译的输出,至少在某些情况下是这样 - 还有 JIT 编译的实现(Rubinius 和 IIRC JRuby 会在一段时间后编译为 Java 字节码)。参考实现长期以来一直是编译器,IIRC 仍然如此。那么 Ruby 是解释型还是编译型?除非您定义它,否则这两个术语都没有意义;)

但回到问题:“脚本语言”也不是语言的属性,它取决于语言的使用方式 - 即该语言是否用于脚本任务。如果您正在寻找定义,请参阅维基百科页面“脚本语言 http://en.wikipedia.org/wiki/Scripting” 可能会有所帮助(只是不要让它们对实现细节的注释(例如通常解释脚本)感到困惑)。确实有一些程序使用 Ruby 来执行脚本任务,并且毫无疑问有大量独立的 Ruby 程序这可能有资格作为脚本(网络抓取、系统管理等)。

So yes,我想人们可以称Ruby为一种脚本语言。当然,这并不意味着 Ruby on Rails Web 应用程序只是一个脚本。

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

Ruby 是脚本语言还是解释语言? 的相关文章

  • 如何在Jenkins上更改工作空间并建立记录根目录?

    我希望将 Jenkins 的数据写入驱动器 E 因为这是服务器上的大型驱动器 Jenkins 本身安装在 C 上 我怎么做 我看到的默认配置是 工作区根目录 ITEM ROOTDIR 工作区 构建记录根目录 ITEM ROOTDIR 构建
  • 在 selenium webdriver 中打开一个新窗口而不是新选项卡

    当在我的应用程序中手动单击链接时 它会在 Chrome 和 IE 中的新选项卡中打开 但是 当我的脚本运行时 该链接会在 IE 中的新窗口而不是新选项卡中打开 相同的脚本在 Chrome 中按预期运行 知道如何摆脱这个吗 更改 IE 的默认
  • 以 UTF8 而不是 UTF16 输出 DataTable XML

    我有一个 DataTable 我正在使用 WriteXML 创建一个 XML 文件 尽管我在以 UTF 16 编码导出它时遇到问题 并且似乎没有明显的方法来更改它 我了解 NET 在字符串内部使用 UTF 16 这是正确的吗 然后 我通过
  • 错误:模块“html”不提供视图引擎(Express)

    我正在尝试设置一个简单的路由应用程序 但在渲染页面时不断遇到错误 Error Module html does not provide a view engine 奇怪的是我已经在 app js 文件中指定了视图引擎 但仍然收到错误 app
  • Javascript/jQuery 外部高度()

    Does idOfLememt outerHeight 对所有浏览器产生相同的结果 IE7 有什么不同吗 只要去http api jquery com outerHeight http api jquery com outerHeight
  • 我如何用 javascript/jquery 进行两指拖动?

    我正在尝试创建当有两个手指放在 div 上时拖动 div 的功能 我已将 div 绑定到 touchstart 和 touchmove 事件 我只是不确定如何编写这些函数 就像是if event originalEvent targetTo
  • 服务器响应 PASV 命令返回的地址与建立 FTP 连接的地址不同

    System Net WebException 服务器响应 PASV 命令返回的地址与建立 FTP 连接的地址不同 在 System Net FtpWebRequest CheckError 在 System Net FtpWebReque
  • Maven 构建错误 TOOLS.JAR NOT FOUND IN JRE

    我在构建 Maven 项目时遇到这个问题 请帮我解决 ERROR Failed to execute goal org apache maven plugins maven compiler plugin 2 5 1 compile def
  • Android 的代码覆盖率[重复]

    这个问题在这里已经有答案了 可能的重复 Android测试代码覆盖率 Eclipse https stackoverflow com questions 3282702 android test code coverage eclipse
  • 关闭扫描仪是否会影响性能

    我正在解决一个竞争问题 在问题中 我正在使用扫描仪获取用户输入 这是 2 个代码段 一个关闭扫描器 一个不关闭扫描器 关闭扫描仪 import java util Scanner public class JImSelection publ
  • Angular 2:使用正则表达式进行数字验证

    我正在尝试验证 IE 11 中的数字字段
  • UWP 应用程序在与商店关联后崩溃

    我正在为 Windows 创建一个 cordova 应用程序 将应用程序与商店关联后 应用程序起始页变为白色空白 如果应用程序使用包标识名称 com something moretext 则该应用程序可以正常工作 但我的商店包身份名称是 5
  • Swift 中的 quitFirstResponder

    我怎样才能用Apple的新语言实现它 Objective C 代码 void touchesBegan NSSet touches withEvent UIEvent event for UIView view in self view s
  • Maven2继承

    如果我有一个父 pom 并且想将其继承到多个项目 我通常通过添加到项目顶部来做到这一点
  • 纯旧 PHP 对象 (POPO) 一词的确切含义是什么?

    我想了解一下波波 我搜索了 popo 发现它代表 Plain Old Php Object 但我不确定 Plain Old Php Object 的确切含义 我想知道什么是 popo 以及在哪里使用它 谢谢 普通旧 在此处插入语言 对象是一
  • C#中为线程指定特殊的cpu

    我有 2 个线程 我想告诉其中一个在第一个 cpu 上运行 第二个在第二个 cpu 上运行 例如在具有两个 cpu 的机器中 我怎样才能做到这一点 这是我的代码 UCI UCIMain new UCI Thread UCIThread ne
  • 使用并非为 IOC 设计的遗留应用程序避免服务定位器反模式

    我经常读到IOC 中的服务定位器是一种反模式 http blog ploeh dk 2010 02 03 ServiceLocatorIsAnAntiPattern aspx 去年 我们在工作中的应用程序中引入了 IOC 具体来说是 Nin
  • JavaScript 中“键”的类型是什么?

    当我失去焦点并开始思考一个愚蠢的问题时 我遇到了这样的时刻 var a b value b 的类型是什么 我的意思不是 值 的类型 而是标记为 b 的实际键 背景 当我必须创建一个字符串键时 我开始想知道这一点 var a b value
  • 如何在 Symfony 4 中为测试环境设置数据库

    我对如何在 symfony 4 中为测试环境设置数据库感到困惑 我曾经在配置测试 ymlsymfony 3 及以下版本中的文件 最佳做法是什么 我应该重新创建一个学说 yaml文件输入配置 包 测试 该文档提到如何通过编辑 phpunit
  • 尝试了解天蓝色云服务中的负载平衡

    我正在维护一个天蓝色的云服务 它有 1 个 Web 角色和几个辅助角色 该网络角色有多个实例 当我从资源中打开云服务时 我可以看到服务端点和公共IP地址 我想了解这个蔚蓝云服务中的流量负载是如何平衡的 我搜索了负载均衡器 但在订阅中找不到它

随机推荐

  • 基于 Trie 的地址簿和按姓名和联系电话进行高效搜索

    基于 trie 数据结构开发地址簿是一种已知的方法 它是一种高效的字符串数据结构 假设如果我们想为基于姓名 数字等的地址簿创建一个有效的搜索机制 那么有效的数据结构是什么 可以基于任何类型的搜索词 无论数据类型如何 实现内存高效和更快的搜索
  • 使用 Boto3 通过 Python 将图像上传到 Amazon S3 的最有效方法

    我正在实现 Boto3 将文件上传到 S3 一切正常 我正在做的过程如下 我从 FileReader Javascript 对象获取 base64 图像 然后我通过ajax将base64发送到服务器 解码base64图像并生成一个随机名称来
  • Android SensorManager 和 Google Fit 原始传感器数据之间的区别?

    对于我的应用程序 我需要读取用户的最新心率以发送每条消息 一个是 Android SensorManager 另一个是 Google Fit 的 Sensors 还有三星的健康应用程序 不要认为这个应用程序会给我需要的数据 因为我不需要过去
  • 如何在 HTML 页面中显示代码(特别是 C++)?

    如何使用 HTML 在网站中显示代码 基本上 我有一个 C 程序 我想在我的网站上分享它 并且我想在页面中显示它 除了使用 HTML 文本之外 还有什么办法可以在 HTML 中显示 C 代码吗 HTML 包括一个名为 code https
  • static_cast<> 和 C 风格转换有什么区别? [复制]

    这个问题在这里已经有答案了 有什么理由更喜欢static cast lt gt 超过 C 风格的铸造 它们相等吗 有什么速度差异吗 C 风格的转换由编译器检查 C 风格的转换不是这样 并且可能在运行时失败 另外 C 风格的转换很容易搜索 而
  • 使用 xpath 计算 XML 中的元素数量

    我使用这个优秀的论坛来教自己一些基本的 xpath 来查询 XML 文件 我这里有一个 XML 文件的示例 我正在尝试使用 Matlab 导入 XML 文件中 3 个对象的 X Y 坐标
  • 使用 jQuery 修改 :after 伪元素的 CSS [重复]

    这个问题在这里已经有答案了 我用 after伪元素在块 li 就我而言 想法是区分当前选择的li来自其他人 在这里摆弄 http jsfiddle net kbpg6 html如下 ul li class active style back
  • FormControl 是用来做什么的?为什么使用它?应该如何使用呢?

    有人可以用外行的术语向我解释 FormControl 提供什么功能 以及为什么 如何使用它 我在 React 中使用 Material UI 我看到的许多表单示例都使用 FormControl 但我很难理解它的作用 以及它对于我的项目是否有
  • 更改 isreadonly 时 XAML 文本框边框消失?

    如何更改特定文本框的样式 在使其只读属性为 true 时显示边框 我只想显示边框 所以现在我必须为此创建一个新样式 我尝试使用这种风格 但它不起作用
  • Prestashop 1.7.1 - 顶部横幅应使用哪个挂钩?

    下列的这个问题 https stackoverflow com questions 47274748 top ad banner prestashop 1 7 1我创建了一个新横幅 现在我想插入一个钩子 但我想知道应该使用哪个钩子将其显示在
  • 迭代共享点列表

    在代码中如何访问列表 例如共享点中的 MyList 然后迭代此列表项并获取该列表上特定列的值 例如 URL 列 要从列表中检索所有项目并迭代每个项目 最佳解决方案如下 假设此代码作为功能的一部分运行 public override void
  • jquery验证器表单:如何在完成远程电子邮件验证后访问表单操作

    History 我之前开始这个问题这个线程 https stackoverflow com questions 31966294 form post is omitted after jquery validation is complet
  • phoneGap - iOS - 图像可以通过 wifi 正常使用,但无法使用 3G 加载(使用 safari 工作正常)

    我遇到了一种奇怪的行为 我的应用程序的 远程托管 图像仅在这种情况下不会显示 使用3G加载 在 iPhone 上 using phonegap 在以下情况下图像加载正常 我启动该应用程序 有 wifi 即使是热点 我启动了该应用程序的网站版
  • 如何在MongoDB中指定字段进行多条件查找查询?

    这是单个文档 id firstName john lastName Doe cars id carName BMW carModel 330 carColor silver id carName Lexus carModel IS300 c
  • Python 的 3D 场景渲染器 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个易于使用的 Python 3D 场景渲染器 我所寻找的只是能够 加载3D场景模型 使用正
  • 无法在azure devops中构建asp.net应用程序

    能够在本地构建应用程序 但是当我尝试在 azure Devops 管道中构建时 它显示以下错误 我已经安装了实体框架并在 Web 配置文件中添加了 system data entity design 程序集 不走运 请在此处查找管道 htt
  • Bash 确认不会等待用户输入

    我正在尝试使用 bash 脚本实现确认提示 但由于某种原因 提示不会等待用户输入 我尝试过很多例子 但到目前为止还没有运气 如果有什么区别的话我用的是MacOS 只是我尝试过的几个例子 所有复制 粘贴来自SO中的其他答案 bin bash
  • [Int] 之和导致溢出

    我有一个返回的函数 Int 我想计算列表的总和 然而 虽然每个单独的元素都小于maxBound Int 总和肯定更大 一个 人为的 例子 ghci gt sum 1 10000000 Int 2004260032 有没有办法强制 sum 累
  • 使用 Mono Touch 时,我还可以打包为标准 Window 应用程序吗?

    我知道 Mono Touch 可以使用几乎一份源代码进行开发并部署到 Android iO 和 Windows Mobile 当然会有 3 个项目和一些与平台相关的代码 但我会有重要的 C 通用代码 但我还需要我的开发能够在标准 Windo
  • Ruby 是脚本语言还是解释语言?

    我刚刚注意到在Ruby的维基百科页面中 这种语言被定义为解释性语言 我明白我的背景中可能缺少一些东西 我一直都知道不需要编译器的解释型语言和编译型语言 需要在程序执行之前进行编译 之间的区别 但是脚本语言有什么特点呢 Ruby 可以定义为脚