The Hamler Programming Language

Web Name: The Hamler Programming Language

WebSite: http://www.hamler-lang.org

ID:334912

Keywords:

Hamler,The,Language,Programming

Description:


The Hamler Programming Language

Haskell-style functional programming language running on Erlang VM.

View the Project on GitHub hamler-lang/hamler

The Hamler Programming Language

Hamler is a strongly-typed language with compile-time typechecking and built-in support for concurrency and distribution.

Hamler empowers industries to build the next generation of scalable, reliable, realtime applications, especially for 5G, IoT and edge computing.

Why Hamler?

For almost a decade, we have been developing software systems based on Erlang/OTP, especially our main product EMQ X - the scalable open-source MQTT broker. So, we have always believed that Erlang is a masterpiece of engineering. With amazing concurrency, distribution and fault tolerance, it is one of the few general-purpose language platforms able to properly handle concurrency and soft realtime.

However, from all the experience writing Erlang, we believe that the following features can help Erlang programmer better adapt to the coming wave of 5G, IoT and edge-programming and attract more people for using BEAM.

Compile-time type checking and type reference ADTs, Function Composition, Type Classes More friendly syntax for prosperous communities Functor, Applicative and Monad…:)

Now all the features are avaliable in the Hamler programming language.

Features

Functional programming Haskell and ML-style syntax Compile-time type Checking/Inference Algebraic data type (ADT) Functions, higher-order functions Currying and partial application Pattern matching, and Guards List comprehension Applicative and Monad Advanced module system Built-in concurrency

Design

The Hamler compiler architecture is shown as below:

The Hamler 0.1 compiler was forked from PureScript 0.13.6. The Hamler source code is parsed to generate CST, then CoreErlang’s IR is generated after CST -> AST -> CoreFn’s syntax tree transformation, syntax analysis and type checking. The code is then used by the Erlang compiler to generate the final Beam bytecode.

Installation

Get installation packages from Github Release

Note: packages for windows will be coming soon…

Linux

$ tar zxvf hamler-$version.tgz -C /usr/lib/hamler$ ln -s /usr/lib/hamler/bin/hamer /usr/bin/hamler

Centos 7

$ rpm -ivh hamler-$version-1.el7.x86_64.rpm

Debian 8 / Debian 9 / Debian 10 / Ubuntu 16.04 / Ubuntu 18.04 / Ubuntu 20.04

$ dpkg -i hamler_$version_amd64.deb

Homebrew(macOS)

brew tap hamler-lang/hamlerbrew install hamler

Build from source code(macOS)

Install Erlang

brew install erlang@23

Install Stack

brew install haskell-stack

Clone hamler from the git repo

git clone https://github.com/hamler-lang/hamler.git

Install hamler

cd hamlermakemake install

Create a project

  mkdir demo-project  cd demo-project  hamler init  make  make run

Try the interpreter

  hamler repl  > -- List, range and enums  > [1,2,3]  > [1..10]  > ['a'..'z']  > -- erlang style maps  > import Data.Map as Map  > -- New map  > m = #{"foo" => "bar", "bar" => "foo"}  > -- Match Map  > #{"foo" := a, "bar" := b} = m  > -- get, put  > Map.get "foo" m -- a = "bar"  > Map.get "bar" m -- b = "foo"  > m1 = Map.put "key" "val"  > -- keys, values  > keys = Map.keys m  > values = Map.values m

Documentation

Cheatsheet Why Hamler? Quick Start Basic Types, Functions and Operators More Types and Pattern Matching High Order Functions And Recursions Type Classes Applicative and Monad Foreign Language Interface Data Types Mapping Message Passing Concurrency OTP Behaviours Node and Distributed Erlang Differences From Erlang FAQ

Community, discussion and supports

You can reach the Hamler community and core team via the following channels:

Slack - emqx/hamler-lang Twitter - @hamlerlang Reddit - /r/HamlerLang Medium - @hamlerlang

Contributing

To contribute to Hamler project:

Report issues: submit any bugs, issues to hamler/issues Contribute code: Fork the project, and submit feature requests to hamler-lang/hamler Submit a proposal: Fork the hamler-wiki project and submit pull request

Core Team

The Hamler core team comes from EMQ Technologies Co., Ltd. now:

Feng Lee: Designer of Hamler Language Yang M: Implemented Hamler Compiler S Hu: Maintainer of the documentations Shawn: Contributed rebar3_hamler plugin Rory Z: Contributed homebrew install package wivwiv: Designer of hamler-lang.org website CrazyWisdom: Maintainer of hamler-lang.org ysfscream: Maintainer of hamler-lang.org juan6666:Designer of Hamler language logo

License & Credits

We would like to express our great appreciation to the PureScript team and community for all years of efforts making its amazing compiler, especially CoreFn and its incredible adaptability.

The hamler language project is licensed under BSD3, see LICENSE.

About EMQ

EMQ is an open-source software company providing highly-scalable, real-time messaging and streaming platform for IoT applications in 5G Era.

This project is maintained by hamler-lang

Sponsored by EMQ

TAGS:Hamler The Language Programming

<<< Thank you for your visit >>>

Websites to related :
Home - Putting Care at the Cente

   Home About Registration information Registration informationVirtual c

Electronic Device Design, FPGA P

   Call Us: 408.245.9844

Lavelle Fund for the Blind

   AA Accessibility Menu

The best coder experience - Best

  Skip to content/*! elementor - v3.7.6 - 15-09-2022 */.elementor-widget-image{text-align:center}.elementor-widget-image a{display:inline-block}.element

Who Are These Investors Podcast

  Skip to content/*! elementor - v3.7.3 - 29-08-2022 */.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-he

The RemTECH Awards - Celebrating

   [class*="the7-spinner-animate-"]{ animation: spinner-animation 1s cubic-bezier(1,1,1,1) infinite; x:46.5px; y:40px; wi

The Qontinent - Breaking Boundar

  HomeInfoLine-UpRavers ResortTravelTicket InfoMediaCashlessAppTicketsNLENFRHomeInfoLine-UpRavers ResortTravelTicket InfoMediaCashlessAppTicketsNLENFR12

Karibu &ndash; Siti & The Band

  About UsOn TourListen / WatchGalleryBlogContactsAbout UsOn TourListen / WatchGalleryBlogContacts/*! elementor - v3.7.7 - 20-09-2022 */.elementor-colum

The Bedford Consultancy | Insigh

   Insight From The Past&#8230;Vision For The Future

Phone:
(610) 746-9342
Email:
bedfordconsult@earthlink.netMenuSkip to contentHomeAbout

The official MERL open source co

  skip to content Return to homepage About Case Studies Guides View the Repository MERL Tech MenuCl

ads

Hot Websites