GithubHelp home page GithubHelp logo

one-language / one Goto Github PK

View Code? Open in Web Editor NEW
279.0 17.0 59.0 3.16 MB

One (onelang) is an open-source system programming language that makes it easy to build reliable, efficient and performant software. (release as soon) 1️⃣ 🕐 🩱

Home Page: https://onelang.org

License: GNU General Public License v3.0

Makefile 0.18% C 81.58% JavaScript 3.44% CMake 0.67% HTML 1.80% Shell 0.18% Dockerfile 0.27% C++ 11.87%
compiler programming-language compiler-optimization language self-hosting open-source compiler-designs compilers-design compiler-backend compiler-frontend

one's Introduction

The One Programming Language

The One Programming Language 💚 💙 🧡 🤍 💖 🖤

Onelang.org | Help wanted

Patreon Discord Facebook Instagram Twitter License

English   عربي   Español   فارسی   Filipino   Français   Italiano   日本語   한국어   русский   Türkçe   Українська

Welcome to One!
It is an open source, self-hosted, bootstrapping system programming language which makes it easy to build reliable and efficient software. It is being developed by Max, John and other open-source contributors.

Compiler for the One Language will be released in a few months

-----------------------------------------------------

Table of Contents

  1. Features of One
  2. RoadMap
  3. Code Examples
  4. Getting Started
  5. Get Involved
  6. License
  7. Contributors

-----------------------------------------------------

➤ Features of One

  • Simplicity
  • Compiler
  • Ability to create output file (x86_64, i386)
  • System Programming Language
  • Intermediate level
  • Network and API programming
  • Supports Web Programming (in the future)
    • Automatic generation of corresponding code for both CSS and HTML. So you won't have to learn more than One language to develop a website
    • Uses variables in CSS, so that we can obtain the colors or sizes from the database
    • Auto minify the page results
  • Performance and high speed
  • Supports inline Assembly code (in the future)
  • Does not require specific libraries and tools on the user system in normal mode (in the future)
  • Does not require external runtime libraries in normal mode (in the future)
  • Does not require external compilers to do the compilation (in the future)

-----------------------------------------------------

➤ RoadMap

Grammar of the One language is available here.

  • Lexer/Parser (Mostly)
  • AST Tree
  • VM
  • Code Generator (get inspired from LLVM-C)
  • Develop a runtime library and add features
  • Design web framework for the language
  • Rewrite compiler in the One language

-----------------------------------------------------

➤ Code Examples

main {
   ret 0
}

Convert to C:

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
   global_argc = argc;
   global_argv = argv;
   return (int) 0;
}

i32 main {
   ret 10
}

Convert to C:

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
   global_argc = argc;
   global_argv = argv;
   return (int) 10;
}

main {
   string in = "Hello, World!"
   __ in
   return in.length
}

Convert to C:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
   global_argc = argc;
   global_argv = argv;
   char *in = "Hello, World!";
   printf("%s\n", in);
   return (int) strlen(in);
}

Another draft:

import web
home {
    _ "Hi, Welcome"
}
error {
    headers.add('HTTP/1.0 404 Not Found')
    headers.add('content-type: text/html;charset=utf-8')
    _ "<h1>404></h1>"
}
main {
    if system.args.length === 2 {
        port = system.args[1]
    } else  {
        port = 8080;
    }
    web.route.add("/", home)
    web.route.add("*", error)
    web.listen(port)
    return 0
}

Another draft:

error {
    headers.add('HTTP/1.0 404 Not Found')
    headers.add('content-type: text/html;charset=utf-8')
    _ `<!doctype html><html><head><title>Error 404</title><meta charset="utf-8"></head><body><h1>404></h1></body></html>`
}

vs

error {
    headers.add('HTTP/1.0 404 Not Found')
    headers.add('content-type: text/html;charset=utf-8')
    page {
        title: 'Error 404'
        label {
            type: 'h1'
            _ "Not found!"
        }
    }
}

Old CLI Development

main:
   // __ "Hello, World!"
   _ "Hello,"
   io.write(' ')
   io.write("World")
   __ '!'
end
@start
customName:
   _ "Hello, World!\n"
end
@start
void app:
   __ "Hello, World!"
end
@start
int customName:
   _ "Hello, World!\n"
   return 0
end

Old GUI Development: (Web, Software)

This architecture is being designed only for websites and native software. In the future, it will also be available for mobile apps (native).
Mobile structures are not yet complete and require more attention and thought.

Example to demonstrate working of the language:

title "Name - Main"
description "Descriptions"
/*
Keyword tag not used in the software, only on the web.
*/
keyword "keywords"
style {
  * {
    margin 0
    padding 0
  }
  header {
    width "100%"
    height "auto"
  }
  list {
    color "red"
  }
  list item {
    display "inline"
    padding "10px"
    background "yellow"
  }
}
header {
  list {
    item {
      _ "Home"
    }
    item {
      _ "About"
    }
    item {
      _ "Contact Us"
    }
  }
}

Convert to CSS/HTML/JS base:

<html>
  <head>
    <title>Name - Main</title>
    <meta name="description" content="Descriptions" />
    <meta name="keyword" content="keywords" />
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      header {
        width 100%;
        height: auto;
      }
      ul {
        color: red;
      }
      ul li {
        display: inline;
        padding: 10px;
        background: yellow;
      }
    </style>
  </head>
  <body>
    <header>
      <ul>
        <li>Home</li>
        <li>About</li>
        <li>Contact Us</li>
      </ul>
    </header>
  </body>
</html>

-----------------------------------------------------

➤ Getting Started

Refer to this link to start learning the language.

Supported Environments

  • GNU / Linux
  • Windows
  • macOS (Not complete)
  • BSD

-----------------------------------------------------

➤ Get Involved

We welcome all kinds of contributions, including bug reports, feature requests, documentation improvements etc. To ask a question or open a discussion, create an issue or join the One Discord Server.

If you are not familiar with how to make a pull request on GitHub then please read this guide.

If you have decided to contribute, please first read the guidelines here.
You can also help in the development of One by making some donations on ❤️ Patreon.

Thanks to all the contributors!!

If you would like to contribute in the development of this project, you can mail us at: [email protected]


Created By Max Base @ 2019 -----------------------------------------------------

➤ License

One is released under the GNU General Public License v3.0. Please refer to the terms in the LICENSE file included in the repository.

➤ Contributors

The One Contributors

Made with contrib.rocks.

one's People

Contributors

abdorah avatar acorrenson avatar alesar1 avatar allcontributors[bot] avatar amir-shiati avatar ayushrana182 avatar basalumutgazi avatar danyb0 avatar dependabot[bot] avatar eltociear avatar gokul2003g avatar jassab avatar jbampton avatar johnbampton avatar kkkkkk58 avatar majalian avatar mikey-b avatar murataka avatar n4i9kita avatar parsa011 avatar pedramcvx1 avatar programcodes avatar restyled-commits avatar restyled-io[bot] avatar rrrokhtar avatar sokratisvas avatar step-security-bot avatar the-ak avatar xahmd avatar yaminyam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

one's Issues

🏛️ [Join] Core team 🏛️

Hi, One language Team;
I'm here to tell you I'm interested in the project and want to be a part of this compiler to help and participate in this open-source project.

## Introduction
<!-- Please introduce yourself and your professional experience in a maximum of 5 sentences. -->

## Your correct role

I'm a Bachelor's student of computer science at the University of Cambridge.
And Have a part-time job at an embedded system company in India and I work as a C programmer.

## Timezone
<!-- Please write your timezone and location if possible. -->
Brisbane, Australia; UTC/GMT +10 hours

## Programming experience

List of languages with experience level:
<!-- Please remove and change the following languages name and description. -->
<!-- All the following information is just an example and it's not a MUST, you have to fill this with your situation. -->

- **C**: 3 years experience (And tell us about libraries you have worked on. e.g: libcurl, OpenSSL and every library you worked in at C.)
- **C++**: 1 year experience
- **Python**: Just for fun to write 3-5 scripts without professional experience
- **Batch/Bash**: Just for personal needs

## Operation Systems
<!-- Why we ask about OS, Because maybe we need a test on a special OS target and we can easily mention you for that. Thank you for your following. -->

List of Operating system with your experience level:
<!-- Please remove and change the following OS name and description. -->

- **Windows**: Windows 7 or 10 (I have a PC, or I have it in a virtual machine)
- **Linux**: CentOS or Ubuntu or Arch, etc. (Primary OS on laptop or desktop)

## Compiler experience

Tell us about your experience at University or your fun projects about Compilers and Interpreters:
<!-- Please write here -->
<!-- Please share all of your projects and repositories in this field if you have something. -->

Do you know about Flex and Bison/Yacc:
<!-- Please write here -->

Do you know about JIT Compilers:
<!-- Please write here -->

Do you know about LLVM:
<!-- Please write here -->

Tell us your opinion about "One language" and create a new language:
<!-- Please write here -->

Has it happened when you are programming and you are dissatisfied with a feature and you think you can inject such ideas into the project so that we can make a better product? What do you think:
<!-- Please write here -->

-----------

<!--
We need your idea and experience to shape the feature and syntax of "One language". So we are ready to talk to each other and help to project step by step.
-->

Best Regards;

🩱 `One` will be in Hacktoberfest 2021 🩱

One will be offering prizes in October for Hacktoberfest 😎

I think we could easily do the first 50 merged into One in October WIN !!!

I can cover the costs of cool stickers and postage all over the world 🚀🚀🚀🚀🚀🚀🚀🚀

I've started this conversation let's all really keep it going and come up with some awesome ideas 🍓 🌶️ 🥩 🦪 🎂 🍾

https://hacktoberfest.digitalocean.com/

🈺 [Join] Documentation team 🈺

Hi, One language Team;
I'm here to tell you I'm interested in the project and want to be a part of this compiler to help and participate in this open-source project.

Introduction

Your correct role

I'm a copywriter, marketer and business consultant

Timezone

Amman, Jordan; UTC/GMT +3 hours

Language Proficiency

List of languages you know with their proficiency level (Beginner, Intermediate, Expert):

  • English: Expert
  • Arabic: Expert

Programming/IT knowledge

Tell us more about your Programming/IT knowledge:

I can do some stuff on Github but I'm not a programmer
Tell us your opinion about "One language" and create a new language:

Max is awesome and I think with more help he'll do great things among them is ONE

Best Regards;

Adding One twitter at the README

Hey friends;

Currenly my twitter account linked to README.
We need to change to to the official team twitter account.

I'm looking for twitter username...

🦸 [Need Help] Operator-precedence parser 🦸

Hi, I took the initial phase of the parser forward and it works well and detects tokens.

Now I need help arranging operations and operators. Does anyone want to help? (Operator-precedence parser)
for e.g:

expression ::= equality-expression
equality-expression ::= additive-expression ( ( '==' | '!=' ) additive-expression ) *
additive-expression ::= multiplicative-expression ( ( '+' | '-' ) multiplicative-expression ) *
multiplicative-expression ::= primary ( ( '*' | '/' ) primary ) *
primary ::= '(' expression ')' | NUMBER | VARIABLE | '-' primary

[Join] Documentation team

Hi, One language Team;
I'm here to tell you I'm interested in the project and want to be a part of this compiler to help and participate in this open-source project.

Introduction

Hello, my name is Umut and I am from Turkey. I am a student and I really love being a part of programming organizations like this. My field of study is related to languages. Thank's to that, I am good at writing and translating.

Your correct role

I'm a Bachelor's student of Applied Linguistics and Comparative Foreign Languages.
I also work as a freelance translator and writer.
I know how to use Markdown and GitHub.

Timezone

Istanbul,Turkey, UTC/GMT +3

Language Proficiency

  • Turkish: Expert (Native)
  • English: Expert
  • French: Intermediate

Programming/IT knowledge

Tell us more about your Programming/IT knowledge:
I am learning Python and I have written some basic programs. I know how to use Git and Markdown files. I help some GitHub organizations in their article writing and publishing process. I learn quickly and I am learning new things every day.

Tell us your opinion about "One language" and create a new language:
I've talked to @BaseMax and the aims of the project really impressed me. Loved the idea of creating a new language for all kinds of tasks.


Best Regards;
Umut

🗄️ Monorepo for One must start now by including the `Document` site 🗄️

Is your feature request related to a problem? Please describe.

In version control systems, a monorepo is a software development strategy where code for many projects is stored in the same repository. As of 2017, various forms of this software engineering practice were over two decades old, but the general concept had only recently been named.

Describe the solution you'd like

Auto deploys and pull request deployment previews.

Able to maintain different documentation versions.

https://readthedocs.org/

Describe alternatives you've considered

Waste time juggling repos.

Additional context

Free hosting and a new environment to show off the One Power.

I want to join the One-Language organization

Hello,
I'm also a friend of John Bampton, at the time I'm working and studying so I don't have a lot of free time, but i still want to join your team. My native language is Spanish and I know how to use Python, Java, HTML, CSS, JavaScript, Tailwind, React and nodejs. I don't know much about C lang but i would really like to learn about it over time, and i think this is a great opportunity for that.
Thank you.

How can I get involved?

Hey everyone, if you have a slack channel or something for discussion, I would appreciate an invitation. I had a look at this project and it seems quite fascinating to me

I wanna join One-Language GitHub Organization !

Hello! I am a friend of @jbampton and I do Filipino translations for him. As of today, there are about 24.2 million speakers of Tagalog or the Filipino language worldwide. It is even the sixth most-spoken language in the US. I would really love to be part of your organizations and I look forward to working with you.

GitHub not have email obfuscation

Hello;

If you would like to contribute in the development of this project, you can mail us at : maxbasecode [@] gmail { . dot . } com

https://github.com/One-Language/One/blob/master/README.md#-get-involved

GitHub not have email obfuscation, so we have to change email address at public place.

I usually follow this pattern:
MaxBaseCode { @ } gmail [ . DOT . ] com

But some person said: Email address is MaxBaseCode at gmail.com domain
Or something like it.

Another method is to convert email address to image:

etc.

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.