0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

自研编程语言:Unilang 的语言设计

西西 来源:OSC开源社区 作者:OSC开源社区 2022-09-21 11:32 次阅读

deepin 宣布了自研的全新通用目的编程语言:Unilang,其仓库提供了文档和作为参考实现的解释器。 deepin 表示,目前桌面应用开发虽然有许多选项,例如 Qt、Electron、PySide 和 Flutter 等。但它们存在各自的优势和不足。 据介绍,Unilang 目标是成为一门现代的通用目的编程语言,能够有效、灵活地开发桌面环境应用,去统筹解决现有不足的新的方案中的语言部分。为了保持通用性,Unilang 不内建提供 GUI 功能,而通过库提供相关 API 。当前计划中,Unilang 将会支持基于 Qt 绑定的库,以便衔接过渡现有的一些桌面应用项目。Unilang 的语言设计保持足够的抽象能力和可扩展性,未来支持直接实现 GUI 框架。 此外,Unilang 在语言特性的层次上被设计为能支持不同的应用开发场景,但原则上对这些场景保持中立。也就是说,Unilang 可以同时支持服务端和客户端应用的开发,不需要用户切换思维范式或者大幅更改对语言的使用习惯。 以下内容引用自官方介绍:

表现力:Unilang 是图灵完备的通用计算语言。Unilang 的创新式的语言特性,有助于构建强大而易于使用的抽象。

可复用:Unilang 对一等对象 (first-class) 的强调使几乎任何源程序组件都更比往常意义上更容易复用 —— 只要语言的用户愿意。

可扩展:Unilang 的基础语言和语言扩展的底层设计使开发者能有机会以前所未有的方式平滑地改进现有语言的设计和实现并保持兼容 —— 而非等待和语言设计及实现者的沟通与反馈。

可伸缩:Unilang 的资源管理模型和抽象能力使程序在具有不同计算资源的平台上的表现默认自然地一致,且易于调整。

多泛型 (multi-paradigm) :Unilang 的语言特性不要求用户拘泥于具体的语用范型 —— 例如,不会限制副作用来要求习惯纯函数式的风格,或者要求隐含对象而要求程序按面向对象的形式进行表达。灵活的抽象使用户能够针对不同领域的设计方案按需使用不同风格的实现。

易用性:Unilang 的核心语言特性的极简设计使它的入门相当容易。而可扩展的特性和强大的抽象机制使语言保留了丰富的进阶内容,供开发者按需选择。合理的基础设计使不同内容的掌握不易出错而更易使用。

专注性:Unilang 不是一门需要面面俱到精通各种特性才能用好的语言 —— 如果问题不是需要修改语言,语言的用户就应能更集中注意力于解决语言之外的问题上。

Unilang 主要特性

  • 核心语言特性
  • C++ 友好的对象模型
  • 在 C++ 中调用 Unilang 代码
  • FFI :调用 C 和 C++ 等本机语言实现的模块
  • 动态类型检查
  • 动态加载和执行
  • 不依赖 GC
  • 不安全操作
  • PTC(proper tail call)
  • 变量解析
  • 函数调用
  • 存储和对象模型(类似 C++)
  • 对象和值类别(类似 C++)
  • 一等函数:合并子 (combiner)
  • 一等环境:环境引用
  • 一等引用:引用值
  • 实体特性
  • 求值算法
  • 运行时支持
  • 互操作
  • ……
  • 库特性
  • 类型标注
  • 静态类型检查
  • 变量绑定
  • 块作用域
  • 列表算法
  • 模块机制
  • ……
  • 核心库
  • 字符串
  • 数值算术操作
  • 输入 / 输出
  • 类型系统增强
  • FFI API
  • Qt 绑定
  • ……

Hello World 示例 第一个程序:

display "Hello, world!"
输出:
Hello, world!
编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程语言
    +关注

    关注

    9

    文章

    1878

    浏览量

    33108
  • 解释器
    +关注

    关注

    0

    文章

    98

    浏览量

    6421

原文标题:深度deepin开源自研编程语言:Unilang

文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    太强了!华为鸿蒙编程语言,行业大佬都已经偷偷学起来了

    华为开发者大会 2021(Together)上,Harmony OS 3 开发者预览版正式发布,华为鸿蒙又是一个历史性的进步啊,而且,华为还表示,将发布鸿蒙编程语言!!!
    发表于 10-25 16:53

    华为编程语言「仓颉」火了,已开启内测,成员辟谣:不是中文编程

    备受关注的华为编程语言「仓颉」,又火上热搜了。这次是因为「仓颉」正式开启了内测,目前已经有部分开发者拿到源代码。​前不久,华为编程
    发表于 04-02 14:43

    STM8的C语言编程说明

    STM8的C语言编程说明STM8的C语言编程说明STM8的C语言编程说明STM8的C
    发表于 12-10 16:19 36次下载

    C语言入门经典-C语言编程

    C语言入门经典-C语言编程,感兴趣的可以看看哦。
    发表于 08-16 18:54 111次下载

    为什么C语言是最适合单片机编程的高级语言

    单片机为什么还在用C语言编程?答案是:C语言是最适合单片机编程的高级语言
    的头像 发表于 02-03 16:09 4912次阅读

    Verilog是编程语言

    知乎上刷到一个问题,问性能最强的编程语言是什么?看到高赞回答到是Verilog,然后在评论区就引发了一场Verilog到底算不算编程语言的争论,我觉得比较有意思,所以就也打算唠唠这个事
    的头像 发表于 08-23 14:30 5655次阅读

    单片机编程用什么语言?

    单片机编程一般都使用C语言或汇编语言来进行程序编写。汇编语言相比C语言来说相对难一点,新手可从C语言
    发表于 09-21 15:51 1.4w次阅读

    嵌入式开发语言-C语言编程

    C语言编程概述环境在Windows上构建C语言的环境安装在Mac上构建C语言的环境安装概述“C语言”被称为适合嵌入式系统开发的
    发表于 10-20 09:59 17次下载
    嵌入式开发<b class='flag-5'>语言</b>-C<b class='flag-5'>语言</b><b class='flag-5'>编程</b>

    单片机c语言+编程c语言_C编程语言简介

    单片机c语言+编程c语言In this tutorial you will get basic introduction to C programming language. 在本教程中,您将获得
    发表于 11-29 10:21 38次下载
    单片机c<b class='flag-5'>语言</b>+<b class='flag-5'>编程</b>c<b class='flag-5'>语言</b>_C<b class='flag-5'>编程</b><b class='flag-5'>语言</b>简介

    以Python编程语言为例介绍编程语言

    编程语言是研发人员与计算机交流的工具,计算机中的程序和软件均通过编程语言编写。
    的头像 发表于 02-09 10:11 992次阅读

    PLC编程语言的国际标准 和C语言的区别

      PLC编程语言是工业控制领域内用于编写PLC程序的语言,旨在实现对工业设备和生产流程的自动化控制和监测。PLC编程语言包含多种
    发表于 03-17 17:13 4272次阅读

    基于PASCAL的高级编程语言——SCL编程语言

    根据该标准,可对用于可编程逻辑控制器的编程语言进行标准化。SCL 编程语言实现了该标准中定义的 ST
    发表于 06-20 10:20 1066次阅读
    基于PASCAL的高级<b class='flag-5'>编程</b><b class='flag-5'>语言</b>——SCL<b class='flag-5'>编程</b><b class='flag-5'>语言</b>

    PLC编程语言的特点

    PLC的编程语言与一般计算机语言相比,具有明显的特点,它既不同于高级语言,也不同与一般的汇编语言,它既要满足易于编写,又要满足易于调试的要求
    的头像 发表于 07-04 17:13 587次阅读

    脚本语言编程语言的区别

    脚本语言编程语言是计算机语言的两个主要分类。尽管两者都是用于编写计算机程序的工具,但它们在设计和运行方式上存在一些显著的区别。下面将详细探讨脚本
    的头像 发表于 11-22 14:33 1387次阅读

    plc编程语言与c语言的联系 c语言和PLC有什么区别

    PLC编程语言与C语言的联系 PLC(可编程逻辑控制器)是一种针对自动化控制系统的特殊计算机。PLC编程
    的头像 发表于 02-05 14:21 1043次阅读