BCPL
编辑BCPL (BCPL) 是一种编译型低级编程语言。 它是 ALGOL 家族的一种语言。 BCPL 的进一步发展是编程语言 B,它反过来构成了永久重要的编程语言 C 的开发基础。
一般说明
编辑BCPL的优点是学起来快,实现容易,移植容易。 它主要用于编译器构造、系统编程和作为“先驱语言”,即作为新系统的第一语言。
BCPL 程序由也可以递归定义的单个函数组成; 函数调用是使用值参数进行的。
BCPL 只将单词识别为一种数据类型。 所有变量都是对存储单元的引用。 根据运算符的不同,变量可以被视为整数值、内存引用、向量或函数的入口点。 只有局部标识符和一个全局向量,其中在整个程序中可见的标识符(包括函数名称)被组合在一起。
变量的内容称为 R 值(可能只出现在赋值的右侧),存储位置称为 L 值(可能只出现在赋值的左侧) .
lv 和 rv 运算符允许将左值解释为右值,反之亦然(即取消引用变量)。
BCPL 本身实际上只提供位和字操作的功能。 所有其他功能都组合在其他库中。
Ken Thompson 在 1969 年开发了 B 语言,它深受 BCPL 的影响。 由于 B 是为在具有 8 kB RAM 的 PDP-7 上进行解释而开发的,因此 B 比 BCPL 更简单。 例如,嵌套函数定义是不可能的。 从 B 的进一步发展中出现了编程语言 C。
几乎每个操作系统都有 BCPL 实现,不同的实现与源代码不兼容。
操作系统
编辑AmigaOS 的一部分(AmigaDOS 组件)基于 TRIPOS,这是 MetaComCo 公司的多用户操作系统,它是用 BCPL 编程语言开发的,因此今天仍然带有 BCPL 的痕迹。 例如,AmigaDOS 数据结构中的 BCPL 指针必然以 32 位边界结束,因为它们向右移动了 2 位,相当于除以 4。 此外,AmigaDOS 中经常使用字符串,它使用前缀长度字节而不是编程语言 C 中常见的零终止符。
AEG(系统软件部门 Konstanz)在 BCPL 为其自己的 AEG 80-40 和 AEG 80-60 机器(不到 100 台,1980 年左右)开发的另一个操作系统是 MARTOS(多路访问实时操作系统)。 以BCPL实现并与C和PL/I相关的编程语言SL3(System Low Level Language)也是为这些机器开发的,仅在少数项目中使用,在当时实际上非常现代,但另一方面也可以使用复杂的嵌套结构进行编程。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/371992/