Felix 编程语言有哪些独特之处?

如何解决Felix 编程语言有哪些独特之处?

Felix 是另一种编程语言,它有哪些特殊功能

解决方法

Felix 是一种高性能脚本语言,可生成高效的 C++。它的座右铭是超轻,意思是它的运行速度比 C 快。这是通过广泛的静态整个程序分析和内联实现的。

该语言的使用方式与 Python 类似,只需运行脚本即可:

flx hello.flx

但是在你的代码下面被翻译成 C++ 并编译成机器二进制然后运行。广泛的依赖项检查和缓存自动优化构建时间,并使用类似数据库的 pkgconfig 来完全自动链接外部库,包括 Felix 运行时。 C、Objective C、C++和Objective C++也可以编译链接,也可以使用自动链接功能,让C++代码也可以像脚本一样运行:告别makefile和构建系统!

该语言提供了一个可选的垃圾收集器,但也支持手动内存管理,它符合您的系统 C++ 编译器 ABI 并允许轻松嵌入 C++ 类型和函数:

type Int = "int"; 
const One : Int = "1";
fun +: Int * Int -> Int = "$1+$2";
proc show: Int = "::std::cout << $1 << ::std::endl;" 
  requires header '#include <iostream>'
;
show (One + One + One);

Felix 拥有复杂的高功率一阶类型系统,包括显式种类约束、参数多态性、Haskell 风格类型类、Ocaml 风格多态变体,并支持使用紧凑线性类型的多进(秩无关)数组编程。

Felix 是一种传统的类似 Algol 的过程语言,具有非常强大的函数式编程子系统,包括对 Monad 的支持。然而,程序编码模型基于使用通道进行通信的协同程序。由此产生的轻量级线程模型可以提升为真正的并发,在不牺牲 C/C++ 兼容性的情况下实现 Go-lang 性能。

虽然许多编程语言现在提供运算符重载,有些甚至允许用户定义运算符,但 Felix 更进一步,将整个语法放在用户库中。这允许程序员设计领域特定子语言 (DSSL)。例如,Regular Definition DSSL 允许这样写:

regdef cident = (underscore | letter) (underscore | letter | digit)*;

使用类似 BNF 的语法,其语法在用户空间中定义。类似地,可以使用 ObjC DSSL 方便地表达与目标 C 的绑定。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?