用于系统编程的领域专用语言 Ivory Language

BSD-3
Haskell 查看源码»
Linux
2018-03-25
局长

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

Ivory 具有以下特性

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

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

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

示例代码

Hello World

puts :: Def ('[IString] :-> Sint32)
puts  = importProc "puts" "stdio.h"

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

Ivory 编写的 Hello World

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 程序,使用了循环和可变状态(mutable state)

的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

十大响应式Web设计框架

响应式Web设计(Responsive Web design)的理念是:集中创建页面的图片排版大小,可以智能地根据用户行为以及使用的设备环境(系统平台、屏幕尺寸、屏幕定向等)进行相对应的布局。...

2014/10/29 17:32
711
1
JDOM生成XML文档(一)

package com.ninemax.common.utils; import java.io.FileOutputStream; import org.jdom.DocType; import org.jdom.Document; import org.jdom.Element; import org.jdom.output.Format; imp...

2016/05/06 17:57
69
2
Keras: 基于Theano和TensorFlow的深度学习库

Keras is a minimalist, highly modular neural networks library, written in Python and capable of running on top of either [TensorFlow](https://github.com/tensorflow/tensorflow) o...

2016/09/12 15:00
229
0
Magento批量导入CSV文件各字段说明

字段名称 字段备注 字段值示范 其它说明 store 网站的store,基本上填admin admin   websites 网站的websites,默认是base,如有支持多个website,就填指定的websites base   attribute_set 商...

2014/04/21 12:09
72
0
The Seahawks 49ers and

The Seahawks 49ers and

2015/06/02 13:13
5
0
颜色名列表

颜色名 十六进制颜色值 颜色 AliceBlue #F0F8FF AntiqueWhite #FAEBD7 Aqua #00FFFF Aquamarine #7FFFD4 Azure #F0FFFF Beige #F5F5DC Bisque #FFE4C4 Black #000000 BlanchedAlmond #FFEBCD...

2016/03/11 15:34
9
1

没有更多内容

加载失败,请刷新页面

返回顶部
顶部