Factor (编程语言)

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

Factor(编程语言)是一种免费的编程语言,由SlavaPestov设计,自2003年开始开发。它采用了Forth、Lisp和Smalltalk-80的概念。它旨在作为Joy的实际继承者,并且可以在BSD许可下获得实现。 所有函数都从堆栈中读取它们的参数,将它们的结果压入堆栈,并被称为字。程序是压入堆栈的对象和压入堆栈的单词的一系列词典。 首先,将2和3压入堆栈。+从堆栈中取出两个数字并将两者的...

Factor (编程语言)

编辑

Factor(编程语言)是一种免费的编程语言,由 Slava Pestov 设计,自 2003 年开始开发。 它采用了 Forth、Lisp 和 Smalltalk-80 的概念。 它旨在作为 Joy 的实际继承者,并且可以在 BSD 许可下获得实现。

单词和堆栈

编辑

所有函数都从堆栈中读取它们的参数,将它们的结果压入堆栈,并被称为字。 程序是压入堆栈的对象和压入堆栈的单词的一系列词典。

首先,将 2 和 3 压入堆栈。 + 从堆栈中取出两个数字并将两者的总和压入堆栈。 . 从堆栈中弹出顶部项目并将其推出。 评论以 ! 并走到行尾。

新词用 : 定义。 add2 将 2 添加到堆栈顶部的数字。

单词被分组到词汇表中。 USE:指定要在哪个词汇表中搜索单词,以及 IN:要在哪个词汇表中存储所有随后定义的单词。

任何对象,例如数字、序列(数组、向量字符串...)等都可以放在堆栈上。 为所有特征类型定义了一个词法表示。

变量的名称用 SYMBOL: 定义,用 set 设置,用 get 读出并放在堆栈上。 对象的内存由垃圾收集自动分配和释放。

函数式编程

编辑

匿名函数写在方括号中,称为引用。

map 从堆栈中弹出一个数组和一个引用。 引用应用于数组的每个元素,结果被推回到堆栈上的数组中。 times 从堆栈中弹出一个数字 n 和一个引号。 然后连续执行 n 次报价。 bi 从堆栈中弹出一个对象和两个引用。 两个引用都应用于对象,两个结果被压入堆栈。 if 从堆栈中弹出一个逻辑值和两个引号。 如果值为真,则执行xxx个报价,否则执行第二个报价。

面向对象

编辑

在面向对象方面,Factor(编程语言)采用了 Common Lisp 对象系统的概念。 类和方法是相互独立定义的。

TUPLE: 矩形宽高

定义了一个名为 rectangle 和 width 和 height 两个槽的元组类用于数据封装。 随后定义的构造词 是 从堆栈中读取两个数字并用它们填充两个槽。 为矩形定义的面积方法从堆栈中取出一个矩形对象并计算面积。 如果栈上有元组对象,则slot>>; 数据被读出,数据被写入对象的槽中,带有>>slot。

图书馆

编辑

Factor(编程语言)包含一个全面的预定义函数库。 有一个用于扩展的 C 库接口。

Factor (编程语言)

听众

编辑

Listener是Factor的交互式开发环境(编程语言)。 您输入的所有内容都会被读取、编译并在必要时立即执行。 Control-h 带您获得全面的帮助,Control-w 单步执行每一行。 当前在内存中的所有定义和编译后的代码都使用 save 保存到一个图像文件中。

实施

编辑

Factor 的 VM(编程语言)是用 C++ 编写的。 Factor(编程语言)的大部分,比如解析器和编译器,本身都是用Factor(编程语言)编写的。 有针对 FreeBSD、Linux、macOS 和 Windows 以及处理器 x86、x86-64 和 PowerPC 的实现。 在项目开始时,VM 是用 Java 编写的。 由于技术上的劣势,它最初被 C 中的实现所取代。

自托管

编辑

由于 Factor (编程语言) 主要是在 Factor (编程语言) 本身中编写的,因此必须首先使用引导映像创建基本系统。 可以在 Factor 主页(编程语言)上找到合适的启动映像。

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

(5)
词条目录
  1. Factor (编程语言)
  2. 单词和堆栈
  3. 函数式编程
  4. 面向对象
  5. 图书馆
  6. 听众
  7. 实施
  8. 自托管

轻触这里

关闭目录

目录