Yhc/Core conversion infrastructure

From HaskellWiki
< Yhc
Revision as of 15:10, 8 August 2008 by DimitryGolubovsky (talk | contribs) (Added back-ends)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Definition

Yhc Core Conversion Infrastructure is a collection of libraries and tools written mainly in Haskell, and also in other programming languages, aimed at producing of Yhc Core by existing and future Haskell (not excluding possibilities for other languages) compilers, unified optimization and linkage of compiled Yhc Core, and conversion of Yhc Core into executable modules for various runtimes.

Classes of libraries

The infrastructure includes libraries and tools that fall into following classes: front-ends, central Core processing, back-ends, and drivers. The following sections describe the purpose of libraries and tools in each category, and also what exists and/or being developed.

Front ends

These libraries provide functionality to accept some form of output from a compiler, and produce linked Yhc Core. Some front-end specific optimizations may be performed.

Existing front ends:


Hugs

Intermediate output (Hugs Core) is parsed and converted into linked Yhc Core.

Developer: Dimitry

Status: 75% developed (as of Aug 2008)

Cabal name: hugs2yc

Repo: http://code.haskell.org/hugs2yc/

Central Core processing

These libraries provide facilities to run overall optimizations on linked Yhc Core that are not specific to any front- and back-end.


Yhccore

Main library to handle Yhc Core.

Developer: Neil

Status: released

Cabal name: yhccore

Hackage: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/yhccore


Ycextra

Provides extended functionality to handle Yhc Core, including the Annotations facility, and specification of the Normal Set of primitives

Developer: Dimitry

Status: 75% developed (as of Aug 2008)

Cabal name: ycextra

Repo: http://code.haskell.org/ycextra/


Back ends

These libraries provide facilities to convert linked Yhc Core to a format recognizable by the target platform. They may as well provide some extended inter-language interface tools such as automatic Haskell foreign import generators, etc.


Core Erlang

Converts linked Yhc Core to Core Erlang source for subsequent compilation to Erlang loadable modules (BEAM) by erlc.

Developer: Dimitry

Status: 50% developed (as of Aug 2008)

Cabal name: yc2erl

Repo: http://code.haskell.org/yc2erl/


Drivers

This class of tools provides complete solutions to use a particular compiler with a patricular target platform.

None developed at the moment.

Historical development