Onelang.org | Yardımınıza ihtiyacımız var
English عربي Español فارسی Filipino Français Italiano 日本語 한국어 русский Türkçe Українська
One'a hoşgeldiniz!
One açık kaynak kodlu, kendini barındıran ve fonlayan ve bu özellikleri sayesinde güvenilebilir ve verimli yazılımlar yaratmayı kolaylaştıran bir sistem programlama dilidir.
Max, John ve diğer katılımcılar tarafından geliştirilmektedir.
- One dilinin özellikleri
- Yol Haritası
- Kod Örnekleri
- İlk kullanım kılavuzu
- Dahil olun
- Lisans
- Basit.
- Compiler.
- Çıktı dosyası oluşturabilir. (x86_64, i386)
- Sistem Programlama Dilidir.
- Orta Düzey.
- Network ve API programlama yapılabilir.
- Web programlama desteği sunar. (gelecek)
- Hem CSS hem de HTML'e karşılık gelen kodlar otomatik olarak üretilir. Yani, bir websitesi geliştirmek için
One
dışında herhangi bir dil öğrenmenize gerek yok. - CSS'de variables kullanır, böylece veritabanından renkleri ve boyutları çekebilir.
- Sayfa sonuçlarını otomatik olarak küçültür.
- Hem CSS hem de HTML'e karşılık gelen kodlar otomatik olarak üretilir. Yani, bir websitesi geliştirmek için
- Yüksek hızlı performans vaad eder.
- İnline Assembly code destekler. (gelecek)
- Normal modda, kullanıcının sisteminde belirli kütüphane ve araçlar olmasına ihtiyaç duymaz. (gelecek)
- Normal modda, external runtime kütüphanelerine ihtiyaç duymaz. (gelecek)
- Compile etmek için harici compiler'lara ihtiyaç duymaz. (gelecek)
One
dilinin kurallarını burada bulabilirsiniz.
- Lexer/Parser (Mostly)
- AST Tree
- VM
- Code Generator (LLVM-C'den esinlenildi.)
- Bir runtime kütüphanesi geliştmek ve yeni özellikler eklemek
- Dil için bir web framework geliştirmek
- Compiler'ı
One
dili içerisinde yeniden yazmak
main {
ret 0
}
C'ye çevirelim:
#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'ye çevirelim:
#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'ye çevirelim:
#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);
}
Başka bir taslak:
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
}
Başka bir taslak:
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
Bu mimari sadece websiteler ve native yazılımlar için tasarlanmıştır. Gelecekte, mobil uygulamalar için de kullanılabilir olacaktır.(native).
Mobil yapılar henüz tamamlanmadı ve daha fazla düşünceye ve ilgilenilmeye ihtiyaçları var.
Dilin çalışma şeklini göstermek için bir örnek:
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 temelli kodlara çevirelim:
<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>
Dili öğrenmeye başlamak için bu linke göz atabilirsiniz.
- GNU / Linux
- Windows
- macOS (Not complete)
- BSD
Bug raporlamaları, özellik istekleri, dokümentasyon geliştirmeleri vb. dahil olmak üzere her türlü katkıyı nezaketle karşılıyoruz. Soru sormak ya da bir tartışma başlatmak için bir issue oluşturun ya da One Discord Server'ına katılın.
Eğer GitHub'da nasıl pull request oluşturacağınızı bilmiyorsanız şu rehberi inceleyebilirsiniz.
Eğer katkıda bulunmak istiyorsanız, lütfen ilk olarak burada yer alan esasları okuyunuz.
Ayrıca ❤️ Patreon üzerinden bize maddi destek sağlayarak da bu projeye katkıda bulunabilirsiniz..
Katkı sağlayan herkese teşekkürler!
Eğer projenin geliştirilmesinde katkıda bulunmak isterseniz, bize mail atabilirsiniz: [email protected]
Max Base tarafından oluşturuldu! @ 2019
One
GNU General Public License v3.0 lisansı altında yayınlanmıştır. Lütfen LICENSE dosyası içerisinde yer alan detaylara göre hareket ediniz.