Bosque:ループのないMicrosoftの新しいプログラミング言語
- Bosque言語は、ソフトウェアの品質を向上させ、プログラマーの生産性を向上させることを目的としています。
- 可変状態、参照の同等性、ループなどの複雑さの原因を取り除きます。
- TypeScriptおよびJavaScriptプログラミング言語に触発されています。
構造化プログラミングと抽象データ型は1970年代に普及し、それ以来、ほぼすべてのプログラミング言語で使用されています。これらの方法論により、プログラマーはハードウェアアーキテクチャを気にすることなく、コードの意図とコアの動作に集中することができました。すぐに、これはコンパイラと統合開発環境の黄金時代につながりました。
生産性をさらに高め、ソフトウェア品質を向上させ、いくつかの新しいコンパイラと開発者ツールのエクスペリエンスを可能にするために、Microsoftのエンジニアは最近Bosqueという名前の新しいプログラミング言語を考案しました。
Bosqueは、マシンと人間の両方のために、シンプルでわかりやすいコードを作成するように設計されています。コーディングおよび開発プロセスにおける「偶発的な複雑さ」を回避するためのいくつかの方法を提供します。
正則化されたプログラミング
構造化プログラミングモデルのフロー制御は、条件、サブルーチン、およびループによって管理されます。一方、新しいプログラミング言語は、可変状態、参照の同等性、ループなどの複雑さの原因を取り除きます。そのため、開発者はこのパラダイムを「正規化されたプログラミング」と表現しています。
Bosqueは、TypeScriptに触発された構文とtype plus ML、およびJavaScript / Nodeに触発されたセマンティクスの組み合わせから派生しています。プログラマーがさまざまな名目、構造、および組み合わせの型を使用して、問題領域の関連する機能を柔軟にエンコードできるようにする、意見のない型システムをサポートします。
参照:Microsoft |構造化プログラミングを超えて
この言語は「while」、「do while」、「for」ループを使用せず、条件の適用に関してはまったく異なるアプローチを採用しています。 Microsoftのコンピュータ科学者であるMarkMarronは、ソフトウェアの品質を向上させながら構造化されたループを置き換える「ファンクター」の概念を導入しました。
シンボリックトランスフォーマーを備えたファンクター
Bosqueは、特殊なバルク代数データ操作と none の統合サポートを提供します (またはオプションのデータ)処理。また、コレクション処理のパイプラインをサポートし、 if および一致 式として。
Bosqueには豊富な式プリミティブのセットがあるため、ステートメントコンビネータの大規模なセットの必要性は少なくなります。この言語は assert を提供します (デバッグビルドでのみ有効)およびチェック (すべてのビルドで有効)ポスト/プレコンディションおよびクラスインバリアントに加えて、ファーストクラスの機能として。また、Bosqueにはループ構造はありません。
Bosqueは、アーキテクチャがマイクロサービス、サーバーレス機能、RESTfulAPIに依存するクラウドベースの開発プロジェクトで非常に役立つ可能性があります。パフォーマンスの変動を最小限に抑えながら、迅速な起動、超低オーバーヘッドトレース、およびランタイムのためのゼロコストのロードを可能にする可能性があります。
次は何ですか?
この新しい言語はまだ開発段階にあり、テストしたい場合は、コードをGitHubで入手できます。
初期の実験では、API自動マーシャリング、ファジングの改善、シンボリックテスト、安定したGCサポートによるリアルタイムコンパイルなど、いくつかの次世代エクスペリエンスを強化できることが示されています。
読む:セーフティクリティカルプログラムを作成するためのNASAの10のコーディングルール
Bosqueは改訂される可能性があり、いくつかのバグや機能の欠如があり、パフォーマンスは依然として大幅に改善される可能性があります。マロンと彼のチームは、時間の経過に伴うメモリ使用量の境界を自動的に設定したり、追加の作業なしでランタイムエラーがないことをアプリに検証したりするなど、より高度な開発者向けツールのエクスペリエンスに焦点を当てます。
産業技術