Perl 可以“静态”解析吗?

2023-11-27

An 文章名为《Perl 无法解析,形式化证明》正在巡视。那么,Perl 是否在“运行时”或“编​​译时”决定其解析代码的含义?

在我读过的一些讨论中,我的印象是这些论点源于不精确的术语,所以请尝试在答案中定义您的技术术语。我故意没有定义“运行时”、“静态”或“解析”,以便我可以从那些对这些术语的定义可能与我不同的人那里获得观点。

Edit:

这与静态分析无关。这是一个关于 Perl 行为的理论问题。


Perl 有一个明确定义的“编译时”阶段,随后是一个明确定义的“运行时”阶段。然而,有一些方法可以从一种过渡到另一种。许多动态语言都有eval允许在运行时阶段编译新代码的构造;在 Perl 中,相反的情况也是可能的——而且很常见。BEGIN块(以及隐式的BEGIN阻塞引起的use) 调用临时运行时阶段during编译时。 ABEGIN块在编译后立即执行,而不是等待编译单元的其余部分(即当前文件或当前eval) 编译。自从BEGIN在编译它们后面的代码之前运行,它们几乎可以以任何方式影响后续代码的编译(尽管实际上它们所做的主要事情是导入或定义子例程,或者启用严格性或警告)。

A use Foo;基本上相当于BEGIN { require foo; foo->import(); },要求存在(例如eval STRING)从运行时调用编译时的方法之一,这意味着我们现在在编译时内的运行时内的编译时内,并且整个事情是递归的。

无论如何,解析 Perl 的可判定性归结为,由于一位代码的编译可能会受到以下因素的影响:执行前面的一段代码(理论上可以做anything),我们遇到了停机问题类型的情况;正确解析给定 Perl 文件的唯一方法一般来说是通过执行它。

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

Perl 可以“静态”解析吗? 的相关文章

  • 使用 Python ast 模块访问语法树中的节点

    我正在玩 python ast 抽象语法树 我编写了以下内容 它访问了 AST 的所有节点 import ast class Py2Neko ast NodeVisitor def generic visit self node print
  • C# 中 PHP 的快速解析

    我需要用 C 解析 PHP 文件 我们本质上要求另一个国家的一些开发人员上传 PHP 文件 上传后我们需要检查 php 文件并获取所有方法和类 函数等的列表 我想过使用正则表达式 但我无法确定一个函数是否属于一个类等 所以我想知道是否已经有
  • C#动态创建Type数组

    在 C 中 我需要能够在运行时基于以字符串形式传递给函数的逗号分隔数据类型列表创建 Type 对象数组 基本上 这就是我想要实现的目标 create array of types Type paramTypes typeof uint ty
  • 解析器解析 SQL 查询并返回 Java 中的列名和相应的表名 [重复]

    这个问题在这里已经有答案了 可能的重复 Java 的 SQL 解析器库 https stackoverflow com questions 660609 sql parser library for java 我需要一个解析器 它应该以以下
  • 为什么我不应该使用 UNIVERSAL::isa?

    根据这个 http perldoc perl org UNIVERSAL html http perldoc perl org UNIVERSAL html 我不应该使用 UNIVERSAL isa 而应该使用 obj gt isa 或 C
  • Perl 中的布尔函数应该返回什么值?

    简短的问题 在 Perl 代码库中一致表示真假的最佳方法是什么 1 0 1 Perl 原生布尔运算符的特殊空字符串 return undef 即空列表 问题背景 我们都知道 Perl 在布尔值方面非常灵活 就像大多数事情一样 例如 Perl
  • ANTLR4 在导入时找不到语法

    我正在尝试将 ANTLR4 语法拆分为多个文件 以便我可以更轻松地测试它们 我在 java 项目中使用 gradle 作为构建工具 两种语法都单独正确编译 但是当我将导入添加到我的主语法中时 我收到下一个编译错误 错误 110 kaneko
  • 如何在 JavaScript 中构建树模式匹配算法?

    好吧 这是一个有点复杂的问题 但是 tl dr 基本上是如何使用 模式树 解析 实际树 如何检查特定的树实例是否与特定的模式树匹配 首先 我们有我们的结构模式树 模式树通常可以包含以下类型的节点 sequence节点 匹配一系列项目 零个或
  • 在android中的webview中运行时更改URL

    我创建了一个小程序 可以在 webview 中加载特定网站 我想密切关注 URL 如果 URL 包含 xxx 单词 那么它应该导航到另一个页面 例如 如果我设置 www example com 我现在可以导航到 www example co
  • String.Format 小数,带有千位分隔符和强制小数位

    我想String Format小数 使其同时具有千位分隔符和强制小数位 3 例如 Input 123456 12 78545 8 Output 123 456 120 78 545 800 我努力了 String Format 0 0 0
  • 如何在 Perl 中使用 use strict 一次一行处理多行字符串?

    我正在尝试找出 PBP 批准的正确方法来一次一行处理多行字符串 许多 Perl 编码人员建议将多行字符串视为文件句柄 除非您在脚本中使用 use strict 否则它可以正常工作 然后 您会收到编译器发出的警告 提示在使用严格引用时无法使用
  • unix df 上的正则表达式帮助

    我需要一些帮助来调整我的代码以查找此 UNIX 中的另一个属性df output Ex Filesystem Size Used Avail Capacity Mounted on dev ad4s1e 61G 46G 9 7G 83 ho
  • 未排序模式的 boost::Spirit 语法

    我有一个需要解析的模型模式的一部分 可以说它看起来像下面这样 type Standard hostname x y z port 123 属性是 元素可能看起来无序 属于架构一部分的所有元素都必须出现 而不是其他元素 所有元素的综合属性都进
  • 在 C# 中遍历 ANTLR AST 的教程?

    有人知道在 C 中遍历 ANTLR 生成的 AST 的教程吗 我能找到的最接近的是this https web archive org web 20201019210638 http www manuelabadia com blog Pe
  • XSD 嵌套元素

  • 如何使用 Perl 更改 mysql 密码

    我需要使用 Perl 脚本更改一些 mysql 密码 以下内容在更改数据库条目时有效 但是当我针对 mysql 用户更改修改它时 它将它们重置为空白密码 最后 刷新权限 也很好 但我还没有找到方法 usr bin perl use DBI
  • 为什么我只得到第一个捕获组?

    https stackoverflow com a 2304626 6607497 https stackoverflow com a 2304626 6607497 and https stackoverflow com a 370042
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 根据插入顺序迭代哈希?

    不想对条目进行排序 使用它也不会保留顺序 foreach my val keys hash 默认情况下 Perl 5 中的哈希值是无序的 您可以使用tie http perldoc perl org functions tie html a
  • 通过 htaccess 将 PNG 解析为 PHP 仅适用于本地服务器,但不适用于网络服务器

    我用 PHP 创建了一个动态 PNG 图片 为了使用 PNG 扩展名 我创建了一个包含以下内容的 htaccess 文件 AddType application x httpd php png 在我的本地 XAMPP 服务器上 一切工作正常

随机推荐

  • HTML 范围滑块和 jQuery?

    我的网站中有以下代码 并使用 HTML5 集成了范围滑块 我希望滑块用值更新文本输入 反之亦然 我会使用 jQuery 来做到这一点吗 如果可以的话你能给我示例代码吗 Thanks
  • SELECT COUNT(*) 昂贵吗?

    您认为在每次页面加载时对一个非常大的表 例如 50K 行 中的条目进行计数是一个好主意吗 SELECT COUNT FROM table 现在我有大约 2000 行 看起来相当快 我没有看到页面加载有任何延迟 但表应该达到 50K 条目 我
  • 使用 wix 生成可执行文件

    我正在学习 Wix 我想生成 setup exe 文件而不是 setup msi 那可能吗 安装 EXE 通常称为引导程序 or chainer WiX 3 5 将附带一个名为burn exe 不幸的是 这仍在大力开发中 如果您只是想要一个
  • 验证AWS API网关的请求路径参数?

    假设我有一个带有路径的 api and pets and pets pet 现在我正在尝试验证路径 pets 参数 以便只有长度为 6 的字母数字字符的路径才会被验证并处理到后端 lambda 所有其他路径都将被拒绝 我尝试了以下 swag
  • 我可以使用 gmail 作为我网站的 smtp 服务器吗

    您好 我正在尝试建立并运行一个网站 它目前托管在 AWS 上 因此我目前没有运行自己的 smtp 服务器 所以在阅读了几篇文章后 我了解到我们可以使用gmail作为smtp服务器 我想仔细检查我读到的内容是否正确 我将使用智能求职板软件 我
  • 在C++ Win32中创建透明窗口

    我正在创建一个非常简单的 Win32 C 应用程序 其唯一目的是仅显示半透明的 PNG 窗口不应该有任何镶边 并且所有不透明度都应该在 PNG 本身中控制 我的问题是 当窗口下的内容发生变化时 窗口不会重新绘制 因此 PNG 的透明区域与应
  • 从互联网下载 SQLite 数据库并加载到 Android 应用程序中

    对于我的 Android 应用程序 我想使用一个大型数据库 大约 45 MB 一种解决方案是将 拆分的 数据库包含在资产文件夹中 并在第一次启动时将其复制到数据库目录 但这会消耗两次磁盘空间 一次在无法删除文件的资产文件夹中 一次在文件已复
  • 在DLL接口中使用boost::shared ptr可以吗?

    在 C 中开发一个返回 boost 共享指针并将其用作参数的 DLL 是否有效 那么 这样导出函数可以吗 1 boost shared ptr
  • 竞技编程中的快速输入/输出

    我在竞争性编程竞赛的解决方案中多次遇到过这个特定的代码片段 我了解此代码的基本用途来克服时间限制 但我想更深入地了解它 我知道 unistd h 可以访问系统调用包装函数 例如 fork pipe 和 I O 原语 读 写等 如果有人可以解
  • 如何创建 GUI 并以编程方式对 Cocoa 事件做出反应?

    我发现了如何以编程方式在 Cocoa 中创建一个窗口 但不知道如何对事件做出反应 该窗口不对退出请求或按钮单击做出反应 我尝试添加以下控制器并使用 setDelegate setTarget 但没有运气 interface AppContr
  • 使用 hibernate 以编程方式验证架构

    在大多数项目中 运行你的方法java app模式验证是使用该配置 使用 spring 时 spring jpa hibernate ddl auto validate 我遇到了一个问题 我需要在运行期间的特定时间验证我的架构 有什么方法可以
  • 如何在 Python Git hook 中使用 raw_input() ?

    我正在为 Git 编写一个预提交钩子 它运行 pyflakes 并检查修改文件中的制表符和尾随空格 Github 上的代码 我想通过请求用户确认来覆盖钩子 如下所示 answer raw input Commit anyway N y if
  • try catch 块的成本是多少?

    好多少是 if condition try something catch SomeEx ex 而不是这个 try if condition something catch SomeEx ex 当我进入 try 块时 JVM 实际上会做什么
  • 动画按钮允许用户交互不起作用

    我在 NSObject 类的代码中创建了一个 UIbutton 它控制 UIViewController 类中的游戏 该按钮在游戏的大部分时间都工作正常 但在某个时刻我希望按钮淡入 淡出 一旦淡入 淡出开始动画 按钮就不再具有交互性 我已经
  • 从 json 创建 DynamoDB 表

    我想知道是否可以从表定义 json 本身创建 dynamodb 表 我研究了 aws cli 工具 但找不到任何方法来执行此操作 只是想知道是否可能 aws dynamodb create table file tabledenifisio
  • 如何将 mySql SQL 脚本转换为 MS SQL 脚本?

    我必须将客户 MySql 数据库架构 数据迁移到 MS SQL SERVER 2008 最后我收到了 70 Mb SQL 文件 其中包含与 MSSQL 不兼容的 mySQL 方言 DROP TABLE IF EXISTS kladr CRE
  • Facebook 登录与 CSRF 状态令牌不匹配的问题

    我做了一些搜索 但没有找到与我的问题相关的任何内容 我目前正在尝试对我的网站实施 Facebook 登录 但由于 htaccess mod 重写 URL 我在登录身份验证方面遇到了问题 该代码工作完美 如果我在没有 mod 重写规则的情况下
  • c从 R 中的字符串绑定动态列名

    我想将一列绑定到数据框 并使用从字符串动态分配的列名称 y attribute Survived cbind test data y attribute NA 这会导致新列添加为y attribute而不是所需的Survived属性以字符串
  • Mockito 空指针异常

    我遵循了 hoaz 的建议 但是 我遇到了空指针异常 RunWith MockitoJUnitRunner class public class GeneralConfigServiceImplTest InjectMocks privat
  • Perl 可以“静态”解析吗?

    An 文章名为 Perl 无法解析 形式化证明 正在巡视 那么 Perl 是否在 运行时 或 编 译时 决定其解析代码的含义 在我读过的一些讨论中 我的印象是这些论点源于不精确的术语 所以请尝试在答案中定义您的技术术语 我故意没有定义 运行