paradise

所属分类:编译器/解释器
开发工具:Haskell
文件大小:66KB
下载次数:0
上传日期:2020-05-15 21:16:01
上 传 者sh-1993
说明:  一种编译为LLVM的编程语言
(A programming language that compiles to LLVM)

文件列表:
LICENSE (1533, 2020-05-16)
Makefile (85, 2020-05-16)
Setup.hs (46, 2020-05-16)
app (0, 2020-05-16)
app\Main.hs (1138, 2020-05-16)
opencl (0, 2020-05-16)
opencl\setup.c (515, 2020-05-16)
package.yaml (1719, 2020-05-16)
samples (0, 2020-05-16)
samples\asm (0, 2020-05-16)
samples\asm\read.para (168, 2020-05-16)
samples\asm\syscall.para (446, 2020-05-16)
samples\asm\write.para (133, 2020-05-16)
samples\basic (0, 2020-05-16)
samples\basic\add.para (84, 2020-05-16)
samples\basic\div.para (81, 2020-05-16)
samples\basic\mul.para (81, 2020-05-16)
samples\basic\sub.para (81, 2020-05-16)
samples\flow (0, 2020-05-16)
samples\flow\if.para (88, 2020-05-16)
samples\flow\if2.para (84, 2020-05-16)
samples\flow\while1.para (95, 2020-05-16)
samples\func (0, 2020-05-16)
samples\func\func.para (101, 2020-05-16)
samples\func\func2.para (90, 2020-05-16)
samples\func\recursion.para (159, 2020-05-16)
samples\include (0, 2020-05-16)
samples\include\inc.para (54, 2020-05-16)
samples\include\includer.para (86, 2020-05-16)
samples\inference (0, 2020-05-16)
samples\inference\add.para (71, 2020-05-16)
samples\inference\err1.para (73, 2020-05-16)
samples\io (0, 2020-05-16)
samples\io\readFile.para (111, 2020-05-16)
samples\io\test.txt (13, 2020-05-16)
samples\memory (0, 2020-05-16)
samples\memory\arr.para (237, 2020-05-16)
... ...

# Paradise A programming language with compiles to LLVM with OpenCL # Sample programs Squaring and summing an array: ``` module main I*** sumSqrs() { let data1 = [1,2,3,4,5,6,7,8,9,10]; let sqrs = [0,0,0,0,0,0,0,0,0,0]; [|sqrs = data1 .* data1 |]; let sum = 0; for i in sqrs { sum = sum + i; } return sum; } ``` This creates the OpenCL Kernel ``` __kernel void MYPROG (__global long* t2_sqrs,__global long* t0_data1,__global long* t1_data2) { const int i = get_global_id(0); t2_sqrs[i] = t0_data1[i] * t1_data2[i]; } ``` which is used to execute the array multiplication. Check out the `samples` directory for even more samples. # Building Requires Stack, llvm, and OpenCL ``` stack install stack test ``` # Running ``` # Compile parac myfile.para # Run ./a.out ``` # Editor Support If you use Emacs, you can add ``` (setq para-highlights '(("\\\\|\\\\|\\\\|\\\\|\\\\|\\\\|\\\\|\\" . font-lock-keyword-face) ("\\/\\/.*" . font-lock-comment-face) ("\\<[A-Z][_A-Za-z0-9]*\\>" . font-lock-type-face) ("\"[^\"]*\"" . font-lock-type-face) )) (define-derived-mode para-mode fundamental-mode "para" "major mode for editing para" (setq font-lock-defaults '(para-highlights)) ) ``` to your .emacs to get basic syntax highlighting.

近期下载者

相关文件


收藏者