CH / ˌ s iː ˈ 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 и функции массивов переменной длины поддерживались в CH до того, как они стали частью стандарта C99. [5] [6] [7] [8] В статье, опубликованной Computer Reseller News ( CRN ), CH названа примечательной среди виртуальных машин на основе C за ее функциональность и доступность сторонних библиотек. [9]
CH имеет множество наборов инструментов, которые расширяют его функции. Например, CH Mechanism Toolkit используется для проектирования и анализа часто используемых механизмов, таких как четырехзвенный шарнир , пятизвенный шарнир , шестизвенный шарнир , кривошипно-ползунный механизм и система кулачкового толкателя. [10] CH Control System Toolkit используется для проектирования, анализа и моделирования непрерывных или дискретных линейных систем управления с инвариантностью во времени (LTI). [11] Оба набора инструментов включают исходный код .
CH был интегрирован в бесплатную C-STEM Studio, платформу для изучения вычислительной техники, науки, технологий, инженерии и математики (C-STEM) с робототехникой. C-STEM Studio разработана Центром интегрированной вычислительной техники и STEM-образования Калифорнийского университета в Дэвисе, предлагая учебную программу для учащихся K-12.
CH поддерживает LEGO Mindstorms NXT и EV3 , Arduino , Linkbot, Finch Robot, RoboTalk и Raspberry Pi, Pi Zero и ARM для программирования и обучения роботов. [12] [13] [14] Его также можно встроить в платформу проектирования систем LabVIEW и среду разработки. [15]
CH поддерживает стандарт ISO C 1999 (C99) и классы C++. Это надмножество C с классами C++. Поддерживаются несколько основных функций C99, такие как комплексные числа, массивы переменной длины (VLA), арифметика с плавающей точкой IEEE-754 и общие математические функции. Спецификация для широких символов в Приложении 1 для C90 также поддерживается.
Возможности C++, доступные в CH, включают:
CH поддерживает классы на языке C++ с дополнительными возможностями, включая:
CH может взаимодействовать с существующими библиотеками C/C++ и вызывать функции C/C++ из скрипта CH. [16] Как интерпретатор C/C++, CH может использоваться как скриптовый движок и язык расширений для приложений. Указатели на массивы или переменные могут передаваться и совместно использоваться как в C-скомпилированных, так и в контекстах скриптов CH. Одним из примеров встроенного приложения скриптов CH является Mobile-C, который использовался для совместной визуализации распределенной сетчатой модели. [17] [18] [19]
CH имеет встроенный строковый тип (string_t) для автоматического выделения и освобождения памяти. Он поддерживает псевдонимы оболочки, историю и конвейеризацию. [20] [21]
CH имеет встроенные функции 2D/3D графического построения и вычислительные массивы для численных вычислений. Двумерное линейное уравнение вида b = A*x может быть записано дословно в Ch. [22]
{{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь )