DUICUO

Deepinのオープンソース、自社開発プログラミング言語:Unilang

deepin は、自社開発した新しい汎用プログラミング言語 Unilang を発表しました。ドキュメントとインタープリタは、リポジトリ内のリファレンス実装として提供されています。

Deepin 氏は、デスクトップ アプリケーション開発には Qt、Electron、PySide、Flutter など多くのオプションがあるものの、それぞれに長所と短所があると述べています。

Unilangは、デスクトップアプリケーションを効果的かつ柔軟に開発し、既存の欠点を克服する新しいソリューションの言語コンポーネントとして機能できる、最新の汎用プログラミング言語を目指しています。汎用性を維持するため、Unilangは組み込みのGUI機能を提供しず、代わりにライブラリを通じて関連APIを提供しています。現在の計画では、既存のデスクトップアプリケーションプロジェクトの移行を容易にするために、Qtベースのライブラリをサポートすることが含まれています。Unilangの言語設計は十分な抽象化と拡張性を維持しており、将来的にはGUIフレームワークの直接実装もサポートする予定です。

さらに、Unilangは言語機能レベルで様々なアプリケーション開発シナリオに対応できるよう設計されていますが、原則としてこれらのシナリオに対して中立的な設計となっています。つまり、Unilangはサーバーサイドとクライアントサイドの両方のアプリケーション開発を同時にサポートすることができ、ユーザーの意識改革や言語使用習慣の大幅な変更を必要としません。

以下の内容は公式紹介より引用したものです。

表現力: Unilangはチューリング完全な汎用コンピューティング言語です。Unilangの革新的な言語機能は、強力でありながら使いやすい抽象化の構築に役立ちます。

再利用性: Unilang はファーストクラス オブジェクトに重点を置いているため、言語のユーザーが同意すれば、ほぼすべてのソース コード コンポーネントがこれまで以上に再利用可能になります。

スケーラブル: Unilang の基本言語と言語拡張機能の基礎となる設計により、開発者は言語設計者や実装者からのコミュニケーションやフィードバックを待つことなく、互換性を維持しながら既存の言語の設計と実装をこれまでにない方法でスムーズに改善することができます。

スケーラビリティ: Unilang のリソース管理モデルと抽象化機能により、さまざまなコンピューティング リソースを備えたプラットフォーム上でプログラムがデフォルトで一貫して動作し、簡単に調整できるようになります。

マルチパラダイム: Unilangの言語機能は、ユーザーが特定の実用的なパラダイムに固執する必要はありません。例えば、副作用を純粋関数型スタイルに制限したり、オブジェクト指向でプログラムを表現するために暗黙的なオブジェクトを必要としたりすることはありません。柔軟な抽象化により、ユーザーは異なるドメインの設計ソリューションに応じて、異なる実装スタイルを使用できます。

使いやすさ: Unilangのコア言語機能は最小限に抑えられており、学習が非常に容易です。拡張可能な機能と強力な抽象化メカニズムにより、豊富な高度なコンテンツに対応し、開発者は必要に応じて選択できます。綿密に設計された基盤により、様々なコンテンツを習得する際のエラー発生率が低く、使いやすくなります。

焦点: Unilang は、使いこなすためにすべての機能を習得する必要のある言語ではありません。問題が言語の変更を必要としない場合、ユーザーは言語自体の外部の問題解決にもっと集中できるはずです。

Unilangの主な機能

  • コア言語機能
  • エンティティのプロパティ
  • ストレージとオブジェクト モデル (C++ に類似)
  • オブジェクトと値クラス(C++と同様)
  • 第一級関数: コンバイナ
  • ファーストクラスの環境: 環境リファレンス
  • 一流の参考資料:参考値
  • 評価アルゴリズム
  • 変数分析
  • 関数呼び出し
  • ランタイムサポート
  • 動的型チェック
  • 動的ロードと実行
  • GCに依存しない
  • 安全でない操作
  • PTC(適切な末尾呼び出し)
  • 相互運用性
  • C++フレンドリーなオブジェクトモデル
  • C++からUnilangコードを呼び出す
  • FFI: C や C++ などのネイティブ言語で実装されたモジュール。
  • ...
  • ライブラリ機能
  • コアライブラリ
  • 変数バインディング
  • ブロックスコープ
  • リストアルゴリズム
  • モジュール機構
  • ...
  • 数値算術演算
  • 入力/出力
  • 型システムの強化
  • 型注釈
  • 静的型チェック
  • FFI API
  • Qtバインディング
  • ...

Hello Worldの例

最初のプログラム:

 「Hello, world!」を表示します。 

出力:

こんにちは世界!

この記事はOSCHINAから転載したものです。

記事タイトル: Deepinオープンソース自社開発プログラミング言語: Unilang

この記事のアドレス:https://www.oschina.net/news/210746/deepin-unilang