Skip to content

Latest commit

 

History

History
459 lines (363 loc) · 12.3 KB

README_AR.md

File metadata and controls

459 lines (363 loc) · 12.3 KB

The One Programming Language

The One لغة برمجة 💚 💙 🧡 🤍 💖 🖤

Onelang.org | مركز المساعدة

اهلا وسهلا بك في One!
إنها لغة برمجة نظام مفتوحة المصدر ، مستضافة ذاتيًا ، مما يجعل من السهل إنشاء برامج موثوقة وفعالة. يتم تطويره من قبل ماكس, جون ومساهمين آخرين من المصادر المفتوحة.

سيصدر المترجم للغة الواحدة "ONE" في غضون أشهر قليلة

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

جدول المحتويات

  1. ميزات One
  2. خريطة الطريق
  3. أمثلة التعليمات البرمجية
  4. البدء
  5. مشاركة
  6. الرخصة

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

➤ مميزات لغة One

  • البساطة
  • ترجمة
  • القدرة على إنشاء ملف الإخراج (x86_64, i386)
  • برمجة الأنظمة
  • متوسطة المستوى
  • برمجة الشبكات و API
  • تدعم برمجة الويب (في المستقبل)
    • الإنشاء التلقائي للرمز المقابل لكل من CSS و HTML. لذلك لن تضطر إلى تعلم أكثر من لغة واحدة لتطوير موقع ويب
    • يستخدم المتغيرات في CSS ، حتى نتمكن من الحصول على الألوان أو الأحجام من قاعدة البيانات
    • تصغير نتائج الصفحة تلقائيًا
  • أداء وسرعة عالية
  • تدعم رمز التجميع المضمن (في المستقبل)
  • لا يتطلب منك مكتبات وأدوات محددة على نظام المستخدم في الوضع العادي (في المستقبل)
  • لا يتطلب مكتبات وقت تشغيل خارجية في الوضع العادي (في المستقبل)
  • لا يتطلب من المترجمين الخارجيين القيام بالتجميع (في المستقبل)

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

➤ خارطة الطريق

قواعد اللغة متوفرة . هنا.

  •    المعجم / المحلل اللغوي (في الغالب)
  •    شجرة 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-Type: 404')
    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-Type: 404')
    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-Type: 404')
    headers.add('Content-Type: text/html;charset=utf-8')
    page {
        title: 'Error 404'
        label {
            type: 'h1'
            _ "Not found!"
        }
    }
}

تطوير 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

تطوير واجهة المستخدم الرسومية القديمة: (الويب ، البرامج)

تم تصميم هذه البنية فقط لمواقع الويب والبرامج الأصلية. في المستقبل ، سيكون متاحًا أيضًا لتطبيقات الأجهزة المحمولة (الأصلية). (native).
الهياكل المتنقلة لم تكتمل بعد وتتطلب المزيد من التفكير والاهتمام.

مثال لإثبات عمل اللغة:

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

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

➤ شارك

نرحب بجميع أنواع المساهمات ، بما في ذلك تقارير الأخطاء وطلبات الميزات وتحسينات الوثائق وما إلى ذلك. لطرح سؤال أو فتح مناقشة أو إنشاء مشكلة , نرجو الإنضمام إلى سيرفر الدسكورد الخاص بنا . One Discord Server.

إذا لم تكن على دراية بكيفية تقديم طلب تعديل على GitHub ، فيرجى قراءة هذا . الدليل.

إذا كنت قد قررت المساهمة ، يرجى قراءة الإرشادات هنا أولاً. هنا.
يمكنك أيضًا المساعدة في تطوير One من خلال تقديم بعض التبرعات على ❤️ Patreon.

شكرا لجميع المساهمين!!

إذا كنت ترغب في المساهمة في تطوير هذا المشروع, يمكنك مراسلتنا على: [email protected]


تم إنشاؤه بواسطة Max Base @ 2019 -----------------------------------------------------

➤ الرخصة

One تم إصدارها بموجب رخصة جنو العمومية العامة v3.0. يرجى الرجوع إلى المصطلحات الموجودة في ملف الترخيص المتضمن في المستودع.