LINUX.ORG.RU

Ch 5.0


0

0

Ch -- встраиваемый интерпретатор C/C++ общего назначения а также для систем с ограниченными ресурсами и систем реального времени. Отличительной особенностью Ch является простота низкоуровневого доступа к аппаратному обеспечению.

Интерпретатор снабжен богатой библиотекой функций обеспечивающей поддержку множества распространенных стандартов, расширениями для двух и трехмерной графики и вычислительных методов (решение дифференциальных уравнений, анализ Фурье, интерполяция кривых, итп.)

Версия Standard Edition для Windows, Linux, Mac OS X, Solaris, HP-UX, FreeBSD и QNX свободно доступна для коммерческого и некоммерческого использования.

>>> Подробности

★★★

Проверено: Shaman007 ()

очень интересно. будем пробовать..

// wbr

anonymous
()

а зачем это надо ? типа не наезд, правда не понимаю. чтобы на моём супер-пупер холодильнике я смог mplayer собрать ? так это на PC делать надо, и загонять в холодильник модифицированный firmware...

anonymous
()

Может я конечно чего-то недопонял, но зачем для C/C++ интерпретатор? Его же компилировать надо...

iv_ru
()
Ответ на: комментарий от anonymous

Кто-нибудь уже пользовался? Какие впечатления?
Удивляют цены на продукт
"Ch Professional Edition for Linux" = 399$,
и "активность" mail-listов :-(

Valeriy_Onuchin ★★
()

Все эти С/C++ интерпретаторы ИМХО - дурацкая затея

не лучше ли скрипты писать, на тех языках, которые изначально для этого предназначались ??

Похоже всё это нужно, для программеров, которые так и не выучились программированию в номарльном шеле или в том же перле :):)

anonymous
()

>>>Отличительной особенностью Ch является простота низкоуровневого доступа к аппаратному обеспечению.

А его что в ядро встроить можно? Иначе я не понимаю как можно получить простой низкоуровневый доступ к прерываниям или памяти устройств.

geekkoo
()

tcc - прекрасный "интерпретатор"

На самом деле в качестве "интерпретатора" для C можно использовать tcc.

Т.е. вы вполне можете написать что-то типа:

#!/usr/bin/tcc -run

#include <stdio.h>

int main(void) {
printf("Hello, world!\n");
return 0;
}

anonymous
()
Ответ на: комментарий от int19h

> Это лучше libtcc?

в качестве сверхбыстрого компилятора/интерпретатора может и не лучше,
но судя по описанию у Ch значительно больше применений. буду смотреть.

anonymous
()
Ответ на: комментарий от xlex

они пишут что можно получить гарантированное время исполнения скрипта. это важно для систем реального времени, и насколько я понимаю в python и tcl этого добиться нельзя.

anonymous
()
Ответ на: tcc - прекрасный "интерпретатор" от anonymous

Ну и как ты этот интерпретируемый код заембеддишь в откомпилированную программу на Цэ? Чтоб ещё они друг друга вызывать могли, как CINT в Root-е.

anonymous
()
Ответ на: комментарий от anonymous

Kак альтернативный вариант Ch надо брать CINT
http://root.cern.ch/root/Cint.html
который более продвинутый.
Более того, мы сейчас пишем порт/plugin к нему на основе
libBDF, что позволит "загружать библиотеки в интерпретатор"/"расширять интерпретатор"
без какого-либо preprocessing'га/компилирования.
На сколько мне известно, на сегодня, пока еще, нет такого интепретатора, который бы ето мог делать.

Valeriy_Onuchin ★★
()

а forth не проще?

anonymous
()
Ответ на: комментарий от anonymous

Веский аргумент (для определённых задач)... Спасибо за информацию.

xlex
()
Ответ на: комментарий от Valeriy_Onuchin

> что позволит "загружать библиотеки в интерпретатор"/"расширять интерпретатор". без какого-либо preprocessing'га/компилирования. На сколько мне известно, на сегодня, пока еще, нет такого интепретатора, который бы ето мог делать.

Может я тебя не совсем понял, но по-моему, это умеет практически любой скриптовый интерпретатор из ныне существующих. Перл, питон, руби...

int19h ★★★★
()
Ответ на: комментарий от int19h

Насколько я понял, ключевое условие - "без какого-либо preprocessing'га/компилирования". Другие интерпретаторы требуют оберток для либ.

geekkoo
()
Ответ на: комментарий от Valeriy_Onuchin

Валерий, имеется ввиду расширение без обёрток (FFI)? А где можно посмотреть на работу? Когда будет готово?

А какое у него применение?

xlex
()

Дежавю. Уж не его ли разработчикам я в списке рассылки отвечал?

Yampp
()
Ответ на: комментарий от anonymous

>они пишут что можно получить гарантированное время исполнения скрипта. это важно для систем реального времени, и насколько я понимаю в python и tcl этого добиться нельзя.

А не могли бы вы поделиться пониманием? И питоне и в тикле используется подсчет ссылок, т.е. гц не приделах, что еще?

anonymous
()
Ответ на: комментарий от Valeriy_Onuchin

а шо такое libBDF ? типа новый FFI ? или што-то совершенно отличное от ?

и еще - про сей Ch SWIG знает што-нть ? как его прикручивать то поавтоматичнее ?

anonymous
()
Ответ на: комментарий от anonymous

libbfd - это библиотека, на которой написаны всe
GNU binutils: nm, objdump ... более того, на ней написаны
ld, gdb, libtool
В двух словах, она позволяет добыть всю информацию
доступную GDB: function memory entry points, demangling,
global variables etc. Доступна на linux all flavors, bsds,
solaris, sgi etc.
В случае с C/C++ intepreter она позволяет загружать
внешнюю библиотеку без какого-либо "обертывания",
как это делает GDB и заполнять внутрениe inerpreter's
dicitonaries.
На самом деле, CINT это может делать уже сейчас для
C библиотек с помошью своего собственного ELF-parsera.
На пример, вот так можно загрузить mysqlclient

extern "/usr/lib/libmysqlclient.so" {
#pragma preprocessor on
#include "mysql/mysql.h"
#pragma preprocessor off
};

информацию про libbfd можно найти здесь:
http://www.linuxselfhelp.com/gnu/bfd/html_chapter/bfd_1.html



Valeriy_Onuchin ★★
()
Ответ на: комментарий от Valeriy_Onuchin

А какое применения этой штуки? Я вот подумал где я могу ее использовать так, что-бы было удодно. Понял, что - нигде. Для чего вы ее используете?

anonymous
()
Ответ на: комментарий от anonymous

Это очень удобно в программах в которых используются скрипты.
Например в играх очень удобно использовать. Взамен Lua.

NetImperia
()
Ответ на: комментарий от anonymous

>>> про сей Ch SWIG знает што-нть ? как его прикручивать то поавтоматичнее ?
Авторы CINT-а (а также Ch ) в несколько привелегированных условиях находятся. Поскольку С это портабельный ассемблер, то всей информации извлекаемой из elf-а им достаточно. Для более высокоуровневых интерпретаторов этого маловато. Т.е. от разработчика wrapper-a требуется какие-то дополнительные усилия (к примеру указывать размер возвращаемых массивов, какой из ссылочных параметров IN, а какой OUT). Поэтому со SWIG-ом автоматичности и не получается, а требуется дополнительные конфиги.
Кстати полуавтоматизированных wrapper генераторов сейчас очень много. Поскольку само gcc начиная с 3.1 всю необходимую информацию выдает просто по ходу компиляции. В качестве примера - gccxml который можно найти на http://public.kitware.com/Cable/HTML/Index.html. Похоже, что каждый разработчик C++ либы клепает свой собственный генератор ;)

geekkoo
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.