鲜为人知的静态、命令式编程语言——Nimrod
Nimrod是一个新型的静态类型、命令式编程语言,支持过程式、函数式、面向对象和泛型编程风格而保持简单和高效。Nimrod从Lisp继承来的一个特殊特性抽象语法树(AST)作为语言规范的一部分,可以用作创建领域特定语言的强大宏系统。它还是一个编译型的具有垃圾收集的系统编程语言,有着极其卓越的生产/性能比。Nimrod的设计集中在三个E上:即效率(efficiency)、表达能力(expressiveness)和优雅(elegance)。
Nimrod是一个新型的静态类型、命令式编程语言,支持过程式、函数式、面向对象和泛型编程风格而保持简单和高效。Nimrod从Lisp继承来的一个特殊特性抽象语法树(AST)作为语言规范的一部分,可以用作创建领域特定语言的强大宏系统。它还是一个编译型的具有垃圾收集的系统编程语言,有着极其卓越的生产/性能比。Nimrod的设计集中在三个E上:即效率(efficiency)、表达能力(expressiveness)和优雅(elegance)。
Nimrod代码类似这样:Nimrod特性如下:
•生成本地代码(目前通过C语言编译而来),不依赖虚拟机:为了易于重分配,Nimrod产生的小型可执行文档并不具备依赖性;
•快速的非垃圾回收机制,支持软件实时系统(比如游戏);
•系统编程功能:能够管理自己的内存,直接访问硬件;垃圾回收机制的指针区别于手动管理内存;
•零开销迭代器;
•跨模块内联;
•支持动态方法绑定内联,无虚拟方法表;
•用编译时间来评估用户定义函数;
•消除整个程序死代码:只用可执行的函数包;
•基于价值的数据类型:比如,可在栈上分配对象和数组;
Nimrod编译器不仅可以很好的运行在Windows,Linux,BSD以及Mac OS X系统上还可以轻松移植到其他平台上。此外,Nimrod编译器还可以产生C++或者Objective-C接口。绑定的项目包括:GTK2,the Windows API, the POSIX API,OpenGL,SDL, Cario,Python,Lua,TCL,X11,libzip,PCRE,libcurl,MYSQL以及 SQLite。
目前,Nimrod 0.9.2已经发布了,该版本是目前为止Nimrod最为吸引人的版本。可从这里下载。即将发布1.0版本。该版本带来很多新特性和Bug修复,其中一个最重要的新特性就是整合所有的异常跟踪,允许检查异常等(详情);另外一个新特性就是引入了声明式列表表达式(详情),实现了直接执行模块中的符号表,使用方法 import module except symbol;支持共享内存垃圾回收机制
Nimrod代码类似这样:
# compute average line length
var count = 0
var sum = 0
for line in stdin.lines:
count += 1
sum += line.len
echo "Average line length: ",
if count > 0: sum / count else: 0•生成本地代码(目前通过C语言编译而来),不依赖虚拟机:为了易于重分配,Nimrod产生的小型可执行文档并不具备依赖性;
•快速的非垃圾回收机制,支持软件实时系统(比如游戏);
•系统编程功能:能够管理自己的内存,直接访问硬件;垃圾回收机制的指针区别于手动管理内存;
•零开销迭代器;
•跨模块内联;
•支持动态方法绑定内联,无虚拟方法表;
•用编译时间来评估用户定义函数;
•消除整个程序死代码:只用可执行的函数包;
•基于价值的数据类型:比如,可在栈上分配对象和数组;
Nimrod编译器不仅可以很好的运行在Windows,Linux,BSD以及Mac OS X系统上还可以轻松移植到其他平台上。此外,Nimrod编译器还可以产生C++或者Objective-C接口。绑定的项目包括:GTK2,the Windows API, the POSIX API,OpenGL,SDL, Cario,Python,Lua,TCL,X11,libzip,PCRE,libcurl,MYSQL以及 SQLite。
目前,Nimrod 0.9.2已经发布了,该版本是目前为止Nimrod最为吸引人的版本。可从这里下载。即将发布1.0版本。该版本带来很多新特性和Bug修复,其中一个最重要的新特性就是整合所有的异常跟踪,允许检查异常等(详情);另外一个新特性就是引入了声明式列表表达式(详情),实现了直接执行模块中的符号表,使用方法 import module except symbol;支持共享内存垃圾回收机制

评论1次
这个真是第一次听说