StreamIt
麻省理工學院(MIT,注意StreamIt的後三個字母)開發的一個面向多核的流語言編譯程式。
常多套用於多媒體領域。
void -> void pipeline Minimal{
add IntSource;add IntPrinter;
}
void -> int filter IntSource {
int x;
init { x = 0;}
work push 1 { push(x++); }
}
int -> void filter IntPrinter {
work pop 1 { print(pop()); }
}
下面是斐波那契數列的產生,用StreamIt實現
void->void pipeline Fib {
add feedbackloop {join roundrobin(0, 1);
body PeekAdd();
loop Identity<int>();
split duplicate;
enqueue 0;
enqueue 1;
};
add IntPrinter();
}
int->int filter PeekAdd {
work push 1 pop 1 peek 2 {
push(peek(1) + pop());
}
}
int->void filter IntPrinter {
work pop 1 {
println(pop());
}
}
StreamIt編譯命令及語法StreamIt程式以.str結尾,編譯程式命令 STRC *.str 或者 strc *.str -library(調用JAVA庫)
運行已編譯好的程式用命令 ./a.out
目前一般linux平台上run
由於StreamIt編譯器將.str代碼轉換成中間代碼.java
所以StreamIt有許多規則同JAVA類似 比如程式hello.str中最外的pipeline命名必須為hello
身為流語言的StreamIt結構相當清晰
dotty命令可以為證
查看右圖所示的.dot圖可用命令 dotty stream-graph-simple.dot
StreamIt語法可查看cookbook
建議在MIT網站上從例子中自己挖掘
附圖一張
如何查找StreamIt資料
StreamIt並未普及
了解這個語言的人相當有限
編譯器可在下面給出的擴展閱讀中的網站中找,是MIT的官方頁面。
另外,在google中收索StreamIt 國防科大 會有一些相關的文獻
在google中輸入StreamIt cookbook 會有在csdn上的資料。