gpt4 book ai didi

raku - 可以在栅格数据上使用 Perl6 语法吗? (用例 : Cloud Optimized GeoTIFF Validation)

转载 作者:行者123 更新时间:2023-12-01 04:30:42 26 4
gpt4 key购买 nike

有几个问题对 perl6 语法和光栅(一般是二进制)数据很感兴趣。据我了解,文本方法是在字素级别通过语法工作,我们可以这样处理栅格数据吗?我们可以自定义字素定义来处理栅格数据或二进制数据的基本单元以使用语法解析它们吗?

看到 perl6 是由 perl6 语法定义的,我们是否可以将类似的语法定义为一种“验证”测试,基本情况是语法是否可以解析数据,数据是否格式正确并且在结构上经过验证?对文本数据使用这种方法,语法作为基本单元是面向文本的,但我们可以自定义那些后端定义(例如,可以覆盖 :sigspace 以使 rulestokens 与另一个解析字形分隔符)以在二进制数据领域启用语法的力量?

谢谢!

对于背景部分:

在过去的几周里,我开始出于个人兴趣学习 Perl6。在 seeing this talk at FOSDEM 2019 之后,我开始问自己(和我周围的人)关于使用语法检查/解析二进制数据的问题。例如,我的用例将是在不支持 GDAL 绑定(bind)的情况下复制 Cloud Optimized Geotiff validator(我在 perl6 中还没有看到)。这对我来说显然是一个学习项目。

The Spec for Cloud Optimized Geotiff

目前,基本思想是在可能的情况下借助 perl6 语法解析二进制结构作为第一个基本步骤,希望能够检查数据和元数据作为主要目标。

注意:不是母语人士,如果某些部分需要重写/精度,请随时指出。

最佳答案

作为发布的唯一评论,我将总结我从这里的评论、我的进一步研究和#perl6 IRC 聊天室中得到的所有答案。

关于对 X 库绑定(bind)的支持(在测试用例中,它是 GDAL),perl6 社区内部的策略是利用:

  • 使用旨在启动和访问 Foo 语言生态系统的 Inline::Foo 模块(例如:Inline::Perl5、Inline::Python 等)。 List of Inline::X modules from the Perl6 Module Directory ;
  • 通过 NativeCall 使用或编写绑定(bind)绑定(bind)到遵循 C 调用约定的动态库;
  • 使用或编写 native perl6 模块。


  • 关于二进制数据的解析,我将主题分为两部分:
  • 一般来说 ;
  • 利用语法;

  • 1.一般来说

    利用 P5pack模块或使用 Inline::Perl5使用 unpack/ pack实际上(使用 perl6.c)是解析二进制数据结构的最佳方法(前者似乎受到青睐,因为它是 native 模块)。
    去查看@raiph 对 SO anwser 的第一条评论,该评论显示了一个基本的用例。

    2. 利用语法

    使用 perl6.c,语法只能解析文本。
    然而,关于解析二进制数据的问题似乎比较热门(基于在#perl6 irc channel 上看到的反馈),并且有一些需要记录但尚未实​​现的问题似乎为希望看到它在 future 发生铺平了道路(近还是远?)。

    the @raiph's anwser的最后一部分列出许多针对该方向的资源。此外,在 Synopses 05 - Regexes and Rules : line 432 一个 :bytes 修饰符被唤起。我们将不得不看看这些修饰符将在什么时候实现,以及将它们带到语言中的缺失之处。
    在#perl6 irc channel 上, MasterDuke said « also, i think the nqp binary reading/writing ops that jnthn recently specced and nine implemented were a prerequisite for anything further » .我仍然需要调查他到底在说什么,但它似乎朝着好的方向发展。

    IMO 的主要观点之一是与基于 UTF-8 的字形定义相关。如果我们能够将字素定义改写为自定义的特殊语法,我们现在可以改写 :sigspace 修饰符以影响 rules 的分隔符。和 tokens ,我们将获得一种围绕数据结构和语法进行操作的新方法。目前,字素是在字符串级别而不是语法级别或元中定义的。请参阅链接到描述 Grapheme Cluster Boundary Rules 的 UTF-8 文档的 @timotimo 评论。

    @jjmererlo 链接了一种改变规则的方法: Parsing GFX3 format with perl6 grammars .

    关于raku - 可以在栅格数据上使用 Perl6 语法吗? (用例 : Cloud Optimized GeoTIFF Validation),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54503864/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com