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.
近期下载者:
相关文件:
收藏者: