Simple, safe and compiled programming language.

Overview

The X Programming Language

Simple, safe and compiled programming language.

Table of Contents

Overview

The X programming language is compiled, static typed, fast, modern and simple.
Before the X source code is compiled, it is translated to C++ code and compiled from C++.
Transpiling to C++ only instead of compiling is also an option.
It aims to be advanced, readable and a good choice for systems programming.

Example X code;

fun main() {
  // ...
}

OS Support

Operating System State
Windows Not Yet
Linux Not Yet
MacOS Not yet

Contributing

Thanks for you want contributing to X!

The X project use issues for only bug reports and proposals.
To contribute, please read the contribution guidelines from here.
To discussions and questions, please use discussions.

All contributions to X, no matter how small or large, are welcome.
From a simple typo correction to a contribution to the code, all contributions are welcome and appreciated.
Before you start contributing, you should familiarize yourself with the following repository structure;

  • ast/ abstract syntax tree builder.
  • cmd/ main and compile files.
  • doc documentations.
  • lex/ lexer.
  • parser/ interpreter.
  • pkg/ utility packages.
  • xlib/ standard libraries.

License

X and standard library is distributed under the terms of the MIT license.
See license details.

Comments
  • [BUG] Transpiler doesn't seem to work very well

    [BUG] Transpiler doesn't seem to work very well

    I tried to transpile the code in the document but doesn't seem to work. After transpiled the code, dist directory was created but the code wasn't converted to the .cpp file.

    bug compiler 
    opened by lareithen 7
  • feat: merge the GitHub Actions workflows

    feat: merge the GitHub Actions workflows

    Things added/changed:

    • Merge the GitHub Actions workflows. This will:
      • Make things cleaner.
      • Run for all OSes on the same workflow.
      • Seamlessly check all jobs in one place (example).
      • Run directly on all pull requests and multiple branches.
    opened by Panquesito7 6
  • [PROPOSAL] Create a `.github` repository

    [PROPOSAL] Create a `.github` repository

    Detailed description

    With a .github repository, you can:

    • Have a predefined issue, PR, and funding templates for all repositories. To avoid duplication, you can also have a Code of Conduct, contributing, and security policy. Licenses will not take effect on the other repositories.
      • This can be overridden if a particular repository has other templates.
    • Make a customized profile for the organization just like with GitHub users (example.
    • Include any links and information about Jule, as well as add images and add a .github-private for only the team members.

    Context

    IMO, this would make the GitHub organization much more elegant as well as give users the option to quickly check what the project is about.

    Possible implementation

    Add .github and .github-private repositories for organization customization.

    Additional information

    If you need any help with this, feel free to contact me via Discord: Panquesito7#3723

    proposal 
    opened by Panquesito7 3
  • [PROPOSAL] Convert all issue templates to issue forms

    [PROPOSAL] Convert all issue templates to issue forms

    Proposal

    We should use the newly provided GitHub issue forms. These can prevent blank issues or issues without enough information. We can mark fields as optional or required, making things much more efficient, IMO.

    Check the official GitHub blog about this: https://github.blog/changelog/2021-06-23-issues-forms-beta-for-public-repositories/

    Additional

    I want to work on this. 🙂

    proposal 
    opened by Panquesito7 2
  • [PROPOSAL] snake_case complete localization identifiers

    [PROPOSAL] snake_case complete localization identifiers

    https://github.com/jule-lang/jule/blob/main/localization/turkish.json#L121 https://github.com/jule-lang/jule/blob/main/localization/english.json#L22 https://github.com/jule-lang/jule/blob/main/localization/english.json#L23 https://github.com/jule-lang/jule/blob/main/localization/english.json#L24 https://github.com/jule-lang/jule/blob/main/localization/english.json#L25 https://github.com/jule-lang/jule/blob/main/localization/english.json#L87 https://github.com/jule-lang/jule/blob/main/localization/english.json#L50 https://github.com/jule-lang/jule/blob/main/localization/english.json#L59 https://github.com/jule-lang/jule/blob/main/localization/english.json#L67 https://github.com/jule-lang/jule/blob/main/localization/english.json#L68

    it may be better to put the word underline instead of compound

    current code

    "notimpl_trait_def": ...
    

    desired

    "not_impl_trait_def": ...
    
    proposal 
    opened by therisy 2
  • [BUG] GCC C++ (aka g++) compiler give errors for transpiled Jule code

    [BUG] GCC C++ (aka g++) compiler give errors for transpiled Jule code

    HÄ° Mertcan! Well done, Jule is very nice programming language :) It's just wrong like this:

    main() {
        const a int32 = 5;
        var b int32 = 25;
        outln(div(b, a));
    }
    
    div(x float64, y float64) float64 {
      ret x / y;
    }
    

    As a result, g++ reports incorrect code:

    x.cxx: In function 'void _main()': x.cxx:205:15: error: '_b_a' was not declared in this scope; did you mean '_b'? 205 | _outln(_div(_b_a)); | ^~~~ | _b

    bug compiler 
    opened by 0verse 2
  • [OTHER] Standard library doesn't follows Go's license

    [OTHER] Standard library doesn't follows Go's license

    What would you like to share?

    The some codes in the standard library are adapted from Go, but do not follow the license of Go and do not meet the requirements.

    Additional information

    No response

    opened by VerteXGMD 1
  • [PROPOSAL] Add a security policy

    [PROPOSAL] Add a security policy

    Detailed description

    For security reasons, when a vulnerability is found in the code, it should be reported to the maintainers/administrators rather than making an issue on GitHub; otherwise, everything could be exposed. It might be dangerous as well.

    More information at https://docs.github.com/es/code-security/getting-started/adding-a-security-policy-to-your-repository

    Context

    In case a vulnerability in the code is found, the users can check the security policy to know how to report vulnerabilities properly. This will also make it much easier for the maintainers as well for the users and the community using the code.

    Possible implementation

    No response

    Additional information

    If you need any help implementing this, let me know. 🙂

    proposal 
    opened by Panquesito7 1
  • [BUG] foreach loop in string

    [BUG] foreach loop in string

    when i transpile this jule code, i get the decimal value of the chars in the "test" string:

    fn main() {
        let s = "test"
        for _, b in s {
            outln(b)
        }
    }
    
    // OUTPUT
    116
    101
    115
    116
    

    is this expected behavior, because it doesn't l like that in the docs?

    bug 
    opened by lareithen 1
  • [PROPOSAL] Add a PR template

    [PROPOSAL] Add a PR template

    Detailed description

    Add a pull request template to the repository to let maintainers know of the change easier and more.

    Context

    A pull request template will make it easier for the maintainers and PR creators as well to make sure they've done everything correctly and have added the required information.

    Possible implementation

    Add a PR template to the repository.

    Additional information

    No response

    proposal 
    opened by Panquesito7 2
Owner
The X Programming Language
Simple, safe and compiled programming language.
The X Programming Language
T# Programming Language. Something like Porth, Forth but written in Go. Stack-oriented programming language.

The T# Programming Language WARNING! THIS LANGUAGE IS A WORK IN PROGRESS! ANYTHING CAN CHANGE AT ANY MOMENT WITHOUT ANY NOTICE! Something like Forth a

T# 92 Jun 29, 2022
Yayx programming language is begginer friendly programming language.

Yayx Yayx programming language is begginer friendly programming language. What have yayx: Easy syntax Dynamic types Can be compiled to outhers program

null 1 Dec 27, 2021
Yayx programming language is begginer friendly programming language.

Yayx Yayx programming language is begginer friendly programming language. What have yayx: Easy syntax Dynamic types Can be compiled to outhers program

Yayx Programming Language 7 May 20, 2022
Pineapple Lang is a simple programming language demo implements by Go

Pineapple Lang is a simple programming language demo implements by Go. It includes a hand-written recursive descent parser and a simple interpreter, although the language is not even Turing-complete. But this repo's main goal is to give beginners of compilation principles a warm up and a simple look at how a programming language is built.

karminski-牙医 241 Dec 26, 2022
WindLang, A simple programming language built with golang 🍃

WindLang, A simple programming language built with golang ?? WindLang, A simple programming language built with golang ?? What is wind? Playground Coo

null 11 Dec 1, 2022
Gentee - script programming language for automation. It uses VM and compiler written in Go (Golang).

Gentee script programming language Gentee is a free open source script programming language. The Gentee programming language is designed to create scr

Alexey Krivonogov 101 Dec 15, 2022
⛳ A minimal programming language inspired by Ink, JavaScript, and Python.

⛳ Golfcart My blog post: Creating the Golfcart Programming Language Getting Started Scope Rules Usage Building and tests Contributions License Golfcar

Andrew Healey 26 Sep 6, 2022
Monkey programming language project from 'Writing An Interpreter In Go'and 'Writing A Compiler In Go' Books

Monkey Monkey programming language ?? project from "Writing An Interpreter In Go

Amr Hesham 1 Dec 16, 2021
a dynamically typed, garbage collected, embeddable programming language built with Go

The agora programming language Agora is a dynamically typed, garbage collected, embeddable programming language. It is built with the Go programming l

Martin Angers 324 Dec 30, 2022
Port of the lemon parser generator to the Go programming language

From the golang-nuts mailing list (with few modifications): --== intro ==-- Hi. I just want to announce a simple port of the lemon parser generator

null 54 Feb 17, 2022
An LL(1) parser generator for the Go programming language.

What is it? I have implemented an LL(1) parser generator for the Go programming language. I did this to build parse trees for my HAML parser. You can

Curtis Schlak 14 Jan 18, 2022
PHP bindings for the Go programming language (Golang)

PHP bindings for Go This package implements support for executing PHP scripts, exporting Go variables for use in PHP contexts, attaching Go method rec

Alex Palaistras 883 Dec 27, 2022
The Slick programming language is an s-expression surface syntax for Go.

The Slick programming language The Slick programming language is a Lisp/Scheme-style s-expression surface syntax for the Go programming language, with

null 123 Jan 8, 2023
A interpreter of SweetLang, is writed in Go Programming language.

SweetLang ( Soon ) A interpreter of SweetLang, is writed in Go Programming language. SweetLang is made with clarity and simplicity we try to make its

SweetLang 2 Oct 31, 2021
ReCT-Go-Compiler - A compiler for the ReCT programming language written in Golang

ReCT-Go-Compiler A compiler for the ReCT programming language written in Golang

RedCubeDev 6 Nov 30, 2022
ReCT-Go-Compiler - A compiler for the ReCT programming language written in Golang

ReCT-Go-Compiler A compiler for the ReCT programming language written in Golang

null 6 Nov 30, 2022
A dialect of Lisp extended to support concurrent programming, written in Go.

LispEx A dialect of Lisp extended to support concurrent programming. Overview LispEx is another Lisp Interpreter implemented with Go. The syntax, sema

null 181 Nov 22, 2022
Golem is a general purpose, interpreted scripting language.

The Golem Programming Language Golem is a general purpose, interpreted scripting language, that brings together ideas from many other languages, inclu

Mike Jarmy 1 Sep 28, 2022
Scripting language for Go.

Minima Minima is an experimental interpreter written in Go (the language is called the same). We needed a way to massage our JSON data with a scriptin

Janos Dobronszki 38 Feb 11, 2022