トップページ⇒tech
90コメント24KB

C/C++インタプリタ CINT

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2005/04/25(月) 11:58:54
CERNのROOTプロジェクトでも採用されているC/C++インタプリタ CINTについて語るスレです。

http://root.cern.ch/root/Cint.html
0002デフォルトの名無しさん2005/04/25(月) 13:10:10
2get
0003デフォルトの名無しさん2005/04/25(月) 13:14:33
今だ!2ゲットォォォォ!!
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ∩ ∩
   〜| ∪ |         (´´
   ヘノ  ノ       (´⌒(´
  ((つ ノ⊃≡≡≡(´⌒;;;≡≡≡
   ̄ ̄ ̄(´⌒(´⌒;;
   ズズズズズ
0004デフォルトの名無しさん2005/04/25(月) 18:07:36
test
0005デフォルトの名無しさん2005/04/25(月) 20:50:43
C のみで良いならこっちの方が便利かな
x86 でしか動かないけど

http://fabrice.bellard.free.fr/tcc/
http://b2c-1.rocketbeach.com/~bitwalk/tcc.html

- C のライブラリにそのままリンク可能
- スクリプト的に実行可能(shbang で起動出来る)
- ネイティブコンパイルするので処理速度が速い
- x86 platform の Win/Unix/Linux で動作
- 実行バイナリが小さい
- コンパイルも簡単
0006デフォルトの名無しさん2005/04/29(金) 15:30:59
めじろ++ってどうなったんだろう?
0007デフォルトの名無しさん2005/04/30(土) 21:12:15
おぉ!CINT使ってますよ!
ついにスレが立ったか。でも特に振るネタ無いな…。
0008デフォルトの名無しさん2005/05/10(火) 17:53:39
「C/C++インタプリタ CINT」でぐぐったらこんなのが出てきた。
ttp://www.vector.co.jp/soft/win95/business/se329573.html
0009デフォルトの名無しさん2005/05/21(土) 00:17:04
CINTがメンバが参照の場合でも使えるようになればかなり使い道は広がるんだけどな.
0010デフォルトの名無しさん2005/06/02(木) 15:19:33
猫でもわかるCINTとかないっすか?
0011デフォルトの名無しさん2005/06/07(火) 19:39:45
本の復刊のために投票しる!
ttp://www.fukkan.com/vote.php3?no=19768
0012デフォルトの名無しさん2005/06/14(火) 15:15:40
>8
これってCINTのパーサを改造してるの?
0013102005/06/15(水) 15:42:04
>>11
そこの>>1が漏れという罠…
0014デフォルトの名無しさん2005/06/16(木) 13:21:01
>>12

>>8のソフトの実行ファイル(NCScript.exe)をバイナリエディタで開いて調べてみた。
オフセット0x14A130以降に、makecintで作成されたと思われるデータが見つかった。

"NCScriptUtils.h"
"var"
"GetWordObject"
"i - - 0 - -"
"operator[]"
"d - - 0 - -"
"u 'NC::WordObject' - 11 - -"
"~WordObject"
"operator="
"sincos"
"d - - 0 - - D - - 0 - - D - - 0 - -"
"NC"
"NC::WordObject"
"G__cpp_setup()"
0015142005/06/16(木) 13:21:37
これは以下のようなクラス、関数、型名をCINTに組み込むためのデータと思われる。

// NCScriptUtils.h

namespace NC {
  class WordObject {
  public:
    WordObject& GetWordObject(int);
    WordObject* operator[](int);
    WordObject* operator[](double);
    WordObject& operator=(WordObject&);
    WordObject(WordObject&);
    ~WordObject();
  };

  WordObject& GetWordObject(int);
}

void sincos(double, double*, double*);
typedef double var;

さらに調べると、オフセット0x153B64以降に以下の文字列が見つかった。

"NC::"
"GetWordObject('%c')"
"[int(" ")]"
"->"

>>8のソフトは多分、関数内に埋め込まれたNCデータを上記の組み込みライブラリの
呼び出しに変換してCINTのパーサに渡しているのではないだろうか。
0016デフォルトの名無しさん2005/06/23(木) 11:38:21
あげ
0017デフォルトの名無しさん2005/07/01(金) 14:04:34
age
0018デフォルトの名無しさん2005/07/04(月) 08:22:36
マリリンのことかー!age
0019デフォルトの名無しさん2005/07/28(木) 21:03:03
新着情報は?
0020デフォルトの名無しさん2005/08/24(水) 21:51:11
使い方がわからない…。

include書くとエラーになる。
stdioとかは、書かなくてもいいの?
ステップ実行とかで確認する方法も理解できないし…。
知ってる方いたら、使い方教えて下さい。
0021デフォルトの名無しさん2005/08/24(水) 23:57:00
>>20
今更非標準環境でプログラミングしたがるわけは
0022デフォルトの名無しさん2005/08/25(木) 13:30:07
>>21
 おもしろそうだから。
0023デフォルトの名無しさん2005/08/25(木) 22:27:34
ぶっちゃけ敷居高すぎだろこれ。
こなれた解説がどこにも無いからみんな興味あっても手出しできない。
0024デフォルトの名無しさん2005/08/25(木) 22:58:00
英語みてるけど、さっぱり・・・。
今は、片っ端からコマンド試してるよ。
0025デフォルトの名無しさん2005/09/03(土) 19:46:47
誰かインストール方法教えてください
0026デフォルトの名無しさん2005/09/07(水) 10:20:43
>>25
 どのOSにインストールするの?
0027252005/09/08(木) 10:01:32
>>26
まずWindowsにします。
使い方が解ってきたら別のOSに移植したいです。
0028デフォルトの名無しさん2005/09/08(木) 20:11:33
使い方は難しくないけど、使う意味が見出せない。
普通にCでいいじゃんね。
0029デフォルトの名無しさん2005/09/09(金) 00:29:44
普通にC/C++使った場合の編集→コンパイル→試験→修正→コンパイル→・・・って
いうまんどくさいサイクルを短縮するためのもんだと理解してるんだが。ROOT使って
データ解析とか始めるとこれはこれで便利。

Python/Perl/RubyとかC/C++以外のスクリプト言語が使えてC/C++バインディングも
普通に使いこなせる人には確かに無用の長物かもね。

Lisp/Schemeを知った今では積極的に利用する気がおきないけどね。
0030デフォルトの名無しさん2005/09/10(土) 10:12:41
これってバイトコード吐き出しとバイトコード実行ってできないんですか?
自作ソフトに組み込みたいんだけど、ソースコードそのまま持つの嫌だなあ
0031デフォルトの名無しさん2005/09/10(土) 15:48:34
そういうのは考えてないんじゃないかなあ
結構古いスタイルのインタプリタみたいだし
0032名無しさん@そうだ選挙に行こう2005/09/11(日) 01:26:24
shared libraryにしてリンクするんじゃだめなの?
0033デフォルトの名無しさん2005/09/12(月) 20:51:03
CINTの解説でこんなん見付けた。これってどうよ?

スクリプト言語を組み込むようにC++を自作プログラムに組み込めたらなぁ。
そんな思いからCINTを調べ始めましたが、あまりにも膨大すぎる為
なんらかの道標が欲しくなりました。
本書は開発者自らによる解説書とのこと。
是非一度目を通しておきたいのですが、残念ながら廃刊となってから
随分と長いらしく見つかりません。
確実に長く売れつづける本だと思うだけに残念です。
0034デフォルトの名無しさん2005/09/12(月) 22:56:28
CQ出版のやつでしょ
おれ持ってるけど大したこと書いてないよ
0035デフォルトの名無しさん2005/09/13(火) 01:05:56
ってか解説書が要るようなもんでもないと思うんだけど。>CINT
アーカイブに入ってる機能テストの部分とか、最大のアプリケーションと思われる
ROOTのコード参考にすれば大抵のことはできると思うんだけど。

どんだけ難しい使い方しようとしてんのか詳細きぼんぬ。
0036デフォルトの名無しさん2005/09/19(月) 17:58:43
俺も持ってるけど埃かぶってる。
0037デフォルトの名無しさん2005/09/20(火) 09:12:22
ちょっと使ってみたけどJavaScriptみたいで使いやすいですね。
0038デフォルトの名無しさん2005/09/22(木) 14:44:41
LispにおけるEmacsみたいに、CINTのエディタがあればいいと思う。
作ってくらさい。
0039デフォルトの名無しさん2005/09/22(木) 18:03:00
インタプリタのくせにポインタや構造体使えて処理速度も結構速いなんてやり手ですね。
0040デフォルトの名無しさん2005/09/23(金) 14:10:26
>>38

  そ  れ  だ  ー  !  !


誰かが作ってくれるのを期待age
0041デフォルトの名無しさん2005/09/29(木) 23:16:53
これってC言語コードそのまま動かせないの?
なんか#include<stdio.h>の時点でエラーになんだけど
0042デフォルトの名無しさん2005/09/30(金) 02:48:34
ならないけど。エラー。
具体的にどのバージョンで何をどうしてどうなってんのか書いてみて。
0043デフォルトの名無しさん2005/09/30(金) 04:00:36
>>42
漏れんとこも#include <stdio.h>はエラーだよ。
5.15.105のwin版。
includeしなくてもprintfとか使える。
STLとかは#include <vector.dll>なんて風に書く。
std::はつけてもつけなくてもいい(変なの)。
iostreamはないくさい。

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

で正常に動作。
つーか触ってみただけで特に何もしてないからそれ以上は知らん。
ドキュメント読んですらいない。
とりあえず使い道が思い浮かばなかった。
0044デフォルトの名無しさん2005/09/30(金) 07:44:28
よくわからんがC言語のソースそのまま動かせないのはヤだな
0045デフォルトの名無しさん2005/09/30(金) 15:09:45
インタプリンタって、何か特別なプリンタなんですか?
0046デフォルトの名無しさん2005/09/30(金) 15:18:01
hai hai kuma kuma
0047422005/09/30(金) 22:39:05
cint 5.16.2, Linuxでまったく問題なし。
#include <iostream>も普通に動作するけど。何でだろね。
ROOTでインタラクティブにC++のクラスを操作することの便利さを知ったんだけど
rootcint/makecintで共有ライブラリ作る手間すら面倒になってどんどんエスカレートして
気が付いたらLisperになってた(w
いまでもC/C++を使わなきゃならない時はお世話になってるです>CINT
0048デフォルトの名無しさん2005/10/01(土) 04:02:59
>>47
winとlinuxでだいぶ違うみたいだね
win版だとこんな感じ

#include <win32api.dll>
int main()
{ MessageBox(NULL, "Hello, World!", "", MB_OK); return 0; }

うひょwww
Win32API使いたい放題!?www

・・・だから何なんだろう・・・別にいらないや。
0049デフォルトの名無しさん2005/10/03(月) 23:09:47
{ #include <stdio.h> }
って書くと問題ない、とかそういう寒いオチじゃないよね?

>>48
何のメリットも見いだせなかったら無理に使う必要ないと思うよ。
業務で仕方なく・・・とかいう場合は別だけど。
0050デフォルトの名無しさん2005/10/04(火) 22:28:59
似たようなの見付けたのでメモ。使ったことある人いたら感想キボンヌ。
ttp://www.softintegration.com/
0051デフォルトの名無しさん2005/10/05(水) 00:57:10
昔インスコだけした。よく覚えてないが、C のライブラリを直接呼べなかった気が…。
0052デフォルトの名無しさん2005/10/07(金) 05:53:55
シェアウェアかよ
こんなのに金払う奴いるのか?
0053デフォルトの名無しさん2005/10/17(月) 07:55:24
世界中のみんな!おらにちょっとずつ一票入れてくれ!!
ttp://www.fukkan.com/vote.php3?no=19768
0054デフォルトの名無しさん2005/10/17(月) 18:28:45
2年で8票なあ
0055デフォルトの名無しさん2005/11/23(水) 21:21:33
>>49
 とりあえず、Includeディレクトリにstdio.hのファイル名でファイルを
 作ればエラー出ない。
 中身なしでOKでした。

 G__で始まるAPIを現在調査中だけど中々思い通りにならない…。
 むかし、めじろってあったけどcint+エディタだったねぇ。
 ちょっとした思いつきでテスト出来るから重宝してたけど、2KやXP
 だとエディタ部分がおかしいんだよね。

 
0056デフォルトの名無しさん2005/12/13(火) 20:19:30
保守
0057デフォルトの名無しさん2005/12/24(土) 00:49:11
これって普通のwin32のプログラムの一部として動かせるんだよね?
なんか、楽できないかな。。。

例えばユーザが描画をカスタマイズできるダイアログを提供しなきゃならないアプリの場合、
描画ルーチン内部で、もしもこの設定なら・・・、とIFで沢山分岐させなきゃならない。
(関数ポインタとか継承とかで、うまいこと工夫したりする)

ところが、描画ルーチンだけをCINTで実行しておくと、どうだろう?


なんかいい事あるかな?
誰か分かる人おしえて。
0058デフォルトの名無しさん2006/01/06(金) 20:49:10
>>50
windows版、使ってみました。(軽くしか触っていないので、
おかしいところは訂正よろしくお願いします)
一応、ライセンスはアカデミックフリーでProが使えるらしいので、
学生や研究機関にはいいかも。ダウンロードには、メアドの登録が
必要です。
(商用でなければ、Standardはアカデミックでなくてもフリーの模様)
sourceforgeでフリーのIDE(?bcpadみたいなのも)があるのもgood。
0059デフォルトの名無しさん2006/01/06(金) 20:50:01
容量は、本体が34M、IDEがおよそ1.9Mくらい。起動時のメモリ使用量も
それほど多くないので、比較的軽いです。そのまま使えるライブラリと
しては、複素数、微分積分、FFTなど科学計算に使えるものがあります。また
Winsockなどもサポートしているようなので、通信もOKの模様。
グラフを描きやすくするため、arrayという型が追加されるなど、
若干の拡張があります。
plotxy()で簡単にグラフが描けますが、プロットしたグラフは
gnuplotを呼び出しているため、GUIで拡大縮小といったことは
できませんでした。
0060デフォルトの名無しさん2006/01/06(金) 20:51:13
あとは、他のアプリにCh(このインタプリタ)を埋め込んで、呼び出して
使うことができる様子。IDEで使用している感覚は、BCC+bcpadを
使っているような感じです。(IDEからではなく、Chシェルから
実行した方が、動作が軽快です)

ただし、他のコンパイラで作られたライブラリは、そのまま呼び出すことが
できないようです。SDKで、つなぎを作る必要があるようです。

また欠点としては、テンプレートが使えませんでした。ですから当然
STLなどは使えません。(IDEではなぜかtemplateがキーワードになっていますが
実行できませんでした。CINTでは、STLも使えます。)
0061デフォルトの名無しさん2006/01/06(金) 20:52:32
CINTと比較すると、Chの方が導入環境などお手軽感があり、
動作が安定している感じがするので、教育用途でとりあえず
使わせるのに向いている感じがします。
また、自分のアプリにスクリプト実行環境として組み込むには、
Chの方がやりやすいようです。(CINTでもできないわけでは
ないようですが)ただし、組み込むにはシェアのChが必要な模様。
それ以外の用途では、CINT(ROOT)に利点がありそうです。
0062デフォルトの名無しさん2006/01/06(金) 20:54:53
>>57
描画をCINTにまかせても、描画ルーチンで分岐しないといけないのは
変わらないんじゃないのかな。
自分のアプリにスクリプトエンジンとして、CINT+フレームワークを
使って、マクロ(スクリプト)として自由にウインドウを
作らせる、ということはできるかもしれませんね。
0063デフォルトの名無しさん2006/04/09(日) 16:17:49
GTK+やらgtkmmの書式を介してGUIを構築する方法は無いのでしょうか?今のところgtk-server経由で表示する手法なら見つけられたのですがmakecintで構築しなおせるのでしょうか?それともgtk-serverのラッパークラスを自分で作ったほうが早いでしょうか?如何でしょうか?
0064デフォルトの名無しさん2006/04/09(日) 17:08:42
>>63
gladeの方が早いと思う。
0065デフォルトの名無しさん2006/06/26(月) 19:27:54
保守。
0066デフォルトの名無しさん2006/08/27(日) 12:42:36
>>58-61
超亀レスだけど紹介乙
なんかこっちのほうがドキュメントが整備されていて楽だな
0067デフォルトの名無しさん2006/10/28(土) 11:56:41
まくおうぃぽ
0068sage2007/03/05(月) 18:38:18
sage
0069sage2007/03/05(月) 18:43:34
sage
0070sage2007/03/05(月) 18:49:03
sage
0071デフォルトの名無しさん2007/03/10(土) 23:11:15
cint使ってるんだがlinux上で5.16をconfigure/makeしたが、std::stringが
おかしくて止まる。なぜだろう。

std::string str="hello";
str+" world";

が出来ない。Win版は良いのだが。誰か解決を。。。

余談なんだがwin版ではtar.gz解凍時にアーカイバを変えると上手く
動かなかったりするが、改行コードが原因なのかな??
0072712007/03/11(日) 00:20:55
因みにwindows版ってバイナリパッケージとソースが必要なんだな。
んで、両方tar.gzだが、これって単純に展開して同じディレクトリに
居れて大丈夫なんかな。0xa,0xdと、0xaが。。。
0073デフォルトの名無しさん2007/06/22(金) 16:35:49
CINTを自分でVC.NET2003でビルドしようと思って
ソースをダウンロードしたんだけどPlatformフォルダがない。。。

mailinglistにも、同様の書き込みがあったんだけど
Cygwinでコンパイルできるよ。みたいな・・・

VC.NET2003でコンパイルできないもんでしょうか?
0074732007/06/22(金) 17:54:35
ttp://www.codeproject.com/useritems/Personal_C___Compiler.asp

ここにあるファイルで出来たっぽ。。。
0075デフォルトの名無しさん2007/07/15(日) 17:08:50
mejiroをXPマシンに入れてみたけど…
Application Verifire 使って何とか動きそうな感触。
0076デフォルトの名無しさん2007/11/15(木) 13:13:36
最新版落としたんだけど、俺のWinXPノートだと起動に失敗する…
メインのVistaデスクトップの方は起動するんだが。
ノートは最小限のソフトしか入れてない(開発環境とかもなし)から、dllか何かが足りないのかな。
0077デフォルトの名無しさん2007/11/20(火) 15:26:42
ROOTはMac/Linuxでバリバリ使ってるが、
ROOT抜きでCINTだけを使おうと思うことないなぁ。
みんなどうやって使ってんの?ただの興味?
pow()とかsin()とかも呼べるから、関数電卓としては便利かな。
0078デフォルトの名無しさん2007/11/21(水) 01:21:46
>>77
>pow()とかsin()とかも呼べるから、関数電卓としては便利かな。
Octaveで事が足りる。
0079デフォルトの名無しさん2007/12/25(火) 16:46:22
それを慣れた書式で書けるのが良いんじゃないか
0080デフォルトの名無しさん2007/12/25(火) 17:53:27
>>79
>それを慣れた書式で書けるのが良いんじゃないか
Octaveで事が足りる。
0081デフォルトの名無しさん2007/12/31(月) 02:38:51
Octave見てみたが、慣れた書式とは言いがたいな
0082デフォルトの名無しさん2007/12/31(月) 08:47:07
>>81
具体的にどの辺が?
まさか、行列演算みたいなCにない機能を指してそういっているわけじゃないよね?
0083デフォルトの名無しさん2007/12/31(月) 14:57:25
それも含めてるよ。
結局、何も考えずにいつも通りなのが慣れた書式だろ。
電卓ごときで新しい言語を覚えるのはちょっとな。
0084デフォルトの名無しさん2008/01/01(火) 15:17:36
Octaveが電卓なら、C/C++は手回し計算機だな。
0085デフォルトの名無しさん2008/01/03(木) 15:20:48
関数電卓を前にして、「普通の電卓にはないボタンがついているから慣れた機械じゃない」というようなもんだな。
0086デフォルトの名無しさん2008/01/03(木) 21:20:18
関数電卓の使い方わからんから
使い方覚えるより、C言語で書いた方が早いって話だろ?
0087デフォルトの名無しさん2008/01/03(木) 21:29:45
そもそもpow()やsin()って話じゃないのか?
0088デフォルトの名無しさん2008/01/30(水) 04:31:37
使ってる人少ない?
0089デフォルトの名無しさん2008/02/06(水) 17:13:58
普通はUltraC使うからな
0090デフォルトの名無しさん2008/02/10(日) 02:55:46
25200円もだして買うのか。。。
■ このスレッドは過去ログ倉庫に格納されています