Coder Social home page Coder Social logo

cameronrking / enso-lang Goto Github PK

View Code? Open in Web Editor NEW

This project forked from enso-lang/enso

0.0 0.0 0.0 97.26 MB

Home Page: http://enso-lang.org

License: Other

Shell 0.13% JavaScript 11.17% Ruby 24.29% PHP 1.08% CSS 2.84% Gnuplot 0.01% Makefile 0.09% HTML 33.16% Rascal 3.88% Gherkin 0.01% TSQL 23.32% CodeQL 0.03%

enso-lang's Introduction

Getting started with Enso
=========================
This project contains Ensō, a theoretically sound and practical reformulation 
of the concepts of model-driven software development.

See http://enso-lang.org for more information.



1) Installation
---------------
Main Enso requires no installation but individual modules might have outside
dependencies. There is a makefile for Javascript translation. It is used
for running GUIs in the browser.

You need:
 - Ruby 1.9.3 (fully tested with 2.1.0)
 - json gem (required!)
 - test-unit gem (required!)

You may need:
 - bigdecimal gem
 - colored gem (for debugger)
 - rake (for web)
 - electron (for new stencil)

You may want (only if you know you do):
 - Eclipse IDE. Suggested configuration files are kept in git.
 - Rascal. There is an Enso plugin for Rascal.

2) How to run Enso
------------------

a) cd to {ENSO_HOME}/src

b) Run: ruby -I. {SOME RUBY FILE}

  eg. ruby -I. core/expr/code/eval.rb

You can add the following to your .bashrc to avoid the -I switch:

  export RUBYOPT="-I {ENSO_HOME}/src"

There are several commonly used utility functions in the /bin directory. These
are all aliases to existing Ruby files.

3) Running the demos
--------------------
Refer to README in individual sample for running instructions.

* bin/render.sh <ModelName> [grammarName]
    where ModelName is any model in the system. Examples include:
      schema.schema grammar.grammar schema.grammar grammar.schema
      stencil.schema state_machine.schema door.state_machine
      grades.schema. The OPTIONAL grammar name says what grammar to use
      to render the output.
      
* Run GUI applications
    a)  cd {ENSO_HOME}/src/js
    b)  {path-to-electron}Electron .
    alt b) npm install; npm start
      
      You can use CMD-O to open/edit many models. Examples include:
		      ../core/schema/models/schema.schema 
		      ../core/grammar/models/grammar.schema
		      ../core/diagram/models/stencil.schema 
		      ../demo/StateMachine/models/state_machine.schema
		      ../demo/StateMachine/test/door.state_machine
 
* demo/StateMachine
Simple state machine example to demonstrate writing a schema, grammar, and 
interpreter.
   ruby -I. demo/StateMachine/tests/example.rb demo/StateMachine/tests/door.state_machine
Then type "open" "close" "lock" each on its own line (without quotes).

* demo/LiveSheet
   Simple replacement for Excel spreadsheats. Still in development.
   ruby -I. demo/LiveSheet/test/test.rb

* [NOT WORKING] demo/Piping
Most complete example from LWC '12. Has schema, grammar and interpreter for a 
water heating simulation system and its state-machine-based controller. Output
is rendered via stencil. Also feature a modular debugger.

* demo/Questionaire
Questionaire language submission for LWC '13. Zero lines of code! Logic is 
completely embedded into stencil (mostly) and grammar/schema.

* core/expr
Basic expression language and evaluator. Features value tracking (tainting) and
functional reactive programming (FRP).
  Two tests that run the examples in core/expr/test
		ruby -I. core/expr/test/test_expr.rb
		ruby -I. core/expr/test/test_impl.rb

enso-lang's People

Contributors

tvdstorm avatar w7cook avatar alexloh avatar davylandman avatar enso-shared avatar mgannholm avatar montyz 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.