鲜为人知的静态、命令式编程语言——Nimrod

Nimrod是一个新型的静态类型、命令式编程语言,支持过程式、函数式、面向对象和泛型编程风格而保持简单和高效。Nimrod从Lisp继承来的一个特殊特性抽象语法树(AST)作为语言规范的一部分,可以用作创建领域特定语言的强大宏系统。它还是一个编译型的具有垃圾收集的系统编程语言,有着极其卓越的生产/性能比。Nimrod的设计集中在三个E上:即效率(efficiency)、表达能力(expressiveness)和优雅(elegance)。

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
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;支持共享内存垃圾回收机制
免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。查看原文

为您推荐