fbpx
维基百科

SISAL

SISAL(串流和迭代所用单赋值语言)是通用单赋值函数式编程语言,它具有严格语义英语Strict function隐式并行英语Implicit parallelism和高效阵列处理。SISAL输出中间形式1(IF1)的数据流程。它派生自VAL(Jack Dennis英语Jack Dennis1979年设计的面向值的算法语言),并增加了递归和有限串流(stream)。它有着类Pascal语法,并被设计为用于在各种多处理器上的数值程序的高级语言。

SISAL
编程范型函数式数据流程
設計者James McGraw
實作者James McGraw等人,在曼彻斯特大学LLNL科罗拉多州立大学DEC
发行时间1983年,​40年前​(1983
型態系統静态强类型
網站sourceforge.net/projects/sisal/
主要實作產品
osc, sisalc
啟發語言
VAL, Pascal, C, Fortran
影響語言
HaskellSAC

历史 编辑

SISAL的定义在1983年由James McGraw等人于曼彻斯特大学劳伦斯利弗莫尔国家实验室科罗拉多州立大学DEC提出[1]。它被修订于1985年,而第一个编译实现于1986年做出。据某些来源所说[2],它的性能优于C并匹敌Fortran,它将高效性和自动并行化英语Automatic parallelization结合了起来。

它有如下版本:Cray X-MP英语Cray X-MP、Cray Y-MP英语Cray Y-MPCray-2Sequent英语Sequent Computer SystemsEncore Alliant英语Encore ComputerDEC VAX-11/784数据流程架构英语Dataflow architecture、KSR1、Transputer脉动阵列英语Systolic array

架构 编辑

SISAL不只是数据流程和细粒度并行的语言。它还是把人类可读文字的数据流程语言转换成图格式(所谓的“IF1”,即中间形式1)的一组工具。SISAL计划有一部份还涉及到将这种图转换成可运行的C代码[3]

例子 编辑

两个n×n矩阵的乘法的例子程序:

define main type OneDim = array [real]; type TwoDim = array [OneDim]; function generate(n : integer returns TwoDim, TwoDim)  for i in 1, n cross j in 1, n  returns array of real(i)/real(j)  array of real(i)*real(j)  end for end function % generate function doit(n : integer; A, B : TwoDim returns TwoDim)  for i in 1, n  cross j in 1, n  c := for k in 1, n  t := A[i,k] * B[k,j]  returns value of sum t  end for  returns array of c  end for end function % doit function main(n : integer returns TwoDim) let A, B := generate(n) in  doit(n, A, B) end let end function % main 

SISAL复兴 编辑

在2010年SISAL短暂的复活了,伍斯特理工学院的一群本科生为SISAL语言探究实现了一个细粒度并行后端[3]

在2018年于SISAL-IS计划中SISAL被现代化为基于缩进的语法、头等函数、lambda、闭包和惰性语义[4]

脚注 编辑

  1. ^ James R. McGraw, Stephen K. Skedzielewski, Stephen J. Allan, Dale H. Grit, R. Oldehoeft, John R. W. Glauert, Ivan Dobes, Paul H. Hohensee. SISAL: streams and iteration in a single-assignment language. Language reference manual。
  2. ^ Retire Fortran?: a debate rekindled, David Cann, August 1992, Communications of the ACM, Volume 35, Issue 8
  3. ^ 3.0 3.1 存档副本 (PDF). [2020-04-17]. (原始内容 (PDF)于2016-03-04). 
  4. ^ 存档副本. [2020-04-17]. (原始内容于2018-06-12). 

引用 编辑

本條目部分或全部内容出自以GFDL授權發佈的《自由線上電腦詞典》(FOLDOC)。

外部链接 编辑

  • SISAL Parallel Programming(页面存档备份,存于互联网档案馆) SourceForge.net project page

sisal, 串流和迭代所用单赋值语言, 是通用单赋值函数式编程语言, 它具有严格语义, 英语, strict, function, 隐式并行, 英语, implicit, parallelism, 和高效阵列处理, 输出中间形式1, 的数据流程图, 它派生自val, jack, dennis, 英语, jack, dennis, 1979年设计的面向值的算法语言, 并增加了递归和有限串流, stream, 它有着类pascal语法, 并被设计为用于在各种多处理器上的数值程序的高级语言, 编程范型函数式, 数据流程. SISAL 串流和迭代所用单赋值语言 是通用单赋值函数式编程语言 它具有严格语义 英语 Strict function 隐式并行 英语 Implicit parallelism 和高效阵列处理 SISAL输出中间形式1 IF1 的数据流程图 它派生自VAL Jack Dennis 英语 Jack Dennis 1979年设计的面向值的算法语言 并增加了递归和有限串流 stream 它有着类Pascal语法 并被设计为用于在各种多处理器上的数值程序的高级语言 SISAL编程范型函数式 数据流程設計者James McGraw實作者James McGraw等人 在曼彻斯特大学 LLNL 科罗拉多州立大学和DEC发行时间1983年 40年前 1983 型態系統静态 强类型網站sourceforge wbr net wbr projects wbr sisal wbr 主要實作產品osc sisalc啟發語言VAL Pascal C Fortran影響語言Haskell SAC 目录 1 历史 2 架构 3 例子 4 SISAL复兴 5 脚注 6 引用 7 外部链接历史 编辑SISAL的定义在1983年由James McGraw等人于曼彻斯特大学 劳伦斯利弗莫尔国家实验室 科罗拉多州立大学和DEC提出 1 它被修订于1985年 而第一个编译实现于1986年做出 据某些来源所说 2 它的性能优于C并匹敌Fortran 它将高效性和自动并行化 英语 Automatic parallelization 结合了起来 它有如下版本 Cray X MP 英语 Cray X MP Cray Y MP 英语 Cray Y MP Cray 2 Sequent 英语 Sequent Computer Systems Encore Alliant 英语 Encore Computer DEC VAX 11 784 数据流程架构 英语 Dataflow architecture KSR1 Transputer和脉动阵列 英语 Systolic array 架构 编辑SISAL不只是数据流程和细粒度并行的语言 它还是把人类可读文字的数据流程语言转换成图格式 所谓的 IF1 即中间形式1 的一组工具 SISAL计划有一部份还涉及到将这种图转换成可运行的C代码 3 例子 编辑两个n n矩阵的乘法的例子程序 define main type OneDim array real type TwoDim array OneDim function generate n integer returns TwoDim TwoDim for i in 1 n cross j in 1 n returns array of real i real j array of real i real j end for end function generate function doit n integer A B TwoDim returns TwoDim for i in 1 n cross j in 1 n c for k in 1 n t A i k B k j returns value of sum t end for returns array of c end for end function doit function main n integer returns TwoDim let A B generate n in doit n A B end let end function mainSISAL复兴 编辑在2010年SISAL短暂的复活了 伍斯特理工学院的一群本科生为SISAL语言探究实现了一个细粒度并行后端 3 在2018年于SISAL IS计划中SISAL被现代化为基于缩进的语法 头等函数 lambda 闭包和惰性语义 4 脚注 编辑 James R McGraw Stephen K Skedzielewski Stephen J Allan Dale H Grit R Oldehoeft John R W Glauert Ivan Dobes Paul H Hohensee SISAL streams and iteration in a single assignment language Language reference manual Retire Fortran a debate rekindled David Cann August 1992 Communications of the ACM Volume 35 Issue 8 3 0 3 1 存档副本 PDF 2020 04 17 原始内容存档 PDF 于2016 03 04 存档副本 2020 04 17 原始内容存档于2018 06 12 引用 编辑本條目部分或全部内容出自以GFDL授權發佈的 自由線上電腦詞典 FOLDOC VAL Overview Sisal Language Tutorial 页面存档备份 存于互联网档案馆 外部链接 编辑SISAL Parallel Programming 页面存档备份 存于互联网档案馆 SourceForge net project page 取自 https zh wikipedia org w index php title SISAL amp oldid 78025416, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。