Skip to content

Latest commit

 

History

History
417 lines (344 loc) · 10.9 KB

README_FIL.md

File metadata and controls

417 lines (344 loc) · 10.9 KB

The One Programming Language

Ang Isang Programang Lengguwahe 💚 💙 🧡 🤍 💖 🖤

Onelang.org | Tulong

Patreon Discord Twitter Instagram License Facebook

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

Maligayang pagdating sa One!
Ito ay isang open source, self-hosted, bootstrapping programang lengguwahe upang madaling makabuo ng maaasahan at mahusay na software. Ito ay dinebelop ng Max, John at ng iba pang may akda

Ang mga may akda ng Isang Lengguwahe ay mailalabas sa loob ng ilang buwan

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

Talaan ng Nilalaman

  1. Katangian ng One
  2. Daan ng Mapa
  3. Halimbawa ng Code
  4. Panimula
  5. Pakikisalamuha
  6. Lisensya

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

➤ Katangian ng One

  • Simple
  • Tagatala
  • Kakayahang makagawa ng output file (x86_64, i386)
  • Sistema ng Programang Lengguwahe
  • Kalagitnaang lebel
  • Pagprograma ng network at API
  • Suporta sa Programang Web (sa hinaharap)
    • Awtomatikong pagbuo ng naaayon na code para sa CSS at HTML. Para hindi ka na mag-aral ng higit sa "One" lengguwahe upang makabuo ng website.
    • Gumagamit ng variables sa CSS, upang makakuha ng kulay at sukat galing sa database
    • Awtomatik na pagliit ng resultang pahina
  • Pagsasagawa at mabilis
  • Suporta sa inline Assembly code (sa hinaharap)
  • Hindi nangangailangan ng tiyak na aklatan at kagamitan sa sistema ng gumagamit sa normal mode (sa hinaharap)
  • Hindi nangangailangan ng panlabas na runtime aklatan sa normal mode (sa hinaharap)
  • Hindi nangangailangan ng panlabas na tagatalang aklatan sa normal mode (sa hinaharap)

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

➤ RoadMap

Magagamit ang One grammar dito.

  • Lexer/Parser (Karamihan)
  • Arbol AST
  • VM
  • Gumagawa ng Code (inspirasyon ng LLVM-C)
  • Bumuo ng isang runtime aklata at magdagdag ng katangian
  • Mag-disenyo ng arkitektura sa web para sa lengguwahe
  • Isulat muli ang tagatala sa One lengguwahe

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

➤ Halimbawa ng Code

main {
   ret 0
}

Convertir a 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
}

Convertir a 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
}

Convertir a 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);
}

Isa pang halimbawa:

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
}

Isa pang halimbawa:

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!"
        }
    }
}

Nakaraang pag-unlad ng CLI

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

Nakaraang pag-unlad ng GUI: (Web, Software)

Ang arkitekturang ito ay dinisenyo para sa katutubong software at mga website lamang. Sa hinaharap, magagamit din ito para sa mga mobile application. (katutubo).
Ang mga estraktura na ito ay hindi pa nakukumpleto at nangangailangan pa rin ng pansin at dedikasyon.

Ang sumusunod ay isang halimbawa kung paano gumagana ang lengguwahe:

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"
    }
  }
}

I-convert ang base CSS/HTML/JS:

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

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

➤Mga Unang Hakbang

Maaari mong suriin ang link na ito upang simulang matuto ng wika.

Mga sinusuportahang kapaligiran

  • GNU / Linux
  • Windows
  • macOS (Hindi kumpleto)
  • BSD

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

➤ Pakikiugnay

Tumatanggap kami ng anumang uri ng mga kontribusyon, kabilang ang ulat ng mga bug, paghiling ng tampok, pagpapahusay ng dokumentasyon, atbp. Upang magtanong o magsimula ng isang Pag-uusap, gumawa ng isang isyu o sumali sa One Servidor de Discord.

Kung hindi ka pamilyar sa proseduring upang gumawa ng isang kahilingan sa paghila sa GitHub maaari mong suriin ang na ito gabay.

Kung nagpasya kang mag-ambag, mangyaring suriin ang mga alituntunin dito.
Maaari mo ring tulungan ang pagbuo ng One sa pamamagitan ng mga donasyon sa ❤️ Patreon.

Salamat sa lahat ng mga nag-ambag!!

Kung nais mong magbigay ng kontribusyon sa pag-unlad ng proyektong ito, maaari kang sumulat sa amin sa: [email protected]


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

➤ Lisensya

Ang One ay inilabas sa ilalim ng GNU General Public License v3.0. Para sa pabor na suriin ang mga tuntunin sa file na LICENCIA incluido en el repositorio.