GithubHelp home page GithubHelp logo

roxydesa / xxc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from julelang/jule

0.0 0.0 0.0 4.18 MB

The X Programming Language

Home Page: https://the-xlang.github.io/website/

License: BSD 3-Clause "New" or "Revised" License

Shell 0.25% C++ 12.10% Go 87.39% Batchfile 0.26%

xxc's Introduction

The X Programming Language

Website | Documentations | Contributing

Motivation

X is a statically typed compiled programming language designed for system development, building maintainable and reliable software. The purpose of X is to keep functionality high while maintaining a simple form and readability. It guarantees memory safety and does not contain undefined behavior.

Memory Safety and Management

The memory safety and the memory management. A major challenge in the C and C++ or similar programming languages. X guarantees memory safety and uses reference counting for memory management. An account-allocation is automatically released as soon as the reference count reaches zero. There are no dangling pointers, and accessing a null pointer will obviously get you an error.

  • Instant automatic memory initialization
  • Bounds checking
  • Null checking

C++ Interoperability

X is designed to be interoperable with C++. A C++ header file dependency can be added to the X code and its functions can be linked. It's pretty easy to write C++ code that is compatible with the X code compiled by the compiler. XXC keeps all the C++ code it uses for X in its api directory.

    Goals

    • Simplicity and maintainability
    • Fast and scalable development
    • Performance-critical software
    • Memory safety
    • As efficient and performance as C++
    • High C++ interoperability

    What is XXC?

    XXC is the name of the reference compiler for the X programming language.
    It is the original compiler of the X programming language.
    The features that XXC has is a representation of the official and must-have features of the X programming language.

    About Project

    XXC, the reference compiler for X, is still in development. Currently, it can only be built from source. Due to the fact that it is still under development, there may be changes in the design and syntax of the language.

    It is planned to rewrite the compiler with X after reference compiler reaches sufficient maturity. XXC has or is very close to many of the things X was intended to have, such as memory safety, properties, structures with methods and generics.

    Currently, project structure, its lexical and syntactic structure has appeared. However, when the reference compiler is rewritten with X, it is thought that AST, Lexer and some packages will be included in the standard library. This will be a change that will cause the official compiler's project structure to be rebuilt. The reference compiler will probably use the standard library a lot. This will also allow developers to quickly develop tools for the language by leveraging X's standard library.

    Documentations

    All documentation about XXC (naturally X programming language) is on the website.
    See Documentations

    OS Support

    Operating System Transpiler Compiler
    Windows Supports Not supports yet
    Linux Supports Not supports yet
    MacOS Supports Not supports yet

    Building Project

    Website documentation for install from source.

    There are scripts prepared for compiling of XXC.
    These scripts are written to run from the home directory.

    build scripts used for compile.
    brun scripts used for compile and execute if compiling is successful.

    Go to scripts directory

    XXC aims to have a single main build file.
    XXC is in development with the Go programming language.

    Building with Go Compiler

    Windows - PowerShell

    go build -o xxc.exe -v cmd/xxc/main.go
    

    Linux - Bash

    go build -o xxc -v cmd/xxc/main.go
    

    Run the above command in your terminal, in the XXC project directory.

    Project Build State

    Operating System State
    Windows
    Ubuntu
    MacOS

    Contributing

    Thanks for you want contributing to XXC!

    The XXC 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.

    Code of Conduct

    See Code of Conduct

    License

    The XXC and standard library is distributed under the terms of the BSD 3-Clause license.
    See License Details

    xxc's People

    Contributors

    mertcandav avatar

    Recommend Projects

    • React photo React

      A declarative, efficient, and flexible JavaScript library for building user interfaces.

    • Vue.js photo Vue.js

      ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

    • Typescript photo Typescript

      TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

    • TensorFlow photo TensorFlow

      An Open Source Machine Learning Framework for Everyone

    • Django photo Django

      The Web framework for perfectionists with deadlines.

    • D3 photo D3

      Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

    Recommend Topics

    • javascript

      JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

    • web

      Some thing interesting about web. New door for the world.

    • server

      A server is a program made to process requests and deliver data to clients.

    • Machine learning

      Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

    • Game

      Some thing interesting about game, make everyone happy.

    Recommend Org

    • Facebook photo Facebook

      We are working to build community through open source technology. NB: members must have two-factor auth.

    • Microsoft photo Microsoft

      Open source projects and samples from Microsoft.

    • Google photo Google

      Google โค๏ธ Open Source for everyone.

    • D3 photo D3

      Data-Driven Documents codes.