All Projects → csabahruska → Jhc Components

csabahruska / Jhc Components

Licence: mit
JHC Haskell compiler split into reusable components

Programming Languages

c
50402 projects - #5 most used programming language
haskell
3896 projects

Projects that are alternatives of or similar to Jhc Components

Silt
An in-progress fast, dependently typed, functional programming language implemented in Swift.
Stars: ✭ 217 (+294.55%)
Mutual labels:  compiler, functional-programming
Groovy
Apache Groovy: A powerful multi-faceted programming language for the JVM platform
Stars: ✭ 4,359 (+7825.45%)
Mutual labels:  compiler, functional-programming
Fsharp
The F# compiler, F# core library, F# language service, and F# tooling integration for Visual Studio
Stars: ✭ 2,966 (+5292.73%)
Mutual labels:  compiler, functional-programming
Typelang
🌳 A tiny language interpreter implemented purely in TypeScript's type-system
Stars: ✭ 149 (+170.91%)
Mutual labels:  compiler, functional-programming
Ring
Innovative and practical general-purpose multi-paradigm language
Stars: ✭ 716 (+1201.82%)
Mutual labels:  compiler, functional-programming
Potigol
Linguagem Potigol - Linguagem de programação funcional moderna para iniciantes - A Functional Programming Language for Beginners
Stars: ✭ 179 (+225.45%)
Mutual labels:  compiler, functional-programming
Write You A Haskell
Building a modern functional compiler from first principles. (http://dev.stephendiehl.com/fun/)
Stars: ✭ 3,064 (+5470.91%)
Mutual labels:  compiler, functional-programming
Faust
Functional programming language for signal processing and sound synthesis
Stars: ✭ 1,360 (+2372.73%)
Mutual labels:  compiler, functional-programming
Mlton
The MLton repository
Stars: ✭ 683 (+1141.82%)
Mutual labels:  compiler, functional-programming
Clio
Clio is a functional, parallel, distributed programming language.
Stars: ✭ 555 (+909.09%)
Mutual labels:  compiler, functional-programming
Grain
The Grain compiler toolchain and CLI. Home of the modern web staple. 🌾
Stars: ✭ 2,199 (+3898.18%)
Mutual labels:  compiler, functional-programming
Grin
GRIN is a compiler back-end for lazy and strict functional languages with whole program optimization support.
Stars: ✭ 834 (+1416.36%)
Mutual labels:  compiler, functional-programming
Ghc Grin
GRIN backend for GHC
Stars: ✭ 123 (+123.64%)
Mutual labels:  compiler, functional-programming
Mlkit
Standard ML Compiler and Toolkit
Stars: ✭ 183 (+232.73%)
Mutual labels:  compiler, functional-programming
Bqn
An APL-like programming language. Self-hosted!
Stars: ✭ 100 (+81.82%)
Mutual labels:  compiler, functional-programming
Never
Never: statically typed, embeddable functional programming language.
Stars: ✭ 248 (+350.91%)
Mutual labels:  compiler, functional-programming
Idiolisp
A statically typed functional programming language
Stars: ✭ 78 (+41.82%)
Mutual labels:  compiler, functional-programming
Felix
The Felix Programming Language
Stars: ✭ 609 (+1007.27%)
Mutual labels:  compiler, functional-programming
Vtil Core
Virtual-machine Translation Intermediate Language
Stars: ✭ 738 (+1241.82%)
Mutual labels:  compiler, optimizer
Cfl
a Compileable statically typed Functional programming Language
Stars: ✭ 7 (-87.27%)
Mutual labels:  compiler, functional-programming

JHC Haskell Compiler

This is a fork of JHC Haskell Compiler 0.8.2.

The source code is split into reusable components and builds with Haskell Stack.

Components

  • jhc-compat: Haskell98 compatibility library
  • jhc-common: Compiler foundation library
  • jhc-frontend: Haskell Front-End, lexer, parser, type-checker
  • jhc-core: Core language, based on Pure Type System
  • jhc-grin: Backend, C code generator, whole program optimizer, variant of GRIN intermediate language
  • jhc-app: JHC Compiler, command line interface

NOTE: lib contains the standard Haskell libraries for JHC

System Requirements

Compile & Run

Stack

The instructions below are for Haskell Stack.

stack setup
stack build
stack exec -- jhc --help

To compile the standard libraries run:

stack exec -- jhc -L . --build-hl  lib/jhc-prim/jhc-prim.yaml
stack exec -- jhc -L . --build-hl  lib/jhc/jhc.yaml
stack exec -- jhc -L . --build-hl  lib/haskell-extras/haskell-extras.yaml
stack exec -- jhc -L . --build-hl  lib/haskell2010/haskell2010.yaml
stack exec -- jhc -L . --build-hl  lib/haskell98/haskell98.yaml
stack exec -- jhc -L . --build-hl  lib/applicative/applicative.yaml
stack exec -- jhc -L . --build-hl  lib/flat-foreign/flat-foreign.yaml

To compile the examples run:

stack exec -- jhc -L . examples/Calendar.hs -o calendar
stack exec -- jhc -L . examples/HelloWorld.hs -o hello
stack exec -- jhc -L . examples/Primes.hs -o primes

Cabal

The instructions below are for Haskell Cabal version 2.4.1 or later.

To (re)compile and run jhc from within the source-tree, simply invoke

cabal v2-run jhc -- --help

To compile the standard libraries run:

cabal v2-run jhc -- -L . --build-hl  lib/jhc-prim/jhc-prim.yaml
cabal v2-run jhc -- -L . --build-hl  lib/jhc/jhc.yaml
cabal v2-run jhc -- -L . --build-hl  lib/haskell-extras/haskell-extras.yaml
cabal v2-run jhc -- -L . --build-hl  lib/haskell2010/haskell2010.yaml
cabal v2-run jhc -- -L . --build-hl  lib/haskell98/haskell98.yaml
cabal v2-run jhc -- -L . --build-hl  lib/applicative/applicative.yaml
cabal v2-run jhc -- -L . --build-hl  lib/flat-foreign/flat-foreign.yaml

To compile the examples run:

cabal v2-run jhc -- -L . examples/Calendar.hs -o calendar
cabal v2-run jhc -- -L . examples/HelloWorld.hs -o hello
cabal v2-run jhc -- -L . examples/Primes.hs -o primes

Development Ideas

Check the list of development ideas.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].