The CPL package

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]

An interpreter of Hagino's Categorical Programming Language (CPL).


[Skip to ReadMe]

Properties

Versions0.0.5, 0.0.6, 0.0.7, 0.0.7, 0.0.8
Change logCHANGELOG.markdown
Dependenciesarray, base (==4.*), containers, haskeline, mtl (>=2.0.0.0), parsec, readline [details]
LicenseBSD3
AuthorMasahiro Sakai (masahiro.sakai@gmail.com)
Maintainermasahiro.sakai@gmail.com
CategoryCompilers/Interpreters
Source repositoryhead: git clone git://github.com/msakai/cpl.git
Executablescpl
UploadedWed Aug 13 02:06:40 UTC 2014 by MasahiroSakai

Flags

NameDescriptionDefaultType
readline

Use Readline

EnabledAutomatic
haskeline

Use Haskeline

EnabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainers' corner

For package maintainers and hackage trustees


Readme for CPL-0.0.7

[back to package description]

An implementation of "A Categorical Programing Language"

Build Status

This package is an implementation of "A Categorical Programing Language" (CPL for short)[1][2] written in Haskell.

CPL is a functional programming language based on category theory. Data types are declared in a categorical manner by adjunctions. Data types that can be handled include the terminal object, the initial object, the binary product functor, the binary coproduct functor, the exponential functor, the natural number object, the functor for finite lists, and the functor for infinite lists. Each data type is declared with its basic operations or morphisms. Programs consist of these morphisms, and execution of programs is the reduction of elements (i.e. special morphisms) to their canonical form.

Install

De-Compress archive and enter its top directory. Then type:

$ cabal configure
$ cabal build
$ cabal install

If you want to compile with readline or haskeline, add -fReadline or -fHaskeline respectively to configure command.

Usage

See chapter 5 of [1]

License

This program is licenced under the BSD-style license. (See the file 'COPYING'.)

Copyright (C) 2004-2014 Masahiro Sakai masahiro.sakai@gmail.com

Author

Masahiro Sakai masahiro.sakai@gmail.com

Bibliography

(1) Tatsuya Hagino, “A Categorical Programming Languge”. Ph.D. Thesis, University of Edinburgh, 1987 available at http://www.tom.sfc.keio.ac.jp/~hagino/index.html.en

(2) Tatsuya Hagino, “Categorical Functional Programming Language”. Computer Software, Vol 7, No.1. Advances in Software Science and Technology 4, 1992 ISBN 0-12-037104-9