All Projects → nuua-io → Nuua

nuua-io / Nuua

Licence: MIT license
The Nuua Programming Language - A zero dependencies, high level strong typed, interpreted language built on the top of modern C++17.

Programming Languages

C++
36643 projects - #6 most used programming language
Nu
17 projects

Projects that are alternatives of or similar to Nuua

Hedy
Hedy is a gradual programming language, which increases in syntactic elements level by level.
Stars: ✭ 236 (+475.61%)
Mutual labels:  programming
Free Programming Books Zh cn
📚 免费的计算机编程类中文书籍,欢迎投稿
Stars: ✭ 85,491 (+208414.63%)
Mutual labels:  programming
Competitive-Coding-and-Interview-Problems
This repo contains some problem solutions from different popular coding platforms like Code Chef, Leet Code, Hacker Blocks,etc.
Stars: ✭ 54 (+31.71%)
Mutual labels:  programming
Learn X By Doing Y
🛠️ Learn a technology X by doing a project - Search engine of project-based learning
Stars: ✭ 242 (+490.24%)
Mutual labels:  programming
Pytudes
Python programs, usually short, of considerable difficulty, to perfect particular skills.
Stars: ✭ 17,219 (+41897.56%)
Mutual labels:  programming
System Design Primer
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
Stars: ✭ 154,659 (+377117.07%)
Mutual labels:  programming
Types For Adobe
TypeScript types for Adobe: AfterEffects, Animate, Audition, Illustrator, InDesign, Photoshop, Premiere, ScriptUI.
Stars: ✭ 232 (+465.85%)
Mutual labels:  programming
OpenUnivCourses
FREE university courses in ML from Top Universities in CS
Stars: ✭ 220 (+436.59%)
Mutual labels:  programming
30 Seconds Of Code
Short JavaScript code snippets for all your development needs
Stars: ✭ 89,121 (+217268.29%)
Mutual labels:  programming
cc4e
C Programming for Everybody
Stars: ✭ 88 (+114.63%)
Mutual labels:  programming
Free Programming Resources
💎 免费的编程资源大全,持续更新!🔥 覆盖各种语言和方向(Java \ Python \ C++ \ JavaScript \ Golang \ 前端 \ 后端等)的学习路线、贴心教程、项目实战、编程书籍、面试合集、实用资源等,对程序员非常有帮助!
Stars: ✭ 225 (+448.78%)
Mutual labels:  programming
Cs Books
📚 Computer Science Books 计算机技术类书籍 PDF
Stars: ✭ 2,915 (+7009.76%)
Mutual labels:  programming
You Dont Know Js
A book series on JavaScript. @YDKJS on twitter.
Stars: ✭ 147,493 (+359639.02%)
Mutual labels:  programming
Caster
Dragonfly-Based Voice Programming and Accessibility Toolkit
Stars: ✭ 242 (+490.24%)
Mutual labels:  programming
C-plusplus-compitative-Programming-Template
This is a C plus plus coding template for Compitative programming. This template is very optimized for the Online Judgment
Stars: ✭ 15 (-63.41%)
Mutual labels:  programming
Writing
📚📝 Notes on the journey
Stars: ✭ 234 (+470.73%)
Mutual labels:  programming
Build Your Own X
🤓 Build your own (insert technology here)
Stars: ✭ 125,520 (+306046.34%)
Mutual labels:  programming
Conway-s-Game-of-life---Python
Conways game of life with pygame
Stars: ✭ 26 (-36.59%)
Mutual labels:  programming
codeReads
goodReads (pun intended) for coding and programming
Stars: ✭ 29 (-29.27%)
Mutual labels:  programming
Freecodecamp
freeCodeCamp.org's open-source codebase and curriculum. Learn to code for free.
Stars: ✭ 339,510 (+827973.17%)
Mutual labels:  programming

Nuua Programming Language

This is the official nuua programming language repository

Nuua is a new high level programming language. It acts as a generic language and it's built using pure C++, no dependencies required. Nuua is dynamic static typed and interpreted language similar to other high level languages like JavaScript or Python.

The syntax is familiar with no strange structures. However, some syntax sugar is added to perform common tasks quicker.

Nuua website

Nuua homepage is https://nuua.io. You may subscribe to recieve further information.

Code examples

  • Calculate the area of a triangle (with some OOP programming).

    class Triangle {
        b: float
        h: float
        fun area(): float -> (self.b * self.h) / 2.0
    }
    
    fun main(argv: [string]) {
        t := Triangle!{b: 10.0, h: 5.0}
        print "The area is: " + t.area() as string
    }
  • Calculate nth Fibonacci number (using recursion).

    fun rec_fib(n: int): int {
        if n < 2 => return n
        return rec_fib(n - 2) + rec_fib(n - 1)
    }
    
    fun main(argv: [string]) {
        print rec_fib(25)
    }
  • High level programming.

    use list_int_map from "list"
    
    class Collection {
        numbers: [int]
        fun map(f: (int -> int)): Collection {
            list_int_map(self.numbers, f)
            return self
        }
    }
    
    fun multiply(n: int): int -> n * 2
    
    fun main(argv: [string]) {
        c := Collection!{numbers: [1, 2, 3, 4, 5]}
        c.map(multiply).map(multiply)
        print c.numbers
    }
    

Nuua Roadmap

  • From dynamic to static
  • Stack machine to Register Machine
  • Re-write the syntax
  • Better error reporting
  • Implement modules (imports)
  • Implement functions
  • Implement classes
  • Implement function overloading 🕐
  • Minimal NUSL (Nuua Standard Library)
  • NUPAC (Nuua Package Manager) 🕐
  • Optimizations ⚠️
  • Initial Release 🚧

How is nuua structured?

Nuua is structured as a layered system. It have diferent tiers (ordered):

  • Application
  • Virtual Machine
  • Compiler (Code Generator)
  • Analyzer (Semantic analyzer)
  • Parser
  • Lexer

Nuua also have independent modules to help with it's development on every layer. In the current state, nuua have the following independent modules:

  • Logger

Layered System

Building Nuua

Currently, nuua is under heavy development meaning it still provides no official release. However, you're free to build the source yourself. The required software is:

  • MinGW + Visual Studio (in windows)
  • A C++ compiler (I use g++: gcc version 8.2.0 (Rev3, Built by MSYS2 project))
  • CMake

To build the language you just need to use Cmake in the root directory. For example, create a directory called my_build in the root directory and then inside of it invoke Cmake cmake ... Then you may build it using the selected target (Makefile, Vistual Studio, etc).

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