StreamIt:用于流式应用的编程语言
在当今的计算领域中,流式应用变得越来越重要且广泛。从嵌入式设备到消费级桌面,再到高性能服务器,许多系统都围绕着“流”的概念构建。然而,现有的编程语言和编译器对大规模流式编程的支持却十分有限,大多数程序员不得不使用通用语言来实现流式程序,但这些通用语言在流式编程方面存在诸多不足。StreamIt 正是为现代流式编程专门设计的语言和编译器,下面我们来详细了解一下。
流式应用的背景与问题
流式应用在各个领域都有广泛的应用,比如 Click 模块化路由器、Spectrumware 软件无线电、蓝牙通信协议、GSM 语音编码器、AMPS 蜂窝基站等,以及使用 Microsoft 的 DirectShow 库、Real Network 的 RealSDK 或 Lincoln Lab 的多态计算架构开发的应用。但目前,通用语言在流式编程中存在明显的不足:
- 与应用领域不匹配 :通用语言无法自然直观地表示流,影响了代码的可读性、健壮性和程序员的生产力。同时,编译器无法感知流的特性,不能进行特定于流的优化,导致性能关键的循环通常需要用低级汇编语言手动编写,并且要为每个目标架构重新实现,这既耗时又容易出错,成本还很高。
- 与新兴架构不匹配 :对于特别适合流处理的基于网格的架构,通用语言(如 C)所提供的抽象不再适用。C 语言是为冯·诺依曼架构提供“通用机器语言”,但基于网格的架构有多条指令流和分布式内存库,C 语言无法为底层硬件提供正确的抽象,通常需要特定于架构的指令才能获得合理的性能,这大大增加了程序员的工作复杂度,也影响了代码的可移植性。
超级会员免费看
订阅专栏 解锁全文
2278

被折叠的 条评论
为什么被折叠?



