neva

module
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 7, 2024 License: MIT

README ΒΆ

Big Header

Flow Based Programming Language

Neva

A general-purpose, flow-based programming language with static typing and implicit parallelism, designed with visual programming in mind, that compiles to machine code and Go.

Website: https://nevalang.org

component Main(start any) (stop any) {
	nodes { printer Printer<string> }
	net {
		in:start -> ('Hello, World!' -> printer:msg)
		printer:msg -> out:stop
	}
}

πŸš€ Features

  • 🌊 Flow-Based Programming
  • πŸ”€ Effortless Concurrency
  • πŸ›‘οΈ Static Type System
  • 🎯 Multi-Target Compilation
  • ✨ Simple and Clean C-like Syntax
  • πŸƒβ€β™‚οΈ Interpreter Mode
  • πŸ’‰ First-Class Dependency Injection
  • πŸ•΅οΈβ€β™‚οΈ Builtin Observability
  • ♻️ Garbage Collection
  • 🌈 Visual Programming (WIP)
  • 🦫 Go Interop (WIP)
  • 🦺 No Runtime Exceptions (WIP)

Contributing

See CONTRIBUTING.md and ARCHITECTURE.md


⚠️ WARNING: This project is under heavy development and not production ready yet.

Directories ΒΆ

Path Synopsis
cmd
compiler/analyzer
Package analyzer implements source code static semantic analysis.
Package analyzer implements source code static semantic analysis.
compiler/irgen
Package irgen implements IR generation from source code.
Package irgen implements IR generation from source code.
compiler/parser
Package parser implements source code parsing.
Package parser implements source code parsing.
runtime
Package runtime implements environment for dataflow programs execution.
Package runtime implements environment for dataflow programs execution.
runtime/funcs
Package funcs implements low-level components (runtime functions).
Package funcs implements low-level components (runtime functions).
pkg
ir
sourcecode
This package defines source code entities - abstractions that end-user (a programmer) operates on.
This package defines source code entities - abstractions that end-user (a programmer) operates on.
typesystem
Package typesystem implements type-system with generics and structural subtyping.
Package typesystem implements type-system with generics and structural subtyping.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher πŸ‡»πŸ‡³