Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hychen/iclang
A coordination language for compositing things of internet.
https://github.com/hychen/iclang
Last synced: 27 days ago
JSON representation
A coordination language for compositing things of internet.
- Host: GitHub
- URL: https://github.com/hychen/iclang
- Owner: hychen
- License: other
- Created: 2015-02-25T00:08:45.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2015-06-29T09:28:18.000Z (over 9 years ago)
- Last Synced: 2024-11-08T08:49:09.259Z (3 months ago)
- Language: TypeScript
- Homepage:
- Size: 960 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
- License: LICENSE
Awesome Lists containing this project
README
#+TITLE: Internet Combinator Language
#+AUTHOR:Hsin-Yi Chen (hychen)
#+OPTIONS: H:2 num:t toc:nil
#+OPTIONS: ^:nil
#+OPTIONS: <:nil todo:nil *:t ^:{} @:t ::t |:t TeX:t/WARNING: This is work in progress. The APIs will remain in flux until 1.0.0. Suggestions welcome!/
The things of internet is a highly interconnected collection of computational resources, and
as such it can be considred as forming a big computer. It is obviously to have some kind
of abstract programming language runs on this wired computer.Internet Combinator Language, ICLang in short, is a cordination language for compositing things on internet.
and designed in dataflow mindset with [[en.wikipedia.org/wiki/Configurable_modularity][configurable modularity]].Not like how we do when we building a application in conventional programming language, building a pplication
in ICLang is totally different, and almost like building a electronic circuit by wiring pins of integrated
circuits.Which means a developer defines applications as networks of "black box" processes, which exchange data across
predefined connections by message passing, where the connections are specified externally to the processes.These black box processes can be reconnected endlessly to form different applications without having to be changed
internally. So, when a developer programs, he is doing visual thinking in his mind.#+BEGIN_SRC ditaa
+-----------------------------------------------+
| +-------------+ +--------------+ |
| | | | | |
str|[]--->[]in Read out[]---->[]in Print out[]--->[]status
| | | | | |
| +-------------+ +--------------+ |
+-----------------------------------------------+
#+END_SRCfor more details, please check the [[file:spec/spec-iclang.org][specification]] in *spec* directory.
* Get started
** Install [[https://travis-ci.org/hychen/iclang.svg?branch=master]]
The Node.JS implementation of IClang requires [[https://github.com/imatix/zguide][ØMQ]] for send/receive data between components.#+BEGIN_SRC shell
$ brew install zmq
#+END_SRCand then get recent version of Node.js and the IClang source code via Github.
#+BEGIN_SRC shell
$ git clone https://github.com/hychen/iclang.git
#+END_SRCthen simply type
#+BEGIN_SRC shell
$ npm i
#+END_SRCnow, you can run test.
#+BEGIN_SRC shell
$ npm run test
#+END_SRC