ITADN
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

The One Programming Language

唯一编程语言 💚 💙 🧡 🤍 💖 🖤

Onelang.org | Help wanted

Patreon Discord Facebook Instagram Twitter License

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

欢迎使用 One
它是一种开源、自托管、自举的 系统编程语言,使构建可靠且高效的软件变得轻而易举。 它由 MaxJohn 以及其他开源贡献者共同开发。

One 语言的编译器将在几个月内发布

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

目录

  1. One
  2. 的特性
  3. 路线图
  4. 代码示例
  5. 快速入门
  6. 参与贡献
  7. 许可证
  8. 贡献者

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

➤ One 的特性

  • 简洁性
  • 编译器
  • 能够创建输出文件 (x86_64, i386)
  • 系统编程语言
  • 中级
  • 网络和 API 编程
  • 支持 Web 编程(未来)
    • 自动为 CSS 和 HTML 生成相应的代码。因此,开发网站无需学习超过 One 种语言
    • 在 CSS 中使用变量,以便我们可以从数据库获取颜色或尺寸
    • 自动压缩页面结果
  • 高性能和高速度
  • 支持内联 Assembly 代码(未来)
  • 在正常模式下不需要用户系统上的特定库和工具(未来)
  • 在正常模式下不需要外部运行时库(未来)
  • 在正常模式下不需要外部编译器进行编译(未来)

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

➤ 路线图

One 语言的语法可在此处]获取。

  • 词法分析器/语法分析器(大部分)
  • AST 树
  • 虚拟机
  • 代码生成器(从 LLVM-C 获取灵感)
  • 开发运行时库并添加功能
  • 为该语言设计 Web 框架
  • 使用 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!"
        }
    }
}

旧版 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

旧版 GUI 开发:(Web,软件)

该架构目前仅针对网站和原生软件进行设计。未来,它也将适用于移动应用(原生)。
移动端的结构尚不完整,需要更多的关注和思考。

示例以展示该语言的工作方式:

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

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

➤ 参与贡献

我们欢迎各种形式的贡献,包括错误报告、功能请求、文档改进等。 如需提问或发起讨论,请创建一个 issue 或加入 One Discord 服务器

如果您不熟悉如何在 GitHub 上发起 pull request,请阅读此指南

如果您决定参与贡献,请先阅读此处的指南。
您也可以通过在 :heart: Patreon 上进行捐赠来支持 One 的开发。

感谢所有贡献者!!

如果您希望参与本项目的开发,可以通过邮件联系我们:maxbasecode@gmail.com


由 Max Base 创建于 2019 年 -----------------------------------------------------

➤ 许可证

One 依据 GNU 通用公共许可证 v3.0 发布。请参阅仓库中包含的 LICENSE 文件中的条款。

➤ 贡献者

The One Contributors

contrib.rocks 制作。