All Projects → never-lang → Never

never-lang / Never

Licence: mit
Never: statically typed, embeddable functional programming language.

Programming Languages

c
50402 projects - #5 most used programming language
language
365 projects

Projects that are alternatives of or similar to Never

Ring
Innovative and practical general-purpose multi-paradigm language
Stars: ✭ 716 (+188.71%)
Mutual labels:  compiler, functional-programming, virtual-machine
Go.vm
A simple virtual machine - compiler & interpreter - written in golang
Stars: ✭ 178 (-28.23%)
Mutual labels:  compiler, virtual-machine
Corewar
A reproduction of the Core War game. Assembly compiler, Virtual Machine and GUI.
Stars: ✭ 173 (-30.24%)
Mutual labels:  compiler, virtual-machine
Cub
The Cub Programming Language
Stars: ✭ 198 (-20.16%)
Mutual labels:  compiler, virtual-machine
Typelang
🌳 A tiny language interpreter implemented purely in TypeScript's type-system
Stars: ✭ 149 (-39.92%)
Mutual labels:  compiler, functional-programming
Quickjs
QuickJS是一个小型并且可嵌入的Javascript引擎,它支持ES2020规范,包括模块,异步生成器和代理器。
Stars: ✭ 2,199 (+786.69%)
Mutual labels:  compiler, virtual-machine
Mlkit
Standard ML Compiler and Toolkit
Stars: ✭ 183 (-26.21%)
Mutual labels:  compiler, functional-programming
One
OneLang: The One System Programming Language. (release as soon)
Stars: ✭ 120 (-51.61%)
Mutual labels:  compiler, compilers
Lumen
An alternative BEAM implementation, designed for WebAssembly
Stars: ✭ 2,742 (+1005.65%)
Mutual labels:  compiler, virtual-machine
Openj9
Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.
Stars: ✭ 2,802 (+1029.84%)
Mutual labels:  compiler, virtual-machine
Fsharp
The F# compiler, F# core library, F# language service, and F# tooling integration for Visual Studio
Stars: ✭ 2,966 (+1095.97%)
Mutual labels:  compiler, functional-programming
Tinyscript
自制的一个编译器, 用于学习,完整实现了词法分析,语法分析,中间代码(SSA)生成,机器码生成,和基于寄存器的虚拟机
Stars: ✭ 132 (-46.77%)
Mutual labels:  compiler, virtual-machine
Grain
The Grain compiler toolchain and CLI. Home of the modern web staple. 🌾
Stars: ✭ 2,199 (+786.69%)
Mutual labels:  compiler, functional-programming
Lioness
The Lioness Programming Language
Stars: ✭ 155 (-37.5%)
Mutual labels:  compiler, virtual-machine
Ghc Grin
GRIN backend for GHC
Stars: ✭ 123 (-50.4%)
Mutual labels:  compiler, functional-programming
Potigol
Linguagem Potigol - Linguagem de programação funcional moderna para iniciantes - A Functional Programming Language for Beginners
Stars: ✭ 179 (-27.82%)
Mutual labels:  compiler, functional-programming
Swift Lispkit
Interpreter framework for Lisp-based extension and scripting languages on macOS and iOS. LispKit is based on the R7RS standard for Scheme. Its compiler generates bytecode for a virtual machine. LispKit is fully implemented in Swift 5.
Stars: ✭ 228 (-8.06%)
Mutual labels:  compiler, virtual-machine
Fanx
A portable programming language
Stars: ✭ 101 (-59.27%)
Mutual labels:  compiler, virtual-machine
Quickjs
The official repo is at bellard/quickjs.
Stars: ✭ 1,429 (+476.21%)
Mutual labels:  compiler, virtual-machine
Customasm
💻 An assembler for custom, user-defined instruction sets! https://hlorenzi.github.io/customasm/web/
Stars: ✭ 211 (-14.92%)
Mutual labels:  compiler, virtual-machine

Never - Functional Programming Language

Build Status Version Codecov

Never is a simple functional programming language. Technically it may be classified as syntactically scoped, strongly typed, call by value, functional programming language.

In practise Never offers basic data types, assignment, control flow, arrays, first order functions and some mathematical functions to make it useful to calculate expressions. Also it demonstrates how functions can be compiled, invoked and passed as parameters or results between other functions.

Getting Started

It is easy to download and compile Never language. Just clone repository and make the compiler in a few basic steps. To read more visit readthedocs.io site.

Prerequisites

Never requires basic Linux installation to be built. The following tools and libraries are needed:

  • gcc
  • glibc
  • bison / flex
  • libmath, libdl and libffi

Installing

Never can be installed in steps:

  • clone repository
  • cd never
  • mkdir build; cd build
  • cmake ..; make

asm.js wasm

To compile for asm.js or wasm targets use the following commands:

Get the latest sdk: git clone https://github.com/emscripten-core/emsdk.git

cd emsdk
./emsdk install latest
./emsdk activate latest
source ./emsdk_env.sh

Compile to native asm.js

mkdir build && cd build
emcmake cmake .. -DJS_ONLY=ON 
make

Compile to native wasm

mkdir build && cd build
emcmake cmake .. -DWASM_ONLY=ON 
make

Run

Now you should see never.js file in your build directory. You can overwrite ../never.js and open never.html, or modify never.html to load build/never.js file or load the file in JS console and run:

python -m SimpleHTTPServer 8000
# http://localhost:8000/never.html
var never = Module.cwrap('never','number',['string']);
never("func main() -> int { 123 }")

Contributing

All help is welcome! Using it, reporting bugs, spreading the word, writing code samples, blogs, submitting ideas, documentation, new features. Everyone is invited to contribute.

License

This project is licensed under the MIT License.

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].