forsyde-shallow: ForSyDe's Haskell-embedded Domain Specific Language.

[ bsd3, language, library ] [ Propose Tags ]

The ForSyDe (Formal System Design) methodology has been developed with the objective to move system design to a higher level of abstraction and to bridge the abstraction gap by transformational design refinement.

This library provides a shallow implementation of ForSyDe as a Haskell-embedded Domain Specific Language (DSL). For more information, please see ForSyDe's website: https://forsyde.github.io/. For examples and tutorials using ForSyDe.Shallow, check the forsyde-shallow-examples repository.

This package is a spin-off of the ForSyDe project and it follows its versioning.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 3.3.1.0, 3.3.2.0, 3.3.3.0, 3.4.0.0, 3.4.0.1, 3.5.0.0
Dependencies base (>=4.6 && <6), directory, old-time, process, random [details]
License BSD-3-Clause
Copyright Copyright (c) 2003-2021 ForSyDe Group, KTH/EECS/ELE
Author ForSyDe Group, KTH/EECS/ELE
Maintainer ForSyDe Group <forsyde-dev@eecs.kth.se>
Category Language
Home page http://forsyde.ict.kth.se/
Source repo head: git clone git://github.com/forsyde/forsyde-shallow
Uploaded by ingo at 2021-03-19T10:26:59Z
Distributions NixOS:3.5.0.0
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 2661 total (18 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2021-03-19 [all 1 reports]

Readme for forsyde-shallow-3.5.0.0

[back to package description]

Build Status

ForSyDe's Haskell-embedded Domain Specific Language

Description

The ForSyDe (Formal System Design) methodology has been developed with the objective to move system design to a higher level of abstraction and to bridge the abstraction gap by transformational design refinement.

This library provides a shallow implementation of ForSyDe as a Haskell-embedded Domain Specific Language (DSL)

For more information, please see ForSyDe's website.

Installation

The forsyde-shallow package is available through HackageDB and the latest stable release can be installed via your favorite Haskell package manager.

Using Stack

The easiest way to getting started is by using the Stack package manager, which takes care of fetching and installing an appropriate version of the Haskell compiler, the dependent packages, and sets everything up in a sandboxed environment.

stack update
stack upgrade
stack install forsyde-shallow
stack ghci      # starts an interpreter session

To install the latest updates and nightly builds you need clone this repository. To install and use the contents of this repository globally, some useful commands are:

stack install
stack test                        # runs the test suites
stack haddock                     # generates the API documentation
stack ghci --no-load              # starts an interpreter session, option given to avoid pre-loading all modules

Using Cabal

You can use the Cabal package manager, but then you need to take care of acquiring an appropriate Haskell tool suite which includes the GHC compiler and the cabal-install package.

cabal update
cabal install forsyde-shallow
ghci

To install the latest updates and nightly builds you need clone this repository. To install and use the contents of this repository globally, some useful commands are:

cabal install -j4 --enable-tests
cabal configure --enable tests
cabal test                        # runs the test suites
cabal haddock                     # generates the API documentation
ghci                              # starts an interpreter session

To install and use the contents of this repository in a sandbox environment (recommended), the equivalent commands are:

cabal sandbox init
cabal install -j4 --enable-tests
cabal configure --enable tests
cabal test                        # runs the test suites
cabal haddock                     # generates the API documentation
cabal repl                        # starts an interpreter session with the sandbox loaded

Getting started

To get started with using ForSyDe.Shallow, once succesfully installed open an interpreter session and load the library:

> :m +ForSyDe.Shallow
> let s = signal [1..4] :: Signal Int
> mooreSY (+) (*2) 0 s
{0,2,6,12,20}

The example above implements a Moore finite state machine that calculates the running sum and multiplies the output with 2. For more examples and tutorials please check the forsyde-shallow-examples repository, and the online API documentation