APL语言

编辑
本词条由“匿名用户” 建档。

APL(一种编程语言)是一种通常解释的编程语言,其语法主要是符号化的。 PC上的第一个实现需要一个特殊的EPROM,以便可以显示APL字符集。最初选择APL字符集是为了让符号尽可能不言自明,从而可以从符号中直观地推导出功能。多年来,术语APL也被解释为数组处理语言。 APL使用特殊的运算符或命令,每个运算符或命令不仅具有处理单个数值的功能,而且还具有处理整个向量和矩阵的功能,例如B.添加2个矩阵或...

APL语言

编辑

APL(一种编程语言)是一种通常解释的编程语言,其语法主要是符号化的。

历史

编辑

PC 上的第 一个实现需要一个特殊的 EPROM,以便可以显示 APL 字符集。 最初选择APL字符集是为了让符号尽可能不言自明,从而可以从符号中直观地推导出功能。 多年来,术语 APL 也被解释为数组处理语言。

特色

编辑

运算符和特殊字符

APL 使用特殊的运算符或命令,每个运算符或命令不仅具有处理单个数值的功能,而且还具有处理整个向量和矩阵的功能,例如 B. 添加 2 个矩阵或计算 2 个向量的标量积。 这些操作符中的每一个都有一个特殊的字符,这意味着需要一个扩展的字符集,无论是在键盘上、内存中还是在屏幕上——从那时起——以及在打印机上。 那时还没有可以编程生成几乎任何字符的激光喷墨打印机。 使用这种具有运算符功能的字符,可以为外人提供极其简洁但又神秘的代码,这让很多人望而却步,而且不是强制性的。 也可以使用保留字作为运算符。 这些字符现在可以在 Unicode 块杂项技术字符中找到。

互动性

APL 从一开始就是交互式的:输入命令后按下 Enter 键,命令由解释器执行并显示结果。 输出结果的特殊指令,如 BASIC 中的 PRINT 命令等功能不是必需的,但如果您想要显示通常不会显示的结果,则存在该功能。

如果发生错误,您将收到相应的消息。 您可以修改输入并再次运行。 由此产生的与计算机的直接交互仍然是 APL 作为开发工具的巨大优势之一。

从今天的角度来看,这听起来微不足道,但 APL 是最早提供这种奢侈的编程语言之一:相互竞争的语言还没有交互性,每种语言都必须先编译才能运行程序。

程序代码

命令序列可以组合成函数。 函数可以依次调用其他函数。 事实上,APL 是最早的函数式编程语言之一。 有关详细信息和示例,请参见下文。

直到 1990 年代,APL 还缺乏“结构化编程”的控制结构。 逻辑必须通过跳转指令来实现。 在 APL 中,控制结构的使用频率低于其他命令式编程语言,一方面是因为 APL 不仅可以处理标量,还可以处理任意维度数据结构,另一方面是因为它提供了 Each 运算符。

数据类型

APL 至少知道数据类型 Char、Bool、Int 和 Float,但程序员不必考虑这一点,因为解释器会在必要时自动转换数据类型。 这也意味着 APL 不知道任何类型检查。

变量的数据类型不必特别声明,可以为变量分配一个浮点数(或一个数组或浮点数数组),然后是一个文本,而无需事先进行任何特殊说明。

内存管理

内存管理也由 Inter 处理被接管了。 APL 程序员不必担心在程序运行时保留或释放内存。 所有的主内存都在所谓的变量和程序工作区中可用。它可以在程序启动时定义,也可以在某些 APL 产品中动态扩展。

数组处理

APL 中的几乎所有函数也是非标量的。 这意味着函数不仅可以应用于单个标量(数字或字符),还可以应用于向量(数字序列)、矩阵(表格)和多维排列的数据(数组)以及列表。

范围

每个赋值都会创建一个全局变量,i。 H。 该变量在整个程序中可见且可变。 但是,您可以通过在函数头中包含变量名称来限制变量的范围。 这样的变量被称为局部变量,因为它仅在函数运行时可见。

但是,如果一个函数 F1 定义了一个局部变量 A,然后调用一个函数 F2,那么 A 在 F2 中是可见的和可变的,这现在被认为是一个设计缺陷。

数组

各种数据在 APL 中称为数组。 数组可以有不同的维度。 单个值称为标量。 几个相邻的值组成一个向量。 连接多个标量的运算符是逗号。 也可以将单个值与空集连接起来以获得由单个元素组成的向量。 空向量也是允许的:这些向量根本不包含任何数据元素,只包含结构信息。

排列成行和列的值形成表格,也称为矩阵或二维数组。

数组的维数在 APL 中用希腊字母 ρ (rho) 表示。 当我们谈论数组的“等级”时,我们指的是数组的维数,即 rho 的 rho。 因此,标量的秩为 0,向量的秩为 1,表的秩为 2,依此类推。

APL语言

三维数组的级别称为平面。 n 维数组是可能的,数量仅受整数索引 (2-1) 的最大大小和可用内存空间的限制。

1986 年,IBM 推出了显着扩展的 APL,称为 APL2。 扩展主要在于数组的每个元素都可以由任何其他数据结构(嵌套数组)组成。 这导致嵌套结构。 右侧显示了一个示例来说明这一点。 这是一个4行5列的数值矩阵,前面已经讨论过了。 但是,第 2 行的第 2 个元素包含一个文本向量,第 3 行的第 4 个元素包含一个 2x2 矩阵。 因此,文本标签也可以链接到带有数值的表格。 APL2 开启了创建混合数组以及简单和复杂列表的可能性。

在此扩展过程中,引入了用于处理新数据结构的新所谓“原始函数”,并在其范围内对旧函数进行了调整和扩展。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/371987/

(10)
词条目录
  1. APL语言
  2. 历史
  3. 特色
  4. 运算符和特殊字符
  5. 互动性
  6. 程序代码
  7. 数据类型
  8. 内存管理
  9. 数组处理
  10. 范围
  11. 数组

轻触这里

关闭目录

目录