https://github.com/hychen/iclang
A coordination language for compositing things of internet.
https://github.com/hychen/iclang
Last synced: 4 months 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 (over 11 years ago)
- Default Branch: master
- Last Pushed: 2015-06-29T09:28:18.000Z (almost 11 years ago)
- Last Synced: 2024-12-31T08:45:43.653Z (over 1 year 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_SRC
for 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_SRC
and 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_SRC
then simply type
#+BEGIN_SRC shell
$ npm i
#+END_SRC
now, you can run test.
#+BEGIN_SRC shell
$ npm run test
#+END_SRC