鹦鹉虚拟机/内置 PMC
鹦鹉附带了一些内置的 PMC 数据类型。这意味着这些标准类型始终可用。此页面将用作这些 PMC 类型的参考。我们不会尝试涵盖专门为其他 HLL、库或程序添加的所有 PMC 类型。(有关使用这些 PMC 类型以及定义新 PMC 类型的更多信息,请参见鹦鹉虚拟机/多态容器 (PMC)章节)。
此列表中的条目应 (A) 包含指向相关 PMC 文档的链接,以及 (B) 提供 PMC 及其方法的简要概述。
一个简单的数组类,作为其他数组 PMC 的基类。这种类型的 PMC 很少直接使用。相反,更通用的数组 PMC 类型,如 ResizablePMCArray,被使用。Array 指定了所有其他 Array 类必须共享的接口。它还提供了一些其他类数组 PMC 可能默认的默认值。
用于存储任意大数或具有任意精度的数的 PMC 类型。目前尚未实现。
一个布尔 True/False PMC。
特定语言的编译器 PMC。可用于将 HLL 转换为 PIR,最终转换为 Parrot 字节码。
用于复数的 PMC。
Continuation PMC 允许 Parrot 对系统的当前状态进行快照,以便稍后返回。
实现协程的类似子程序的 PMC。
允许以哈希的形式访问系统环境变量。
Exception PMC 保存有关系统错误的信息,用于恢复。
一个类似子程序的例程,用于捕获和解决异常。
一个用于文件的读写接口。
一个固定大小的布尔值数组。
一个固定大小的 FLOATVAL 浮点数数组。
一个固定大小的 PMC 值数组。
一个固定大小的 STRING 值数组。
一个浮点数 PMC。与 FLOATVAL 的用法类似,但拥有方法和虚表方法。FLOATVAL 在提升为 PMC 时将变为 Float PMC。
哈希,也称为“字典”或“关联数组”。类似数组,但索引使用字符串而不是整数。
一个基本的整数 PMC。与 INTVAL 的用法类似,但拥有方法和虚表方法。INTVAL 在提升为 PMC 时将变为 Integer PMC。
一个简单的整数列表或数组。
Iterator PMC 提供一个有状态的计数器,使您可以一次遍历一个数组类中的项目。
一个值,通常是一个字符串,用于在哈希中查找值。
一个低级结构,其内存由 Parrot 自动分配和释放。扩展 UnManagedStruct,但增加了自动内存收集功能。
一个包含相同名称的子程序的集合。在多方法分派 (MMD) 中,调用的函数参数决定从集合中调用哪个子程序。
实现 Parrot 命名空间。包含有关存储在该命名空间中的变量、子程序、协程和 MultiSubs 的信息。
一个本地调用函数 PMC。存储对用 C 编写的函数的接口信息。
一个具有 NUL 值的 PMC。
一个将键 PMC 与值 PMC 关联起来的结构。哈希表通常实现为 Pair PMC 的数组。
解释器结构的接口。
控制台的读写接口。
动态加载的库对象。
一个存储线程信息的 PMC。
一个用于存储布尔值的可调整大小的数组。
一个用于存储浮点值的可调整大小的数组。
一个用于存储整数值的可调整大小的数组。
一个用于存储 PMC 值的可调整大小的数组。
一个用于存储字符串的可调整大小的数组。
一个返回延续。类似于常规的 Continuation PMC,但只能使用一次。可以使用 Clone vtable 方法提升为 Continuation。
一个类的抽象角色或接口。指定类的操作和属性,但不能实例化。
用于存储字符串值的 PMC。类似于 STRING 值,但具有方法和 vtable 方法。STRINGS 在提升为 PMC 时会变成 String PMC。
Parrot 子例程。实现基本的子例程(在 PIR 中使用 sub 命令),但也用作更复杂子例程类别的基类。
父级 PMC 类,用于支持多重继承。
一个没有可用类型的未定义 PMC。
程序员必须手动管理的低级结构。Parrot 不会自动收集为结构分配的内存。