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 库接口。
听众
编辑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/