Ivory Language 用于系统编程的领域专用语言开源项目

我要开发同款
匿名用户2018年03月25日
109阅读
开发技术Haskell
所属分类编程语言
授权协议BSD-3

作品详情

Ivory语言是一门可嵌入的领域专用语言,用于更安全的系统编程。你可以将 Ivory看作是在Haskell中嵌入“受限”的C语言。

Ivory 具有以下特性

可嵌入:Ivory以Haskell编程语言的库的形式实现,Ivory使用了Haskell的语法和类型进行编写

领域专用语言:Ivory 提供了强大的类型和内存安全保证,并且具有允许程序员指定其他安全属性的功能

系统编程:Ivory非常适合编写与硬件直接交互的程序,而且不需要动态内存分配

示例代码

HelloWorld

puts :: Def ('[IString] :-> Sint32)puts  = importProc "puts" "stdio.h"main :: Def ('[] :-> ())main  = proc "main" $ body $ do  call_ puts "hello, world\n"  retVoid

Ivory编写的HelloWorld

Fibonacci

fib_loop :: Def ('[Ix 1000] :-> Uint32)fib_loop  = proc "fib_loop" $ \ n -> body $ do  a <- local (ival 0)  b <- local (ival 1)  n `times` \ _ -> do    a' <- deref a    b' <- deref b    store a b'    store b (a' + b')  result <- deref a  ret result

计算斐波那契数的 Ivory程序,使用了循环和可变状态(mutablestate)

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论