search
HomeTechnology peripheralsIt IndustryAfter 5 years of research and development, Huawei's next-generation programming language 'Cangjie” has officially launched its preview
After 5 years of research and development, Huawei's next-generation programming language 'Cangjie” has officially launched its previewJun 22, 2024 am 09:54 AM
programming languageHDC 2024Cangjie programming languageHuawei programming

According to news from this site on June 21, at the HDC 2024 Huawei Developer Conference this afternoon, Gong Ti, President of Huawei Terminal BG Software Department, officially announced Huawei’s self-developed Cangjie programming language and released a developer preview of HarmonyOS NEXT Cangjie language. Version. This is the first time Huawei has publicly released the Cangjie programming language.

历经 5 年研发沉淀,华为下一代编程语言“仓颉”正式开启预览

Gong Ti said: "In 2019, the Cangjie programming language project was born at Huawei. After 5 years of research and development and a lot of R&D investment, it finally meets global developers today. Cangjie programming language adopts modern language features Integration, comprehensive compilation optimization and runtime implementation, and out-of-the-box IDE tool chain support create a friendly development experience and excellent program performance for developers.”

According to reports, Cangjie programming language is a universal programming language. A new generation of scenario-intelligent programming language that focuses on "native intelligence, natural all-scenario, high performance, and strong security." Integrate into the Hongmeng ecosystem to provide developers with a good programming experience.

Native intelligence

Embedded AgentDSL programming framework, organic integration of natural language & programming language; multi-Agent collaboration, simplified symbolic expression, free combination of patterns, supporting the development of various intelligent applications.

历经 5 年研发沉淀,华为下一代编程语言“仓颉”正式开启预览
Born with full scenarios

Lightweight and scalable runtime, modular layered design, no matter how small the memory is, it can be installed; full-scenario domain expansion, meta-programming and eDSL technology, supports domain-oriented declarative style development.

历经 5 年研发沉淀,华为下一代编程语言“仓颉”正式开启预览
High performance

The first fully concurrent GC for terminal scenarios, the application thread is smoother and the response is faster. Lightweight threads, better concurrency performance and less overhead.

历经 5 年研发沉淀,华为下一代编程语言“仓颉”正式开启预览
Strong Security

Security DNA is integrated into the language design to help developers focus on business logic and avoid investing too much energy in defensive programming. Coding is safe, and vulnerabilities are nowhere to be hidden.

历经 5 年研发沉淀,华为下一代编程语言“仓颉”正式开启预览
Cangjie programming language is a modern programming language for all-scenario application development. Its specific features are:

Efficient programming:

Cangjie is a multi-paradigm programming language that supports functional programming , imperative and object-oriented paradigms, including features such as value types, classes and interfaces, generics, algebraic data types, pattern matching, and higher-order functions.

In addition, Cangjie also supports type inference, which can reduce the burden of type annotation on developers; various syntax sugar and macro capabilities built into the language support developers to quickly develop domain-specific languages ​​(DSL) and build domain abstractions based on Cangjie .

Safe and reliable:

As a modern programming language, Cangjie pursues coding as safety, and ensures the type safety and null safety of the program through static type system and automatic memory management. At the same time, Cangjie also provides various runtime checks, Including array subscript out-of-bounds check, type conversion check, numerical calculation overflow check, and string encoding legality check, etc., which can promptly detect errors in program operation; in addition, code scanning tools, obfuscation tools, and sterilizers are also used to further provide Support for cross-language interoperability security and code asset protection.

Easy concurrency:

Cangjie language implements lightweight user-space threads and concurrent object libraries, using the user-space thread model. Each Cangjie thread is an extremely lightweight execution entity, with an independent execution context but shared memory. For developers, the use of user-mode threads is consistent with the use of traditional system threads and does not bring additional burdens; from a running-state perspective, thread management is completed by the runtime and does not rely on the thread management of the operating system. , so thread creation, scheduling, and destruction operations are more efficient and occupy less resources than system threads.

In order to avoid data competition, Cangjie language provides a concurrent object library. The methods of concurrent objects are thread-safe, so calling these methods in multi-threads is no different from serial programming. Developers of application logic do not need to worry about concurrency management. For some core libraries, Cangjie also provides lock-free or fine-grained lock algorithm implementations, which can further reduce thread blocking and improve concurrency.

Excellent performance:

The Cangjie compiler and runtime optimize compilation from the full stack, including the compiler front-end based on CHIR (Cangjie HighLevel IR) high-level compilation optimization (such as semantic-aware loop optimization, semantic-aware back-end collaborative optimization, etc. ), back-end-based compilation optimization (such as SLP vectorization, Intrinsic optimization, InlineCache, inter-procedural pointer optimization, Barrier optimization, etc.), runtime-based optimization (such as lightweight locks, distributed marking, concurrent tracing optimization, etc.).

In addition, Cangjie language has a native lightweight design for the runtime. Through the modular and hierarchical design of the runtime, it defines the Cangjie public object model and the common basic components of the runtime. Based on the public object model, it implements runtime memory management and recall. Basic capabilities such as stack, exception handling, and cross-language calling significantly reduce redundant object design among multiple capabilities and streamline runtime volume. At the same time, through the on-demand loading technology of packages, the memory overhead of redundant packages started by Cangjie applications is reduced. Therefore, for resource-sensitive devices, it takes up less resources and is more friendly to support.

In addition, Cangjie also supports a series of tool chains for application development, including language services (highlighting, association), debugging (cross-language debugging, thread-level visual debugging), static inspection, performance analysis, and package management , document generation, Mock tools, testing frameworks, coverage tools, Fuzz tools and intelligent auxiliary programming tools.

历经 5 年研发沉淀,华为下一代编程语言“仓颉”正式开启预览

Huawei HarmonyOS NEXT Cangjie Language Developer Preview Beta is now officially open for recruitment. Interested friends of this site can sign up to experience it:

https://developer.huawei.com/consumer/cn /activityDetail/cangjie-beta/

Huawei HDC 2024 Developer Conference Special Topic

The above is the detailed content of After 5 years of research and development, Huawei's next-generation programming language 'Cangjie” has officially launched its preview. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
如何知道 Windows 上是否安装了 PHP?如何知道 Windows 上是否安装了 PHP?May 01, 2023 pm 09:31 PM

如何在Windows10或11上检查PHP版本在学习本教程之前,请确保已在您的Windows系统上正确配置PHP。除此之外,您还需要一个命令提示符或终端访问权限。使用命令提示符或Powershell检查PHP版本识别已安装的PHP版本的最好和最简单的方法是使用其命令行工具。但是,要使用,用户必须有权访问Windows命令行应用程序,如CMD。转到Windows10或11搜索框并键入CMD或Powershell。您可以使用其中任何一个。当图标出现在这些

Web 开发 FastAPI、Flask 和 Streamlit 的比较Web 开发 FastAPI、Flask 和 Streamlit 的比较Apr 09, 2023 am 11:51 AM

Python 已成为最流行的 Web 开发编程语言之一,这要归功于它的简单性、多功能性以及大量的库和框架集合。在使用 Python 构建 Web 应用程序时,开发人员有多种选择,从 Django 和 Pyramid 等全栈框架到 Flask 和 FastAPI 等轻量级微框架,再到用于数据科学应用程序的 Streamlit 等专用工具。在本文中,我们将比较三种最流行的 Python Web 框架——FastAPI、Flask 和 Streamlit——以帮助您为项目选择合适的工具。我们将探讨每个

基于Taichi的Python高性能计算入门指南基于Taichi的Python高性能计算入门指南Apr 12, 2023 am 08:46 AM

自从Python编程语言诞生以来,它的核心理念一直是最大限度地提高代码的可读性和简单性。Python对可读性和简单性的追求简直达到了如痴如狂的境地。一个事实即可证实这一点:只要你在Python系统的根目录中输入命令“import this”后按下回车键,竟然马上打印出一首英文小诗,翻译成中文大致意思是:“美丽胜过丑陋,显式优于隐式。简单比复杂好,复杂比繁杂好。扁平优于嵌套,稀疏胜过密集。可读性很重要……”简单总比复杂好,可读性很重要。毫无疑问,Python确实在实现这些目标方面非常成功:它是迄今

如何在 Windows 10 上使用命令提示符安装 PHP如何在 Windows 10 上使用命令提示符安装 PHPMay 08, 2023 pm 05:13 PM

使用命令提示符或PowerShell在Windows上安装PHP安装ChocolateyChoco包管理器我尝试了Windows默认包管理器Winget,但无法通过它安装PHP。因此,剩下的另一个最佳选择是使用流行的Chocolatey包管理器。但与Winget不同的是,Choco默认情况下不存在于我们的Windows系统中,因此我们需要在我们的系统上手动安装它。转到您的Windows10或11搜索框并键入CMD,出现时选择“以管理员身份运行”将给定的命令复制

html和css算编程语言吗html和css算编程语言吗Sep 21, 2022 pm 04:09 PM

不算。html是一种用来告知浏览器如何组织页面的标记语言,而CSS是一种用来表现HTML或XML等文件样式的样式设计语言;html和css不具备很强的逻辑性和流程控制功能,缺乏灵活性,且html和css不能按照人类的设计对一件工作进行重复的循环,直至得到让人类满意的答案。

在 Windows 11 或 10 上安装最新 Python 的 2 种方法——GUI 和 CMD在 Windows 11 或 10 上安装最新 Python 的 2 种方法——GUI 和 CMDApr 13, 2023 pm 11:31 PM

在 Windows 10 或 11 上安装 Python 3在这里,我们讨论两种设置 Python 的方法,一种是使用图形安装向导,另一种是借助提示符或 Powershell(终端)中的命令。使用图形用户界面:1.下载Python最新版本众所周知,默认情况下,Windows 中不包含 Python 来编译我们基于它的程序。因此,请访问官方网站python.org ,通过单击“下

Python Web3 开发:用 Brownie 部署智能合约Python Web3 开发:用 Brownie 部署智能合约May 19, 2023 pm 05:34 PM

Python是最通用的编程语言之一:从研究人员运行他们的测试模型到开发人员在繁重的生产环境中使用它,几乎在每个可能的技术领域都有使用案例。在今天的指南中,我们将了解Brownie,一个基于Python的工具,用于编写和部署智能合约。准备安装Python3以太坊节点文本编辑器终端什么是Brownie?智能合约开发主要由基于JavaScript的库主导,如web3.js、ethers.js、Truffle和Hardhat。Python是一种通用的、高度使用的语言,也可用于智能合约/web3的开

30 个数据工程必备的Python 包30 个数据工程必备的Python 包Apr 12, 2023 pm 04:58 PM

Python 可以说是最容易入门的编程语言,在numpy,scipy等基础包的帮助下,对于数据的处理和机器学习来说Python可以说是目前最好的语言,在各位大佬和热心贡献者的帮助下Python拥有一个庞大的社区支持技术发展,开发两个各种 Python 包来帮助数据人员的工作。在本文中,将介绍一些非常独特的并且好用的 Python 包,它们可以在许多方面帮助你构建数据的工作流。1、KnockknockKnockknock是一个简单的Python包,它会在机器学习模型训练结束或崩溃时通知您。我们可以

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),