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

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

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]

Properties

Versions 3.3.1.0, 3.3.2.0, 3.3.3.0, 3.4.0.0, 3.4.0.0, 3.4.0.1, 3.5.0.0
Change log None available
Dependencies base (>=4 && <6), directory, old-time, process, random [details]
License BSD-3-Clause
Copyright Copyright (c) 2003-2018 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 ugeorge at 2019-01-15T16:20:04Z

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for forsyde-shallow-3.4.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