Onelang.org | Потрібна допомога
English عربي Español فارسی Filipino Français Italiano 日本語 한국어 русский Türkçe Українська
Ласкаво просимо до One!
Це відкрита, самодостатня, самоналаштовувана системна мова програмування яка дає можливість легко створити надійне і ефективне програмне забезпечення.
Вона розробляється Max, John і іншими людьми, що роблять внесок через відкритий доступ.
- Простота
- Компілятор
- Можливість створення вихідного файлу (x86_64, i386)
- Системна мова програмування
- Середній рівень
- Мережеве і API програмування
- Підтримує веб-програмування (в майбутньому)
- Автоматична генерація відповідного коду і для CSS і HTML. Отже, вам не потрібно буде вивчати інші мови, крім
One
, щоб створити вебсайт - Використовує змінні в CSS, щоб ми змогли отримати кольори чи розміри з бази данних
- Автоматична мінімізація результатів пошуку сторінки
- Автоматична генерація відповідного коду і для CSS і HTML. Отже, вам не потрібно буде вивчати інші мови, крім
- Продуктивність і висока швидкість
- Підтримує код вбудованого асемблера (в майбутньому)
- В звичайному режимі не потребує спеціальних бібліотек і інструментів на системі користувача (в майбутньому )
- В звичайному режимі не потребує зовнішніх бібліотек часу виконання (в майбутньому )
- Не потребує зовнішніх компіляторів для виконання компіляції (в майбутньому)
Граматика мови One
доступна тут.
- Lexer/Parser (здебільшого)
- Дерево AST
- VM
- Генератор коду (на основі LLVM-C)
- Розробіть бібліотеку часу виконання і додайте характеристики
- Створіть веб-фреймворк для мови
- Перепишіть компілятор мовою
One
main {
ret 0
}
Конвертувати в 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
}
Конвертувати в 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
}
Конвертувати в 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);
}
Інший варіант:
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
}
Інший варіант:
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
Ця архітектура розробляється лише для веб-сайтів і власного програмного забезпечення. В майбутньому вона також буде доступною для мобільних додатків (власних).
Мобільні структури ще не завершені і потребують більше уваги і осмислення.
Приклад для демонстрації роботи мови:
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"
}
}
}
Конвертувати в базу 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>
Перейдіть за цим посиланням, щоб почати вивчення мови.
- GNU / Linux
- Windows
- macOS (Не повністю)
- BSD
Ми вітаємо будь-які види внесків, включаючи повідомлення про баги, запити щодо особливостей, покращення документації і т.д. Щоб задати питання чи відкрити дискусію, створіть тему обговорення або ж долучіться до One Discord сервер.
Якщо ви не знайомі з тим, як створити Pull-запит у GitHub, прочитайте, будь-ласка, це - довідник.
Якщо ви вирішили зробити свій внесок, прочитайте, будь-ласка, спочатку настанови тут.
Також ви можете допомогти в розробці One
, надсилаючи пожертвування на ❤️ Patreon.
Дякуємо усім людям, що роблять свої внески!!
Якщо ви бажаєте зробити власний внесок у розвиток цього проекту, ви можете написати нам на: [email protected]
One
випущено згідно з Загальною публічною ліцензією GNU v3.0. Будь-ласка, перейдіть до умов в ЛІЦЕНЗІЯ файлі, вкладеному в репозиторій.