nelson

The Nelson Programming Language

https://github.com/nelson-lang/nelson

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.4%) to scientific vocabulary

Keywords

cpp17 data-science data-structures interpreter mathematical-functions matlab matrix-functions nelson octave programming-language scientific-computing

Keywords from Contributors

minimalist ode mathematics annotation
Last synced: 6 months ago · JSON representation

Repository

The Nelson Programming Language

Basic Info
Statistics
  • Stars: 110
  • Watchers: 9
  • Forks: 19
  • Open Issues: 13
  • Releases: 0
Topics
cpp17 data-science data-structures interpreter mathematical-functions matlab matrix-functions nelson octave programming-language scientific-computing
Created about 9 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing Funding License Code of conduct Citation Security Roadmap Cla

README.md

Visitor Badge

Nelson Logo



The Nelson language

The main homepage for Nelson can be found at https://nelson-lang.github.io/nelson-website/.

Starring the repository

If you found this project useful, please consider starring it on GitHub !!! This allows me to see how many people are using my code, and motivates me to keep working to improve it.

Introduction

Nelson is a powerful, open-source numerical computational language, developed to provide a comprehensive and intuitive environment for engineers, scientists, and students. With over 1,200 built-in functions, Nelson supports a wide range of tasks, from basic algebra to advanced numerical simulations.

Originally inspired by languages like MATLAB and GNU Octave, Nelson offers users a lightweight yet feature-rich experience. It is designed to be easy to learn and use, with an emphasis on performance and flexibility.

Nelson environment

Features

Data Types Managed by Nelson

  • Double and Complex Double: Supports scalars, vectors, 2D matrices, N-dimensional arrays, and sparse matrices.
  • Single and Complex Single: Includes scalars, vectors, 2D matrices, N-dimensional arrays, and sparse matrices.
  • Logical: Handles scalars, vectors, 2D matrices, N-dimensional arrays, and sparse matrices.
  • Character Arrays: Supports UNICODE characters.
  • String Arrays: Fully supports UNICODE.
  • Integers: 8, 16, 32, and 64-bit signed and unsigned scalars, vectors, 2D matrices, and N-dimensional arrays.
  • Handle Objects: For object-oriented functionality.
  • Anonymous Functions: Allows creation and manipulation of functions without names.
  • Data Structures: Supports dictionaries and tables.
  • Overloading: All types can be overloaded for custom behavior.

Performance Enhancements

  • OpenMP and SIMD: Utilizes parallel processing and vectorization for faster computations.

Visualization & Interface

  • 2D and 3D Plotting: High-level commands for visualizations.
  • User Interface Controls: Built-in controls for creating custom interfaces.
  • Desktop Environment: Comes with history tracking, a file explorer, and workspace browser.

Advanced Modules

  • Parallel Computing: Enables efficient use of multi-core processors.
  • Fast Fourier Transform (FFT): High-performance FFT functions based on FFTW and MKL.
  • SLICOT Interface: Optional support for the Systems and Control Theory subroutine library.
  • Control System Module: Tools for control theory and system design.
  • MPI (Message Passing Interface): Functions for distributed parallel computing.

Data Formats & Interfacing

  • JSON Support: Read and write JSON files.
  • HDF5 Functions: High-level I/O functions, with HDF5 as the default file format for .nh5 workspaces.
  • MAT-File Compatibility: Load and save workspaces in MAT-file format.
  • Foreign Function Interface (FFI): Build and load C/Fortran code on the fly.
  • MEX C API Compatibility: Interfacing with MEX-compatible C APIs.
  • Nelson Engine API: Use Nelson as a backend engine within C code, compatible with the MEX Engine API.
  • Julia Interfacing: Call Julia scripts and functions from Nelson.
  • Python Interfacing: Call Python scripts and functions from Nelson.
  • RESTful API: Enables Nelson to interact with web services.

Additional Capabilities

  • Inter-Process Communication: Communicate between Nelson processes.
  • QML Engine: Use Qts QML framework to display and manipulate graphical content.
  • Component Object Model (COM): Interface with COM components, especially on Windows.
  • Excel File Support: Write and read .xlsx files using COM on Windows.
  • Embedded Code Editor: Integrated editor for Nelson scripts.

Help & Testing Tools

  • Help Engine: Generate and view help files in various formats like HTML, Markdown, PDF, or GitBook.
  • Test Engine: Validate algorithms using built-in functions, with support for xUnit report export.

Profiling & Code Coverage

  • Profiler: Built-in profiler to analyze and optimize code performance.
  • Code Coverage: Measure the coverage of your tests to ensure thorough validation.

Cloud & Extensibility

Download

Get it from the Snap Store

Get it on Flathub

Latest Windows Installer

Get it from the Windows Package Manager

Get it from the Chocolatey Package Manager

Resources

License

Nelson is delivered under dual-license:

  • License (GNU Lesser General Public License (LGPL) v3.0)

or

  • License (GNU General Public License (GPL) v3.0)

Supported Platforms

Nelson is tested and supported on a wide range of platforms. Downloads options and continuous integration (CI) status are listed below:

| Operating System | Architecture | CI | Binaries | | :------------------: | :----------------: | :----: | :---------------: | | Windows 10, 11 | x86-64 (*1) | | | | macOS Sequoia | arm64 | | | | macOS Sonoma | arm64 | | | | macOS Ventura | x86-64 (64-bit) | | | | Ubuntu 24.04 | x86-64 | | (Snap, Flatpak) | | Ubuntu 24.04 | arm64 (cobalt 100) | | (Snap, Flatpak) | | Ubuntu 22.04 | x86-64 | | (Snap, Flatpak) | | Fedora 42 | x86-64 | | (Snap, Flatpak) | | ArchLinux | x86-64 | | (Snap, Flatpak) |

Note: The continued support of some platforms may depend on community contributions.

(*1) On Windows x64, the processor must be an Intel or AMD x86-64 CPU that supports the AVX2 instruction set.

Official distribution of 32-bit Windows binary versions has been discontinued.

Allan CORNET (nelson.numerical.computation@gmail.com)

Owner

  • Name: The Nelson Programming Language
  • Login: nelson-lang
  • Kind: organization
  • Email: nelson.numerical.computation@gmail.com
  • Location: France

GitHub Events

Total
  • Create event: 146
  • Release event: 6
  • Issues event: 38
  • Watch event: 16
  • Delete event: 142
  • Issue comment event: 8
  • Push event: 664
  • Pull request review comment event: 131
  • Pull request review event: 70
  • Pull request event: 268
  • Fork event: 3
Last Year
  • Create event: 146
  • Release event: 6
  • Issues event: 38
  • Watch event: 16
  • Delete event: 142
  • Issue comment event: 8
  • Push event: 664
  • Pull request review comment event: 131
  • Pull request review event: 70
  • Pull request event: 268
  • Fork event: 3

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 4,119
  • Total Committers: 8
  • Avg Commits per committer: 514.875
  • Development Distribution Score (DDS): 0.004
Past Year
  • Commits: 211
  • Committers: 2
  • Avg Commits per committer: 105.5
  • Development Distribution Score (DDS): 0.005
Top Committers
Name Email Commits
Allan CORNET n****n@g****m 4,104
Bas van Schaik g****b@s****t 6
Allan CORNET a****t@g****m 4
rdbyk r****k 1
The Gitter Badger b****r@g****m 1
The Codacy Badger b****r@c****m 1
Lokinyx 6****x 1
Arthur Baars a****s@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 131
  • Total pull requests: 433
  • Average time to close issues: 8 months
  • Average time to close pull requests: 5 days
  • Total issue authors: 4
  • Total pull request authors: 3
  • Average comments per issue: 0.43
  • Average comments per pull request: 0.06
  • Merged pull requests: 387
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 24
  • Pull requests: 274
  • Average time to close issues: 6 days
  • Average time to close pull requests: about 11 hours
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.04
  • Average comments per pull request: 0.0
  • Merged pull requests: 246
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • Nelson-numerical-software (123)
  • rdbyk (5)
  • Lokinyx (2)
  • evertoncolling (1)
Pull Request Authors
  • Nelson-numerical-software (431)
  • gitter-badger (1)
  • codacy-badger (1)
Top Labels
Issue Labels
enhancement (56) bug (32) help wanted (4) duplicate (1)
Pull Request Labels
enhancement (96) bug (4)

Dependencies

.github/workflows/ccpp.yml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v1 composite
  • jurplel/install-qt-action v3 composite
  • microsoft/setup-msbuild v1.1.3 composite
  • myrotvorets/info-from-package-json-action 1.2.0 composite
.github/workflows/codeql-analysis-cpp.yml actions
  • actions/checkout v3 composite
  • github/codeql-action/analyze v2 composite
  • github/codeql-action/init v2 composite
.github/workflows/codeql-analysis-javascript-python.yml actions
  • actions/checkout v3 composite
  • github/codeql-action/analyze v2 composite
  • github/codeql-action/init v2 composite
.github/workflows/doxygen.yml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v3 composite
  • myrotvorets/info-from-package-json-action 1.2.0 composite
.github/workflows/minimal.yml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v1 composite
  • myrotvorets/info-from-package-json-action 1.2.0 composite
.github/workflows/prettier.yml actions
  • actions/checkout v2 composite
  • actions/setup-node v2 composite
package.json npm
  • @prettier/plugin-xml 2.2.0 development
  • clang-format 1.8.0 development
  • clang-format-launcher 0.1.4 development
  • npm-run-all 4.1.5 development
  • prettier 2.7.1 development
.github/workflows/mamba.yml actions
  • actions/checkout v4 composite
  • mamba-org/setup-micromamba v1 composite
modules/mex/examples/rust-mex-builder/helloworld/Cargo.toml cargo
chocolatey/nelson/nelson.nuspec nuget