Skip to content

Latest commit

 

History

History
482 lines (375 loc) · 12.7 KB

README_FA.md

File metadata and controls

482 lines (375 loc) · 12.7 KB

The One Programming Language

زبان برنامه نویسی وان💚 💙 🧡 🤍 💖 🖤

Onelang.ir | کمک خواست

Patreon Discord Twitter Instagram License Facebook

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

به وان خوش آمدید!

این یک زبان برنامه نویسی سیستمی، خود میزبان و منبع باز هست که طراحی نرم افزار های توسعه پذیر و سریع رو راحت می کند.

این زبان توسط مکس و جوهن و دیگرتوسعه دهندگان پروژه طراحی می شود.

کامپایلر برای زبان وان در ماه هایی پیش رو آماده می شود.

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

فهرست

  1. ویژگی های زبان وان
  2. نقشه و مسیر پروژه
  3. نمونه کد ها
  4. طریقه شروع
  5. مشارکت کردن
  6. مجوز و لایسنس

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

➤ ویژگی های زبان وان

  • سادگی
  • کامپایلری
  • امکان ایجاد فایل خروجی قابل اجرا برای معماری های مختلف (x86_64, i386)
  • زبان برنامه نویسی سیستمی
  • سطح متوسط و نحو نزدیک به انسان
  • شبکه و طراحی وبسرویس
  • سازگار برای طراحی وب (در آینده ای نزدیک)
    • بصورت خودکار کد های زبان های دیگر را برای شما تولید می کند و برای طراحی وب سایت شما نیاز به یادگیری زبان دیگری ندارید و تنها زبان وان است که استفاده می کنید.
    • استفاده از متغییر در استایل CSS, بنابراین حتی می توانید مشخصات ظاهری و رنگ ها را از دیتابیس نیز دریافت کنید.
    • امکان خودکار کوتاه کردن نتیجه های وب سایت (minify)
  • عملکرد و سرعت بالا
  • پشتیبانی از دستورات خطی اسمبلی در لابه لای برنامه (در آینده)
  • عدم نیاز به ابزارها و کتابخانه های مخصوص بر روی سیستم کاربر در حالت معمول (در آینده)
  • به کتابخانه زمان اجرای جانبی دیگری نیاز ندارد (در آینده)
  • به کامپایلر خارجی دیگری برای کامپایل احتیاج ندارد (در آینده)

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

➤ نقشه و مسیر پروژه

نحو و گرامر زبان وان نیز در اینجا در دسترس است.

  • 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

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

➤ نمونه کد ها

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 (Not complete)
  • BSD

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

➤ مشارکت کردن

ما از انواع مشارکت ها، از جمله گزارش اشکال، درخواست ویژگی، بهبود اسناد و غیره استقبال می کنیم.

برای پرسیدن سوال یا باز کردن بحث، یک موضوع بسازید یا به وان سرور دیسکورد بپیوندید.

اگر شما با نحوه ساختن درخواست pull در گیت هاب آشنا نیستید لطفا این راهنما را بخوانید.

اگر تصمیم به مشارکت گرفتید، لطفا ابتدا رهنمودها را از اینجا بخوانید.

شما همچنین میتوانید با کمک های مالی به توسعه وان کمک کنید ❤️ Patreon.

تشکر از تمامی مشارکت کننده ها!!

اگر شما تمایل به مشارکت در توسعه این پروژه دارید، میتوانید به ما ایمیل بزنید: maxbasecode@gmail.com


ساخته شده توسط Max Base @ 2019 -----------------------------------------------------

➤ مجوز و لایسنس

وان تحت لایسنس GNU General Public License v3.0 انتشار یافته. لطفا به شرایط در فایل لایسنس موجود در مخزن مراجعه کنید.