KPIのない国産プログラミング言語ですが、オープンソース化して3か月が経ち、どのような新たな発展があったのでしょうか?

f89560d07f6ff73b887dc1c06388d37d.gif

[CSDN 編集者注] 主要なプログラミング言語のランキングを見ると、国内のプログラミング言語を見つけるのはほとんど困難ですが、我が国の基本的なソフトウェアとハ​​ードウェアの努力と追いつきにより、特にオペレーティング システム、データベース、その他の技術的な技術の蓄積が見られます。 Go 言語愛好家のグループによって開始された concave 言語など、いくつかの国産プログラミング言語の誕生を徐々に見てきましたが、2018 年に作成され、今年 7 月に正式にオープンソース化されました。オープンソース化して 3 か月が経ち、何が行われましたか? 改善と強化はどうなりましたか?

編集者 | 孟宜丹

制作 | Au 言語技術チームによる公式寄稿

知らず知らずのうちに、凹型言語の公式オープンソースから 1 四半期が経過しました。これは、凹型言語のオープンソースの第 1 四半期の非公式の概要であり、将来の計画と展望でもあります。

fb00f00b6da99bedad40ccc4afd9e1d1.png

凹言語とは何ですか

凹型言語 (凹型の発音「wā」) は、中国の Gopher によって WASM プラットフォーム用に設計された一般的なプログラミング言語です。WASM のネイティブ プログラミング言語である concave 言語は、ブラウザ環境に自然に馴染み、Linux、macOS、Windows などの主流のオペレーティング システムをサポートし、さらに、LLVM バックエンドを通じてローカル アプリケーションとマイクロコントローラー環境のサポートを提供します。

  • 公式サイト:https://wa-lang.org/

  • ウェアハウス: https://github.com/wa-lang/wa/

  • プレイ:https://wa-lang.org/playground/

以下は凹型言語のロゴです。

aabea84055a2632a9013c31324e54655.png

形状的には「Concave」という文字がWASMのアイコンに見えますが(箱の上部に穴がありません)、発音的には「Concave」がまさにWASMの前半です。 ; 構造の観点から見ると、実線の「凹」文字は文字「C」を反時計回りに 90 度回転したものとほぼ同じです - C は C 言語またはコーダーとして理解でき、「凹」は平らな C を意味することもあります/フラットなコーダー...

b3244e1900ed2ee1dc719b99fdd64a47.png

スポンサー

プロジェクトの発起人であるチャイ・シュシャン、ディン・アーナン、シー・ビンは中国のシニアゴーファーです。そのうちの Chai Shushan は、『Advanced Programming in Go Language』などの Go ベストセラー本の著者であり、現在は Ant で KusionStack と KCL 言語の設計と開発に従事しています。Ding Ernan は、「WebAssembly Standards 入門」などのいくつかの WASM モノグラフの著者です。彼は長年 3D 開発に従事しており、パフォーマンスの最適化に熱心に取り組んでいます。現在、Aerospace Vision Technology で 3D 関連の製品開発を担当しています。株式会社。Shi Bin はコンパイラ分野の専門家です。彼は Go コンパイラに 127 の最適化パッチを提出しました。彼は長い間、Go のグローバル コントリビュータのトップ 50 に入っています。また、Go の公式 Git リポジトリへの提出権限も持っています。彼は、「Go Language」の著者でもあり、書籍「カスタマイズ ガイド」の著者でもあります。

開発の実践において、さまざまな理由から新しい言語を開発するというアイデアが浮かびましたが、Go 言語の抑制されたスタイルがプログラミング言語の美しさの最大公約数であるため、最初の青写真としてそれを選択しました。言うまでもなく、このプロジェクトが開始されたとき、それは Go の設計アイデアと具体的な実装に大きく依存していました - これは限られた投資で作られなければならなかった妥協でした。プロジェクトが発展するにつれて、より多くのオリジナルの設計を蓄積し、独立したイノベーションの基盤となるのですが、潮流も少しは影響しています。

60ea1c0a20d25d0ee2c764bcd268d153.png

Concave Language の設計思想と開発計画

concave 言語の全体的な設計は、「開発者に優しい」を中心に行われています。基本型としての文字列/スライス、手動でメモリを管理する必要がない (そしてできない)、より視覚的に目立つ変数型定義などはすべて、この中心的なアイデアの具体化です。

2022 年 7 月、Ao Language は正式にオープンソース化され、半年ごとのロードマップが発表されました。

a23265fbd049df8692eb967befa8cebc.png

プロジェクトの宣伝により、より多くの学生が凹型言語開発グループに参加し、ディスカッション グループ コミュニティが徐々に形成され、活発に活動を続けています。開発チームの学生たちの協力のおかげで、第 1 四半期の目標はすべて達成されました。

a93a5b9f4b3c0f334d24a9b2d946303a.png

どのような進歩があったのか

まず、多くの議論を経て、開発チームは Ao ​​Language に AGPLv3 オープンソース契約を採用することを慎重に決定し、対応する Ao Language 貢献契約を策定しました。現在、一部の外部学生が新しいプロセスを通じてコードを提供しています。さらに、次のような重要な進歩が見られました。

ウェブサイトの第 3 バージョンをリリース

2018 年以来、Web サイトは 3 回の大幅な更新を行ってきました。当初、ウェブサイトの最初のバージョンには静的ページが 1 つだけありました (2018 年)。2 番目のバージョンは、最初の開設時 (2022 年 7 月) に MDBook に基づいて構築され、最新バージョンは 2022 年 9 月から 10 月末までに開発されました。 。

4c0ac1f90c1b54f0439790f11a330b6f.png

このバージョンの Web サイトは、Ao 言語 VSCode プラグインと Playground の責任者でもある、サブプロジェクト リーダーの Hu Mengming によって開発されました。

純粋なブラウザ環境のPlaygroundを公開する

Playground は、凹型ソース コードをオンラインでコンパイルおよび実行するための環境です。この環境のコンパイルと実行はバックエンド サービスを呼び出さず、完全にページ上で実行されるため、concave 言語を体験してテストするための非常に便利な入り口となります。

cdf1c76c3be1cb899aace1620949d012.png

プレイグラウンドのアドレス: https://wa-lang.org/playground/

VSCode/Fleet/Vim などのハイライト プラグインを作成する

VSCode プラグインは、構文の強調表示、コード スニペットの補完、補完の提案などの機能を提供し、純粋な Web 環境でのインストールをサポートします。

4e31db0122b2937b1c5497cc6e472888.png

9 月に JetBrains Fleet がプレビュー バージョンをリリースすると、Ao Language はすぐにハイライト プラグインを開発しました。

7c1835500fd1ff78ec92b78634be5da2.png

もちろん、従来の Vim プラグインも不可欠です。

1633036fbdd11b37a261a243459aac56.png

コミュニティの学生がより多くのプラグインや機能の改善の共同構築に参加してくれることを願っています。

WASM バックエンド プロトタイプが予定通りリリースされました

WASM バックエンド プロトタイプは予定通りリリースされ、数値/文字列の基本型、構造体、メソッド、配列、スライスなどの共通機能をすでにサポートしており、プロジェクト チームはこれをベースに Snake などのインタラクティブ機能を備えた小規模な Web ゲームの開発を開始しました。

以下の方法でテストできます。

`go install github.com/wa-lang/wa@latest`
 `wa init -name=_examples/hi`
 `wa run _examples/hi`

または、次のコードを含む `hello.wa` ファイルを作成します。

fn main {
  println("你好,凹语言!")
  println(add(40, 2))
}


fn add(a: i32, b: i32) => i32 {
  return a+b
}

実行して結果を出力します。

$ go run main.go hello.wa 
你好,凹语言!
42

プログラムはデフォルトで WAT バックエンドに基づいてコンパイルおよび実行されます。上記の出力が表示されるということは、すべてが正常であることを意味します。

埋め込み Go プログラム スクリプトとして

concave 言語を Go 言語パッケージとしてインポートし、スクリプトとして実行することもできます。

package main


import (
  "fmt"
  "github.com/wa-lang/wa/api"
)


func main() {
  output, err := api.RunCode("hello.wa", "fn main() { println(40+2) }")
  fmt.Print(string(output), err)
}

LLVM バックエンドが早期に開始される

LLVM バックエンドは、当初 2023 年の春節後にリリースされる予定でしたが、予定より前倒しでリリースされました。LLVM バックエンドの主戦場はローカル環境と組み込み環境であり、凹型プログラムを LLVM-IR に変換すると次のような効果が得られます。

287a88128ef7fd5bdbe7d1f36535acef.png

素数の例の実装は現在サポートされています。

15c50b4d25c91703bf2ca97c386f76c2.jpeg

ロードマップを更新する

d2fd0cf8d7d09f9fda6bfa3911c3f954.png

05b11e3584c6bcd0b7cb325859e8d328.png

展望

現時点では、concave language は愛好家が共同で構築した趣味のプロジェクトであり、KPI は設定されていません。新しい言語を真に実用的なものにするために必要な作業量は非常に膨大であり、より多くの関心のある学生が共同構築に参加し、特にサブプロジェクトリーダーの責任を負うことを心から願っています。

通常の貢献者と比較して、サブプロジェクトのリーダーは意思決定に直接参加し、プロジェクト開発において無制限に発言する権利を得ることができます。まだ初期段階にあるため、個別のサブプロジェクトになり得るモジュールがいたるところにあります: 一連のヒープ管理関数、wat からバイナリ wasm へのパッケージ、他の言語と対話するためのインターフェイス...

早くから有名になる必要があり、早くからオープンソースに参加する必要があります。共同構築への参加は大歓迎です。

— 推奨読書 —

☞中国联通与腾讯共同设立新公司;苹果被曝已冻结招聘,直至2023年9月;Apache Flink 1.16发布|极客头条
☞元宇宙与AI热度不减,Gartner 2023 年十大战略技术趋势完整解析
☞吴峰光杀进 Linux 内核

4353e315ac6242d9e15aff6d9e24cf13.jpeg

おすすめ

転載: blog.csdn.net/CrisAppleYan/article/details/127681359