CH / ˌ siː ˈ eɪ tʃ /は、独自のクロスプラットフォームCおよびC++インタープリタおよびスクリプト言語環境です。これは、数学、コンピューティング、数値解析(数値的手法)、およびC/C++プログラミングを初心者が学ぶためのスクリプト言語として、ハリー・チェンによって設計されました。Chは現在、 SoftIntegration, Inc.によって開発および販売されています。無料版には、学生版と、 Raspberry Pi向けの非商用プロフェッショナル版があります。
CH は C および C++ アプリケーション プログラムに組み込むことができます。数値計算とグラフィック プロット機能を備えています。CH はシェルと IDEの両方を組み合わせたものです。[ 1 ] CH シェルは、一般的なシェルと C 言語の機能を組み合わせたものです。[ 2 ] ChIDE は、高速なコード ナビゲーションとシンボリック デバッグを提供します。組み込み CH、 Scite、およびScintillaに基づいています。[ 3 ] [ 4 ]
CH は C 言語で記述されており、Windows、Linux、macOS、FreeBSD、AIX、Solaris、QNX、および HP-UX 上で動作します。C90および主要なC99機能をサポートしていますが、 C ++のすべての機能をサポートしているわけではありません。C99 の複素数、IEEE 754浮動小数点演算、および可変長配列機能は、C99 標準の一部になる前から CH でサポートされていました。[ 5 ] [ 6 ] [ 7 ] [ 8 ] CH は、その機能性とサードパーティライブラリの利用可能性で、C ベースの仮想マシンの中で注目されていました。[ 9 ]
CH には、その機能を拡張する多くのツール キットがあります。たとえば、CH メカニズム ツールキットは、4 節リンク機構、5 節リンク機構、6 節リンク機構、クランクスライダ機構、カムフォロワー システムなどの一般的に使用される機構の設計と解析に使用されます。[ 10 ] CH 制御システム ツールキットは、連続時間または離散時間の線形時不変 (LTI) 制御システムの設計、解析、およびモデリングに使用されます。[ 11 ]どちらのツール キットにもソース コードが含まれています。
CHは、ロボット工学を取り入れたコンピューティング、科学、技術、工学、数学(C-STEM)学習プラットフォームである無料のC-STEM Studioに統合されました。C-STEM Studioは、カリフォルニア大学デービス校統合コンピューティング・STEM教育センターによって開発され、幼稚園から高校までの生徒向けのカリキュラムを提供しています。
CHは、ロボットのプログラミングと学習のために、 LEGO Mindstorms NXTおよびEV3、Arduino、Linkbot、Finch Robot、RoboTalk、Raspberry Pi、Pi Zero、およびARMをサポートしています。[ 12 ] [ 13 ] [ 14 ]また、 LabVIEWシステム設計プラットフォームおよび開発環境に組み込むこともできます。[ 15 ]
CHは、1999年ISO C規格(C99)およびC++クラスをサポートしています。C++クラスを含むCの上位互換です。複素数、可変長配列(VLA)、IEEE 754浮動小数点演算、汎用数学関数など、C99の主要な機能が多数サポートされています。また、C90の補遺1におけるワイド文字の仕様もサポートされています。
CHで利用可能なC++機能は以下のとおりです。
CHは、以下のような追加機能を備えたC++クラスをサポートしています。
CH は既存の C/C++ ライブラリと連携し、CH スクリプトから C/C++ 関数を呼び出すことができます。[ 16 ] C/C++ インタープリタとして、CH はアプリケーションのスクリプト エンジンおよび拡張言語として使用できます。配列または変数へのポインタは、C コンパイルされたコンテキストと CH スクリプト コンテキストの両方で渡され、共有されます。組み込み CH スクリプト アプリケーションの 1 つは、分散メッシュ モデルの共同可視化に使用されている Mobile-C です。[ 17 ] [ 18 ] [ 19 ]
CH には、メモリの自動割り当てと解放のための組み込み文字列型(string_t) があります。シェルエイリアス、履歴、パイプ処理をサポートしています。 [ 20 ] [ 21 ]
CHには、2D/3Dグラフィカルプロット機能と数値計算用の計算配列が組み込まれています。b = A*xの形式の2D線形方程式は、 Chでそのまま記述できます。[ 22 ]
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ){{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ){{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ){{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ){{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ){{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ){{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)