Code Monkey home page Code Monkey logo

lips's Introduction

Lips programming language

Rationale

There aren’t many embeddable lisps out there. One could argue that there are some projects like guile, s7 lisp, racket etc. But I want something very simple yet fast like lua. Lips tries to be both very simple and featureful language.

Why use lips:

  • small and easy to integrate codebase. The interpreter is implemented in two files: lips.h and lips.c. There are nearly 3000 lines of code in this files. I guarantee that in future interpreter won’t exceed 5000 Loc. However there’re will be some additional modules.
  • performance.
  • simplified syntax. Lisp syntax is best syntax for programming ever. Period.

Why not use lips

  • There’re probably some bugs.
  • API is unstable.
  • No libraries/packages. One should write them by themselves using FFI. I plan to write some standard modules though.
  • No support for common text editors. I plan for writing some mode for Emacs. For now if you use Emacs you can put “;; -*- mode: scheme -*-” at beginning of a file.

Roadmap

Builtin property lists aka plists

Improve tests

Decent error handling

Exceptions are implemented. Need to improve error handling inside internal functions.

User-defined types

This is a needed feature.

Builtin functions/macros

  1. arithmetic functions that work both on integers and floats(+, /, - etc.)
  2. list managing functions(car, list, caddaar etc.)
  3. general functions(===, nilp, typeof etc.)
  4. environment functions(eval, intern etc.)
  5. string functions(format, concat, capitalize etc.).

Docstrings

Syntactic sugar

(quote something) -> 'something
(lambda (a) $car (list a 7 6 5)) -> (lambda (a) (car (list a 7 6 5)))

Narrow down amount of allocations

lips's People

Contributors

lllida avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.