欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
Haskell ecosystem
来自开放百科 - 灰狐
(版本间的差异)
小 (→语言编译器) |
小 (→语言编译器) |
||
第28行: | 第28行: | ||
*[https://haskell.libhunt.com/categories/3068-language Haskell Language] [https://haskell.libhunt.com/categories/2307-compiler Haskell Compiler] | *[https://haskell.libhunt.com/categories/3068-language Haskell Language] [https://haskell.libhunt.com/categories/2307-compiler Haskell Compiler] | ||
*[https://wiki.haskell.org/Implementations Implementations (GHC, Hugs, NHC, JHC, Yhc, UHC)] [https://www.haskell.org/ghc/ Glasgow Haskell Compiler (GHC)] [https://github.com/UU-ComputerScience/uhc Utrecht Haskell Compiler (UHC)] [https://github.com/Lemmih/lhc LLVM Haskell Compiler (LHC)] [https://wiki.haskell.org/Yhc York Haskell Compiler (Yhc)] | *[https://wiki.haskell.org/Implementations Implementations (GHC, Hugs, NHC, JHC, Yhc, UHC)] [https://www.haskell.org/ghc/ Glasgow Haskell Compiler (GHC)] [https://github.com/UU-ComputerScience/uhc Utrecht Haskell Compiler (UHC)] [https://github.com/Lemmih/lhc LLVM Haskell Compiler (LHC)] [https://wiki.haskell.org/Yhc York Haskell Compiler (Yhc)] | ||
+ | [[文件:write-you-a-haskell.png]] [https://github.com/sdiehl/write-you-a-haskell Building a modern functional compiler from first principles] | ||
*[https://www.cs.kent.ac.uk/people/staff/dat/miranda/ Miranda] 是一种惰性求值的纯函数式编程语言,由英国学者大卫·特纳所设计,强烈的影响了后来发展出的 Haskell。 | *[https://www.cs.kent.ac.uk/people/staff/dat/miranda/ Miranda] 是一种惰性求值的纯函数式编程语言,由英国学者大卫·特纳所设计,强烈的影响了后来发展出的 Haskell。 | ||
*Haskell library for [https://github.com/haskell/lsp/tree/master/lsp Language Server Protocol] | *Haskell library for [https://github.com/haskell/lsp/tree/master/lsp Language Server Protocol] |
2021年12月16日 (四) 07:17的版本
Haskell ecosystem
目录 |
基金会
项目集
- Awesome Haskell
- State of the Haskell ecosystem
- Awesome Haskell @ LibHunt
- servant Rethinking webservices and APIs in Haskell, one combinator at a time(一次一个组合器)
- Holmusk
- Haskell ecosystem
用户服务商
- IOHK 是一个区块链研发团队,目前负责 Cardano Foundation 软件的开发。
- FP Complete
- Commercial Haskell SIG
- Galois, Inc.
- Serokell
- digitally induced
- Wire Swiss GmbH Wire.com backend services
- Scarf 帮助你了解你的代码是如何被使用的,并将你与那些依赖你的工作的公司联系起来。
- Keera Studios The Haskell Game & Mobile App company @ GitHub
- 为什么 Haskell 是我们(Foxhound Systems)构建生产软件系统的首选 Concordium 混合使用 Rust & Haskell Concordium @ GitHub
语言编译器
- Haskell Language Haskell Compiler
- Implementations (GHC, Hugs, NHC, JHC, Yhc, UHC) Glasgow Haskell Compiler (GHC) Utrecht Haskell Compiler (UHC) LLVM Haskell Compiler (LHC) York Haskell Compiler (Yhc)
Building a modern functional compiler from first principles
- Miranda 是一种惰性求值的纯函数式编程语言,由英国学者大卫·特纳所设计,强烈的影响了后来发展出的 Haskell。
- Haskell library for Language Server Protocol
- Compilers and interpreters Foreign Function Interface (FFI)
- Haskell LLVM JIT Compiler Tutorial Implementing a JIT Compiled Language with Haskell and LLVM
- Asterius A Haskell to WebAssembly compiler
- llvm-hs Haskell bindings for LLVM
- GRIN 是一个支持整个程序优化的懒惰和严格函数式语言的编译器后端LLVM,GRIN 编译器项目支持 Haskell、Idris 和 Agda 语言前端。
- LHC Haskell Compiler aims at compiling Haskell2010 to LLVM IR
- Elm Elm Compiler
- Unison A friendly programming language from the future
- PureScript A small strongly, statically typed language which compiles to JavaScript
- GHCJS is a Haskell to JavaScript compiler that uses the GHC API.
- Haste A GHC-based Haskell to JavaScript compiler
- Clash A functional hardware description language, Haskell to VHDL/Verilog/SystemVerilog compiler
- Cryptol The Language of Cryptography
- Agda is a dependently typed programming language / interactive theorem prover. Programming Language Foundations in Agda
- Carp 是一种旨在为互动和性能(如:游戏、语音视频、声音合成和可视化)提供良好支持的编程语言。Carp 是一个静态类型的 Lisp,没有 GC,用于实时应用。
- Idris A Language for Type-Driven Development
- ForSyDe Haskell-embedded Domain Specific Language
- Accelerate High-performance parallel arrays for Haskell Accelerate-LLVM
- Perl6::Pugs - A Perl 6 Implementation, Perl 6 的 Haskell 实现 Pugs
- Plutus Core smart contracts language implementation and tools. 为了确保增强安全性和代码可验证性,IOHK 选择 Haskell 作为 Plutus 智能合约的编程语言。
- Glow language for Blockchain Decentralized Applications, interact with the Cardano network from Gerbil Scheme
- Marlowe is also an embedded DSL, hosted in the Haskell programming language.
- Ermine Programming Language
- Yampa Functional Reactive Programming (FRP, 函数反应式编程) DSL for efficient hybrid(混合离散时间和连续时间)systems,使用了信号函数作为它的核心抽象,并使用箭头(Arrow)组合器进行结构化。
- Eta Modern Haskell on the JVM, port Haskell games to Android.
- The Kore Language
- Shentong A Haskell implementation of the Shen programming language.
- Axel Haskell + Lisp
- hs-language-php 用于解析和评估 PHP 代码的实验性 Haskell 模块
- hruby Embed Ruby in your Haskell program.
- COMP3012/G53CMP Compilers 2018/19 不错的编译原理课程
- The Haskell Thrift Compiler Apache Thrift
- Paskell A Pascal to LLVM compiler in Haskell
GHC
GHC, GHCi, Runtime, Virtual Machine, Haskell Compiler Service(HCS)资源汇集
- GHC @ Haskell GHC @ GitLab GHC @ GitHub GHC Documentation GHC Download GHC @ Huihoo
- compilertools.net The Catalog of Compiler Construction Tools
- GHC Proposals GHC提案过程和指导委员会对GHC和GHC/Haskell的编译器和语言进行讨论建议和修改。
- Latest releases per GHC version stackage
- Hadrian is a new build system for the Glasgow Haskell Compiler
- GHC packages
- ghc-vis Visualize live Haskell data structures in GHCi
- Template Haskell 是对 Haskell 的 GHC 语言扩展 Template Haskell 允许你在 Haskell 中进行编译时元编程(metaprogramming)。Template Haskell packages
- Lex & Yacc Happy parser generator for Haskell, similar to Yacc and Bison.
- ghcid Very low feature GHCi based IDE
- LC3 virtual machine Write your Own Virtual Machine
开发者
Haskell & GHC 核心开发者
类型系统
这里包含类型、数据、结构、算法等软件包,Haskell 主要使用 data 与 newtype 关键字来定义新的数据类型。Type systems are an example of lightweight formal methods(形式化方法)。
- Haskell Type Haskell's Data Types! Haskell Algorithms
- Haskell Data packages and projects Haskell Data Structures packages and projects
- Type Class 类型类首先在 Haskell 中实现 对类型类的广泛解释 Haskell Typeclasses vs. C++ Classes
- Monad 在 Haskell 中,monad 是一个很重要的类型类,它起源于数学中的范畴论,单体(Monad)可以被看作是各种数据或控制结构的标准编程接口。
- Lens Lenses, Folds, and Traversals
包管理
- Haskell Platform Included Packages 35 core & widely-used packages
- Hackage The Haskell Package Repository
- stack Nix integration
- cabal
- ghc-pkg
cabal-install 支持多个 Haskell 编译器,而 ghc-pkg 仅用于 GHC。
- Nix 是一个包管理器,它管理的包环境可信赖、可重现,可原子地执行升级与回滚,在这基础上又有了基于包管理的操作系统 NixOS
- haskell.nix 用 Nix 构建 Haskell 包的基础设施,haskell.nix 可以自动将 Cabal 或 Stack 项目及其依赖项转化成 Nix 代码。
- The Aura Package Manager
插件模块化
- polysemy 是一个用于编写高复用领域特定语言(DSL)的库。polysemy 允许将业务逻辑与实现细节分开,这样一来,就把实现代码变成可重用的库代码。Reasonably Polymorphic
测试质量
- QuickCheck Automatic testing of Haskell programs. Introduction to QuickCheck2
- servant-quickcheck QuickCheck entire APIs
- hspec Testing for Haskell
- hspec-wai Experimental Hspec support for testing WAI applications
- Retrie is a powerful, easy-to-use code modding tool for Haskell.
- Glean System for collecting, deriving and working with facts about source code.
- Duckling Language, engine, and tooling for expressing, testing, and evaluating composable language rules on input strings.
桌面IDE
- The State of Haskell IDEs
- lamdu towards the next generation IDE
- Morte IDE
- Leksah Haskell IDE
- Haskell Mode for Emacs
- Haskell Desktop Foundation
图形GUI
- Haskell Graphics packages and projects
- fgl The Functional Graph Library for Haskell
- XMonad A dynamically tiling X11 window manager that is written and configured in Haskell.
- ImplicitCAD
- Gtk2Hs GUI library for Haskell based on GTK+
- wxHaskell wxWidgets wrapper for Haskell
- qtHaskell is a set of Haskell bindings for the Qt
- HsQML Qt Quick for Haskell
- Haskell OpenGL
- Dear ImGui.hs SDL2
- brick 一个用 Haskell 编写的声明性 Unix 终端 UI 编程库
- Reanimate 是用于构建基于 SVG 图形的声明式动画 Haskell 库
- Gifcurry 是用于GIF制作的视频编辑器。
- patat(Presentations Atop The ANSI Terminal) 是一个小工具,它允许你只使用 ANSI 终端来显示演示文稿(presentations),而不需要 ncurses。
REST API
- Hasura GraphQL Engine
- Haxl is a Haskell library that simplifies access to remote data, such as databases or web-based services.
Web应用
- Haskell Web
- servant A Type-Level Web DSL
- three-layer Architecture of the Haskell web applications with Haskell on backend and Elm on frontend.
- IHP is a modern batteries-included haskell web framework, built on top of Haskell and Nix
- Yesod Web Framework Haskell Web Application Interface (WAI)
- Snap A Haskell Web Framework
- hakyll A static website compiler library in Haskell
- yst static websites from YAML and string templates
- Pandoc a universal document converter
- BlazeHtml 是一个库,旨在成为使用 Haskell 生成 HTML 的最快方式。
- HaTeX The Haskell LaTeX library.
网络服务器
- Haskell Network Low-level networking interface
- websockets A Haskell library for creating WebSocket-capable servers
数据科学
- statistics A library of statistical types, data, and functions 这个库提供了一些在统计学中有用的常用函数和类型,专注于高性能、数值稳健和使用良好的算法。
- dataHaskell Haskell data science
- IHaskell IHaskell is a kernel for the Jupyter
- diagrams DSL for creating vector graphics for Data visualization
- hmatrix BLAS/LAPACK wrapper for Linear algebra and numerical computation
- HaskellR Programming R in Haskell
- sparkle Apache Spark applications in Haskell
- cassava A CSV parsing and encoding library
- Frames Data Frames for Haskell
- haskell-chart A 2D charting library for haskell
金融交易
- Haskell in Production
- hledger 是开源跨平台会计软件,适合刚接触会计的人,也适合强大的用户。它适合追踪金钱、时间、投资、加密货币、库存等,具有高度的准确性、灵活性和隐私性,它是纯文本会计的最佳实现之一。
人工智能
人工智能, 机器学习, 深度学习, 神经网络, NLP in Haskell
- Haskell Machine Learning packages @ Libhunt
- Machine Learning in Haskell
- AI packages
- Awesome Haskell Machine Learning
- HLearn is a high performance machine learning library written in Haskell
- Grenade Deep learning in Haskell
- TypedFlow Typed frontend to TensorFlow and higher-order deep learning
- Hasktorch Tensors and neural networks in Haskell
- DNNGraph A deep neural network model generation DSL in Haskell
- Monday Morning Haskel
- Natural Language Processing packages
- Haskell OpenCV Haskell binding to OpenCV-3.x
数学物理
- Haskell Mathematics Articles using Haskell for mathematics and the mathematics of Haskell
- 组合逻辑(Combinatory logic)被发展为数学基础的理论,组合逻辑为发展数理语言学(mathematical linguistics) 的强大理论做出了贡献,应用:NLP
- Haskell Math projects Math packages Algebra packages
- 作为一个数学家使用 Haskell 的十一个理由
- Numerical is the core library for Numerical Haskell
- Automatic Differentiation
- Haskell DSP Library
- Algebraic graphs
- Haskell Software Defined Radio (SDR) 库
并发并行
并行、并发、异步以及分布式、云计算
- Concurrent and Parallel Programming 软件事务内存(Software Transactional Memory,STM)是一种比较理想的解决并发程序的解决方案。STM包
- Parallel GHC Project
- Haskell Concurrency packages and projects
- parallel Parallel programming library
- Accelerate High-Performance Parallel Arrays for Haskell
- ThreadScope A graphical tool for profiling parallel Haskell programs
- Cloud_Haskell(CH) 与 Erlang 类似,都采用 Actor 模型作为其默认的并发模型。
- Distributed Haskell distributed-process Haskell analog to Erlang
- A Cloud Haskell Appetiser (Parallel Haskell Digest 11)
- stm-actor An implementation of the actor model in Haskell using STM
- drama Actor library for Haskell 更多 Actor 开源项目
- transient composable primitives for concurrency / parallelism / distributed computing
音乐视频
- Audio Music Video Haskore
- AlgoRhythm Algorithmic music composition
- Movie Monad 视频播放器
游戏
- Haskell Game Development Haskell Games
- Haskell Game packages and projects
- LambdaHack Haskell game engine library
- Haskell Game Haskell SDL2 library
- Haskanoid A free and open source breakout clone in Haskell using SDL and FRP, with Wiimote and Kinect support.
- gloss Painless 2D vector graphics, animations and simulations.
- Frag is a 3D first person shooting game written in Haskell
- Quine Haskell, OpenGL, toy project
- Barbarossa - a chess engine written completely in Haskell
- hadoom A little Doom-like 2.5 game engine
- Hedgewars A turn-based artillery game, The game server is written in Haskell.
- Lazy Lambda a Flappy Bird clone in Haskell with SpriteKit
- Lambda-Heights A fast paced arcade game
- Keera Studios The mobile Haskell game and app company
- FunGEn (Functional Game Engine)
- A Game in Haskell - Dino Rush
移动App
实时嵌入式
- Ivory is an embedded domain specific language (EDSL)
- Copilot Stream DSL for hard real-time runtime verification
安全密码学
- Hackage Security
- Security ACME (Automatic Certificate Management Environment, RFC 8555) packages
- Cryptography packages
- cryptol加密语言
区块链
- Input Output Cardano Foundation Cardano Improvement Proposals (CIPs) ADA加密货币 为什么人们无法评估Cardano的潜力 Cardano如何实现中本聪的愿景 Cardano和比特币可以共存并相互支持 Alonzo为Cardano带来智能合约 The Essential Cardano list Adrestia Project Why Cardano chose Haskell — and why you should care Cardano中文
- Well-Typed
- lorentz: EDSL for the Michelson Language Lorentz: Implementing Smart Contract eDSL in Haskell
- Morley Standards and tools for the Tezos platform
FRP流计算
大数据、流计算、Functional Reactive Programming (FRP) 使用可组合的事件和随时间变化的值,将交互式系统描述为纯函数。
- Haskell FRP packages and projects
- Reflex The world changes, your apps should keep up.
- conduit A streaming data library
- Yampa Book Yampa @ Haskell Lambdor.net Devblog
数据库存储
- PostgREST REST API for any PostgreSQL database PostgREST ecosystem
- Esqueleto a SQL DSL for Haskell
- Beam a type-safe, non-TH Haskell relational database library and ORM
- Persistence interface for Haskell allowing multiple storage methods
- resource-pool A high-performance striped resource pooling implementation
- hedis Client library for the Redis datastore: supports full command set, pipelining.
- hackage-db provide access to the Hackage database via Data.Map
操作系统
- XMonad
- Bluetile full-featured tiling for the GNOME desktop environment
- Hos A Haskell operating system
- House
- Haskell File System
- Haskell Directory Platform-independent library for basic file system operations
机器人
硬件芯片
- The Science of Deep Specification Haskell CoreSpec Strong Formal Verification for RISC-V
- Specification and proof A Formal Specification of the Haskell 98 Module System
- RISC-V资源列表
- GRIFT A richly-typed, deeply-embedded RISC-V semantics written in Haskell
- Lion Where Lions Roam: RISC-V on the VELDT
- riscv-semantics A formal semantics of the RISC-V ISA in Haskell
- Retrocomputing with Clash: Haskell for FPGA Hardware Design
- ForSyDe A Methodology for Formal System Design(形式化系统设计的方法论)
- coq-haskell Haskell for Coq programmers
图集
链接
分享您的观点