Run the included example programs to understand how data flows through a Streem pipeline step by step.
Build the Streem compiler from C source to experiment with the language and study a minimal compiler implementation.
Use Streem's pipeline model as a reference when designing your own concurrent or stream-oriented language.
Explore stream-oriented concurrency concepts inspired by shell pipes, functional programming, and Erlang.
Requires bison and flex to be installed before building the Streem compiler from C source.
Streem is an experimental programming language created by Yukihiro Matsumoto, the person who designed the Ruby programming language. The README notes that Streem was still in the design phase when last updated and was not yet fully working. The core idea behind Streem is to treat programs as a series of data flows, similar to how shell scripts pipe output from one command to the next. In Streem, you connect a source of data to a destination using the pipe symbol, and the language handles processing each item as it moves through. For example, connecting stdin to stdout creates a simple passthrough program, and you can insert transformation steps in the middle to filter or modify the data as it flows. This pipeline style draws from ideas found in shell scripting, functional programming languages, and Erlang. The language is intended to be concurrent, meaning multiple parts of a pipeline can run at the same time rather than one step waiting for the previous one to finish. The repository includes a compiler written in C that requires the bison and flex tools to build. A small collection of example programs is included in the examples/ folder, covering things like basic input and output, FizzBuzz, and other simple demonstrations of the pipeline model. The project is licensed under the MIT license and contributions are accepted via pull requests. Given the early-stage nature of the project, Streem is mainly of interest to people curious about programming language design and the exploration of stream-oriented concurrency models.
← matz on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.