C/C++インタプリタ CINTat TECH
C/C++インタプリタ CINT - 暇つぶし2ch1:デフォルトの名無しさん
05/04/25 11:58:54
CERNのROOTプロジェクトでも採用されているC/C++インタプリタ CINTについて語るスレです。

URLリンク(root.cern.ch)

2:デフォルトの名無しさん
05/04/25 13:10:10
2get

3:デフォルトの名無しさん
05/04/25 13:14:33
今だ!2ゲットォォォォ!!
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ∩ ∩
   ~| ∪ |         (´´
   ヘノ  ノ       (´⌒(´
  ((つ ノ⊃≡≡≡(´⌒;;;≡≡≡
   ̄ ̄ ̄(´⌒(´⌒;;
   ズズズズズ

4:デフォルトの名無しさん
05/04/25 18:07:36
test

5:デフォルトの名無しさん
05/04/25 20:50:43
C のみで良いならこっちの方が便利かな
x86 でしか動かないけど

URLリンク(fabrice.bellard.free.fr)
URLリンク(b2c-1.rocketbeach.com)

- C のライブラリにそのままリンク可能
- スクリプト的に実行可能(shbang で起動出来る)
- ネイティブコンパイルするので処理速度が速い
- x86 platform の Win/Unix/Linux で動作
- 実行バイナリが小さい
- コンパイルも簡単

6:デフォルトの名無しさん
05/04/29 15:30:59
めじろ++ってどうなったんだろう?

7:デフォルトの名無しさん
05/04/30 21:12:15
おぉ!CINT使ってますよ!
ついにスレが立ったか。でも特に振るネタ無いな…。

8:デフォルトの名無しさん
05/05/10 17:53:39
「C/C++インタプリタ CINT」でぐぐったらこんなのが出てきた。
URLリンク(www.vector.co.jp)

9:デフォルトの名無しさん
05/05/21 00:17:04
CINTがメンバが参照の場合でも使えるようになればかなり使い道は広がるんだけどな.

10:デフォルトの名無しさん
05/06/02 15:19:33
猫でもわかるCINTとかないっすか?

11:デフォルトの名無しさん
05/06/07 19:39:45
本の復刊のために投票しる!
URLリンク(www.fukkan.com)

12:デフォルトの名無しさん
05/06/14 15:15:40
>8
これってCINTのパーサを改造してるの?

13:10
05/06/15 15:42:04
>>11
そこの>>1が漏れという罠…

14:デフォルトの名無しさん
05/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()"

15:14
05/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のパーサに渡しているのではないだろうか。

16:デフォルトの名無しさん
05/06/23 11:38:21
あげ

17:デフォルトの名無しさん
05/07/01 14:04:34
age

18:デフォルトの名無しさん
05/07/04 08:22:36
マリリンのことかー!age

19:デフォルトの名無しさん
05/07/28 21:03:03
新着情報は?

20:デフォルトの名無しさん
05/08/24 21:51:11
使い方がわからない…。

include書くとエラーになる。
stdioとかは、書かなくてもいいの?
ステップ実行とかで確認する方法も理解できないし…。
知ってる方いたら、使い方教えて下さい。


21:デフォルトの名無しさん
05/08/24 23:57:00
>>20
今更非標準環境でプログラミングしたがるわけは

22:デフォルトの名無しさん
05/08/25 13:30:07
>>21
 おもしろそうだから。


23:デフォルトの名無しさん
05/08/25 22:27:34
ぶっちゃけ敷居高すぎだろこれ。
こなれた解説がどこにも無いからみんな興味あっても手出しできない。

24:デフォルトの名無しさん
05/08/25 22:58:00
英語みてるけど、さっぱり・・・。
今は、片っ端からコマンド試してるよ。

25:デフォルトの名無しさん
05/09/03 19:46:47
誰かインストール方法教えてください

26:デフォルトの名無しさん
05/09/07 10:20:43
>>25
 どのOSにインストールするの?

27:25
05/09/08 10:01:32
>>26
まずWindowsにします。
使い方が解ってきたら別のOSに移植したいです。

28:デフォルトの名無しさん
05/09/08 20:11:33
使い方は難しくないけど、使う意味が見出せない。
普通にCでいいじゃんね。

29:デフォルトの名無しさん
05/09/09 00:29:44
普通にC/C++使った場合の編集→コンパイル→試験→修正→コンパイル→・・・って
いうまんどくさいサイクルを短縮するためのもんだと理解してるんだが。ROOT使って
データ解析とか始めるとこれはこれで便利。

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

Lisp/Schemeを知った今では積極的に利用する気がおきないけどね。

30:デフォルトの名無しさん
05/09/10 10:12:41
これってバイトコード吐き出しとバイトコード実行ってできないんですか?
自作ソフトに組み込みたいんだけど、ソースコードそのまま持つの嫌だなあ

31:デフォルトの名無しさん
05/09/10 15:48:34
そういうのは考えてないんじゃないかなあ
結構古いスタイルのインタプリタみたいだし

32:名無しさん@そうだ選挙に行こう
05/09/11 01:26:24
shared libraryにしてリンクするんじゃだめなの?

33:デフォルトの名無しさん
05/09/12 20:51:03
CINTの解説でこんなん見付けた。これってどうよ?

スクリプト言語を組み込むようにC++を自作プログラムに組み込めたらなぁ。
そんな思いからCINTを調べ始めましたが、あまりにも膨大すぎる為
なんらかの道標が欲しくなりました。
本書は開発者自らによる解説書とのこと。
是非一度目を通しておきたいのですが、残念ながら廃刊となってから
随分と長いらしく見つかりません。
確実に長く売れつづける本だと思うだけに残念です。

34:デフォルトの名無しさん
05/09/12 22:56:28
CQ出版のやつでしょ
おれ持ってるけど大したこと書いてないよ

35:デフォルトの名無しさん
05/09/13 01:05:56
ってか解説書が要るようなもんでもないと思うんだけど。>CINT
アーカイブに入ってる機能テストの部分とか、最大のアプリケーションと思われる
ROOTのコード参考にすれば大抵のことはできると思うんだけど。

どんだけ難しい使い方しようとしてんのか詳細きぼんぬ。

36:デフォルトの名無しさん
05/09/19 17:58:43
俺も持ってるけど埃かぶってる。

37:デフォルトの名無しさん
05/09/20 09:12:22
ちょっと使ってみたけどJavaScriptみたいで使いやすいですね。

38:デフォルトの名無しさん
05/09/22 14:44:41
LispにおけるEmacsみたいに、CINTのエディタがあればいいと思う。
作ってくらさい。

39:デフォルトの名無しさん
05/09/22 18:03:00
インタプリタのくせにポインタや構造体使えて処理速度も結構速いなんてやり手ですね。

40:デフォルトの名無しさん
05/09/23 14:10:26
>>38

  そ  れ  だ  ー  !  !


誰かが作ってくれるのを期待age

41:デフォルトの名無しさん
05/09/29 23:16:53
これってC言語コードそのまま動かせないの?
なんか#include<stdio.h>の時点でエラーになんだけど

42:デフォルトの名無しさん
05/09/30 02:48:34
ならないけど。エラー。
具体的にどのバージョンで何をどうしてどうなってんのか書いてみて。

43:デフォルトの名無しさん
05/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; }

で正常に動作。
つーか触ってみただけで特に何もしてないからそれ以上は知らん。
ドキュメント読んですらいない。
とりあえず使い道が思い浮かばなかった。

44:デフォルトの名無しさん
05/09/30 07:44:28
よくわからんがC言語のソースそのまま動かせないのはヤだな

45:デフォルトの名無しさん
05/09/30 15:09:45
インタプリンタって、何か特別なプリンタなんですか?

46:デフォルトの名無しさん
05/09/30 15:18:01
hai hai kuma kuma

47:42
05/09/30 22:39:05
cint 5.16.2, Linuxでまったく問題なし。
#include <iostream>も普通に動作するけど。何でだろね。
ROOTでインタラクティブにC++のクラスを操作することの便利さを知ったんだけど
rootcint/makecintで共有ライブラリ作る手間すら面倒になってどんどんエスカレートして
気が付いたらLisperになってた(w
いまでもC/C++を使わなきゃならない時はお世話になってるです>CINT

48:デフォルトの名無しさん
05/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

・・・だから何なんだろう・・・別にいらないや。

49:デフォルトの名無しさん
05/10/03 23:09:47
{ #include <stdio.h> }
って書くと問題ない、とかそういう寒いオチじゃないよね?

>>48
何のメリットも見いだせなかったら無理に使う必要ないと思うよ。
業務で仕方なく・・・とかいう場合は別だけど。

50:デフォルトの名無しさん
05/10/04 22:28:59
似たようなの見付けたのでメモ。使ったことある人いたら感想キボンヌ。
URLリンク(www.softintegration.com)

51:デフォルトの名無しさん
05/10/05 00:57:10
昔インスコだけした。よく覚えてないが、C のライブラリを直接呼べなかった気が…。

52:デフォルトの名無しさん
05/10/07 05:53:55
シェアウェアかよ
こんなのに金払う奴いるのか?

53:デフォルトの名無しさん
05/10/17 07:55:24
世界中のみんな!おらにちょっとずつ一票入れてくれ!!
URLリンク(www.fukkan.com)

54:デフォルトの名無しさん
05/10/17 18:28:45
2年で8票なあ

55:デフォルトの名無しさん
05/11/23 21:21:33
>>49
 とりあえず、Includeディレクトリにstdio.hのファイル名でファイルを
 作ればエラー出ない。
 中身なしでOKでした。

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

 

56:デフォルトの名無しさん
05/12/13 20:19:30
保守

57:デフォルトの名無しさん
05/12/24 00:49:11
これって普通のwin32のプログラムの一部として動かせるんだよね?
なんか、楽できないかな。。。

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

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


なんかいい事あるかな?
誰か分かる人おしえて。

58:デフォルトの名無しさん
06/01/06 20:49:10
>>50
windows版、使ってみました。(軽くしか触っていないので、
おかしいところは訂正よろしくお願いします)
一応、ライセンスはアカデミックフリーでProが使えるらしいので、
学生や研究機関にはいいかも。ダウンロードには、メアドの登録が
必要です。
(商用でなければ、Standardはアカデミックでなくてもフリーの模様)
sourceforgeでフリーのIDE(?bcpadみたいなのも)があるのもgood。

59:デフォルトの名無しさん
06/01/06 20:50:01
容量は、本体が34M、IDEがおよそ1.9Mくらい。起動時のメモリ使用量も
それほど多くないので、比較的軽いです。そのまま使えるライブラリと
しては、複素数、微分積分、FFTなど科学計算に使えるものがあります。また
Winsockなどもサポートしているようなので、通信もOKの模様。
グラフを描きやすくするため、arrayという型が追加されるなど、
若干の拡張があります。
plotxy()で簡単にグラフが描けますが、プロットしたグラフは
gnuplotを呼び出しているため、GUIで拡大縮小といったことは
できませんでした。

60:デフォルトの名無しさん
06/01/06 20:51:13
あとは、他のアプリにCh(このインタプリタ)を埋め込んで、呼び出して
使うことができる様子。IDEで使用している感覚は、BCC+bcpadを
使っているような感じです。(IDEからではなく、Chシェルから
実行した方が、動作が軽快です)

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

また欠点としては、テンプレートが使えませんでした。ですから当然
STLなどは使えません。(IDEではなぜかtemplateがキーワードになっていますが
実行できませんでした。CINTでは、STLも使えます。)

61:デフォルトの名無しさん
06/01/06 20:52:32
CINTと比較すると、Chの方が導入環境などお手軽感があり、
動作が安定している感じがするので、教育用途でとりあえず
使わせるのに向いている感じがします。
また、自分のアプリにスクリプト実行環境として組み込むには、
Chの方がやりやすいようです。(CINTでもできないわけでは
ないようですが)ただし、組み込むにはシェアのChが必要な模様。
それ以外の用途では、CINT(ROOT)に利点がありそうです。

62:デフォルトの名無しさん
06/01/06 20:54:53
>>57
描画をCINTにまかせても、描画ルーチンで分岐しないといけないのは
変わらないんじゃないのかな。
自分のアプリにスクリプトエンジンとして、CINT+フレームワークを
使って、マクロ(スクリプト)として自由にウインドウを
作らせる、ということはできるかもしれませんね。

63:デフォルトの名無しさん
06/04/09 16:17:49
GTK+やらgtkmmの書式を介してGUIを構築する方法は無いのでしょうか?今のところgtk-server経由で表示する手法なら見つけられたのですがmakecintで構築しなおせるのでしょうか?それともgtk-serverのラッパークラスを自分で作ったほうが早いでしょうか?如何でしょうか?

64:デフォルトの名無しさん
06/04/09 17:08:42
>>63
gladeの方が早いと思う。

65:デフォルトの名無しさん
06/06/26 19:27:54
保守。

66:デフォルトの名無しさん
06/08/27 12:42:36
>>58-61
超亀レスだけど紹介乙
なんかこっちのほうがドキュメントが整備されていて楽だな

67:デフォルトの名無しさん
06/10/28 11:56:41
まくおうぃぽ

68:sage
07/03/05 18:38:18
sage

69:sage
07/03/05 18:43:34
sage

70:sage
07/03/05 18:49:03
sage

71:デフォルトの名無しさん
07/03/10 23:11:15
cint使ってるんだがlinux上で5.16をconfigure/makeしたが、std::stringが
おかしくて止まる。なぜだろう。

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

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

余談なんだがwin版ではtar.gz解凍時にアーカイバを変えると上手く
動かなかったりするが、改行コードが原因なのかな??


72:71
07/03/11 00:20:55
因みにwindows版ってバイナリパッケージとソースが必要なんだな。
んで、両方tar.gzだが、これって単純に展開して同じディレクトリに
居れて大丈夫なんかな。0xa,0xdと、0xaが。。。


73:デフォルトの名無しさん
07/06/22 16:35:49
CINTを自分でVC.NET2003でビルドしようと思って
ソースをダウンロードしたんだけどPlatformフォルダがない。。。

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

VC.NET2003でコンパイルできないもんでしょうか?

74:73
07/06/22 17:54:35
URLリンク(www.codeproject.com)

ここにあるファイルで出来たっぽ。。。

75:デフォルトの名無しさん
07/07/15 17:08:50
mejiroをXPマシンに入れてみたけど…
Application Verifire 使って何とか動きそうな感触。

76:デフォルトの名無しさん
07/11/15 13:13:36
最新版落としたんだけど、俺のWinXPノートだと起動に失敗する…
メインのVistaデスクトップの方は起動するんだが。
ノートは最小限のソフトしか入れてない(開発環境とかもなし)から、dllか何かが足りないのかな。

77:デフォルトの名無しさん
07/11/20 15:26:42
ROOTはMac/Linuxでバリバリ使ってるが、
ROOT抜きでCINTだけを使おうと思うことないなぁ。
みんなどうやって使ってんの?ただの興味?
pow()とかsin()とかも呼べるから、関数電卓としては便利かな。

78:デフォルトの名無しさん
07/11/21 01:21:46
>>77
>pow()とかsin()とかも呼べるから、関数電卓としては便利かな。
Octaveで事が足りる。

79:デフォルトの名無しさん
07/12/25 16:46:22
それを慣れた書式で書けるのが良いんじゃないか

80:デフォルトの名無しさん
07/12/25 17:53:27
>>79
>それを慣れた書式で書けるのが良いんじゃないか
Octaveで事が足りる。

81:デフォルトの名無しさん
07/12/31 02:38:51
Octave見てみたが、慣れた書式とは言いがたいな

82:デフォルトの名無しさん
07/12/31 08:47:07
>>81
具体的にどの辺が?
まさか、行列演算みたいなCにない機能を指してそういっているわけじゃないよね?

83:デフォルトの名無しさん
07/12/31 14:57:25
それも含めてるよ。
結局、何も考えずにいつも通りなのが慣れた書式だろ。
電卓ごときで新しい言語を覚えるのはちょっとな。

84:デフォルトの名無しさん
08/01/01 15:17:36
Octaveが電卓なら、C/C++は手回し計算機だな。

85:デフォルトの名無しさん
08/01/03 15:20:48
関数電卓を前にして、「普通の電卓にはないボタンがついているから慣れた機械じゃない」というようなもんだな。

86:デフォルトの名無しさん
08/01/03 21:20:18
関数電卓の使い方わからんから
使い方覚えるより、C言語で書いた方が早いって話だろ?

87:デフォルトの名無しさん
08/01/03 21:29:45
そもそもpow()やsin()って話じゃないのか?

88:デフォルトの名無しさん
08/01/30 04:31:37
使ってる人少ない?

89:デフォルトの名無しさん
08/02/06 17:13:58
普通はUltraC使うからな

90:デフォルトの名無しさん
08/02/10 02:55:46
25200円もだして買うのか。。。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch