jbr/sibilant


Just another compile-to-js LISP-like language

https://sibilant.org

License: MIT

Language: JavaScript


CI Gitter

Sibilant

  • Sibilant is a language that is parsed by javascript and compiles to javascript.
  • Sibilant is inspired by lisp and follows many lisp conventions, although it is still relatively close to the underlying javascript.
  • Macros can be defined in sibilant and included at compile time.
  • Sibilant is entirely written in sibilant.

Language Priorities

  • Prefer verbose names to abbreviations by default.
  • Avoid line noise. Prefer established punctuation semantics from natural languages and common programming languages (eg commas come after things and mean a pause or separation).
  • Prefer readable and idiomatic javascript output, which necessitates sticking fairly closely to javascript semantics. Switching cost from sibilant to directly editing the output javascript should be low.
  • Prefer expressions to statements. This is the most notable exception to the adherance to idiomatic javascript. Self-executing functions are used extensively to this end.
  • Allow as much of the language to be modified in-source as possible. This includes the ability to rename/remove/redefine all keywords and macros.
  • Any language constructs that do not output readable javascript should be opt-in.
  • Add language features slowly, and only when there's a real use case. Don't blindly implement Lisp features without reasoning through the need.
  • Provide tools to simplify avoidance of repetition.

Installation

First, install node.js [ github ] and npm [ github ]. Then, it's as simple as:

$ npm install sibilant -g
$ sibilant --help

Hello world in the REPL

$ sibilant
sibilant> (  1 2)
(1   2)
result: 3
sibilant> (console.log "hello world")
console.log("hello world")
hello world

Try it before you install

sibilant.org includes an in-browser as-you-type sibilant compiler and tutorial, so you can get a sense of the language without leaving your browser.

Learning the language

The most up to date documentation is at sibilant.org and docs.sibilant.org. Also, check out sibilant itself, which is written 100% in sibilant to get a sense of what's possible.

License

Sibilant is released under the MIT license (wikipedia).

Project Statistics

Sourcerank 11
Repository Size 5.05 MB
Stars 384
Forks 51
Watchers 19
Open issues 25
Dependencies 7
Contributors 9
Tags 33
Created
Last updated
Last pushed

Top Contributors See all

Jacob Rothstein  Matthew Phillips Lyndon Tremblay Dimitri Wayland Ben Lambert Tadeu Zagallo Jonathan Arkell matthewpblog Gustavo Schmidt

Packages Referencing this Repo

sibilant
javascript with a lisp
Latest release 0.5.6 - Updated - 384 stars

Recent Tags See all

v0.5.6 July 29, 2020
0.5.5 May 01, 2016
0.5.4 April 26, 2016
0.5.3 April 22, 2016
0.5.2 April 22, 2016
0.5.1 March 29, 2016
0.5.0 March 21, 2016
0.3.8 January 05, 2016
0.3.7 December 24, 2015
0.3.6 December 19, 2015
0.3.5 November 28, 2015
0.3.4 November 24, 2015
0.3.3 November 20, 2015
0.3.2 November 11, 2015
0.3.1 November 07, 2015

Interesting Forks See all

yuest/sibilant
Javascript with a lisp
JavaScript - MIT - Last pushed - 2 stars - 1 forks

Something wrong with this page? Make a suggestion

Last synced: 2020-07-29 21:01:19 UTC

Login to resync this repository