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
- 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)
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
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!"
}
}
}
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
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>
Maaari mong suriin ang link na ito upang simulang matuto ng wika.
- GNU / Linux
- Windows
- macOS (Hindi kumpleto)
- BSD
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]
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.