こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

どのコンパイラが私に適しているのしょう?

時代遅れ、勉強不足とのお叱りを覚悟の上で質問します.
              
私は、フォートランで育って、その後、不承不承ながら ANSI のC言語へ移行した化石世代です.現役を退いてからは、もちろんもうメイン・フレームは使えません.当然、パソコンへ切り替えることとなりました.

コンパイラとしては、値段の点でマイクロソフトのQuick-Cを愛用しました. また、知人から富士通のF-Basic (コンパイラーです.インタプリタではありません) を紹介されました.電子回路のネットワークの解析に使ってみたらもってこいのソフトでした.とは言うものの、いつの間にかパソコンとは縁が遠くなりました.
                               
最近になって、またパソコンの虫がうずき始めました.年のせいで物忘れを強く意識するこのごろです.老化防止の一助として,なにかを始めねばと考えたわけです.しかし、なにをやったらいいのかわかりません.手当たり次第に、アマゾンから C++、C#、Visual Basic の参考書を買い込みました. 

老化した頭には、あのややこしい IDE の操作を理解するのは一仕事でした.しかし 一度 IDE を飲み込んでしまうと、あとは昔とほとんど変わりません.楽しくプログラミングが出来るようになりました.

別に深い意味はありませんが、「パソコン、ディスプレイに表示」が先入観となったのでしょう. Visual Basic を主に使っています.

随分と便利な点もあるようです. ラジオボタンとか、グループボックスなど、以前ならわざわざサブルーティンを作成していた手間がなくなりました.
                    
ただ困ったこともいくつかあるようです.例えば、初期データの入力に手間がかかります.また、計算結果をディスプレイ上に表示する時もそうです.

例えば、次のように表示したい場合です.

   --------------------------
.......No.........Impedance................Susceptance

.........1........150.00 + j.0.00...........6.67 + J.0.00
.........2..........97.66 + j65.11...........7.03 - j.4.73
.........3.........50.00 + j57.74..........12.00 - j16.00      
 ---------------------------------------------------
単純に四捨五入だけなら、Math.Floor(……+0.5)……で済みますが、これでは、少数点の位置が揃いません. Sub.を一つ作れば良いと言えばそれまでですが、昔の Format F6.2 とか、Printf 6.2d が懐かしくなりました.

勉強不足とお叱りを受けるかもしれませんが、どうもこのコンパイラは理工系の数値計算にはあまり向いていないような気もします.この考えは間違っているのでしょうか. それとも、C++か、C# を使うべきなのでしょうか.いっそ、昔のANSIのCを使って、C++でコンパイルしようかとも考えています.

私のやりたい計算は、電子回路の回路網のレスポンスの検討です.いったい、どのコンパイラを使うのがいちばん便利なのでしょう? 
また、Visual Basic は、こんな用途には不向きなのでしょうか?

どなたか、この辺の事情を教えていただけませんでしょうか.「認識不足だ.その考えは間違ってるよ」とお叱りは覚悟しています. なんとか頭脳の老化をすこしでも食い止めたいとの老人のはかない希望を汲んで、お力添えをお願いします. 忌憚のないご意見をお待ちします.

よろしくお願いします.

使用している環境は次のとおりです.
NECValueStar
CPUPentium
Memory2GB
HDD250GB X 2

投稿日時 - 2010-03-25 16:19:38

QNo.5778560

困ってます

質問者が選んだベストアンサー

>>
ところで「コンパイラを使う必要はないのでは」とのお言葉が気になります.お言葉の意味を再度ご教示いただけないでしょうか. お願いいたします
<<
Javaをはじめとし、VBやVC++など、最近のコンパイラは中間コードを吐き出すだけです。CPUが解釈できるネイティブなコードを出すわけではないので、演算速度からみればインタプリタと大差ありません。(Intelの出している純正アセンブラを使えば最適化されるでしょうが、素人に手の出せる値段ではありません)

即実行型ファイルをつくりたいのであればコンパイラを使うメリットはありますが、.NET Frameworkのバージョンを気にしなければならないなど、あらたに学ばなければならない内容がかなりあります。

一方、PHP, Ruby, JavaScriptなどのスクリプトが多言語は、かつてのインタプリタと同様、編集即実行ということができますから、トライ&エラーでプログラムを組むには適していると言えます。

私も、朝一番で見る COMPILE ERROR の印字に何度も泣かされつつ、CPU時間をめぐる争奪戦を繰り広げたクチなので、昨今、こんな汚いコードでよくもまあスピーディに解いてくれるものだと、ハードウェアの進歩に感心することしきりです。アルゴリズムの基本的な部分は、ここ30年ほとんど進歩していないとも言えます。
むしろ、コンピュータの働きをまったく知らない“インターネットの向こう側の人々”でも使えるように、CPU時間の大半をユーザーI/Oに費やしています。

投稿日時 - 2010-03-25 20:47:14

お礼

I80286様
再度のご教示、本当に有難うございました.
お蔭様で、コンパイラの必要が無いとおっしゃった意味がやっとわかりました. 化石世代の悲しさで、最近のPHP,Ruby,JavaScript などについては全く無知です.お恥ずかしい次第です.
早速、ご教示にしたがって取り組みたいと思いますが、私の用途に対しては、PHP,Ruby,Javaなどのうち、どれを選ぶべきでしょうか? 
なんどもお手数を掛けることについては、本当に申し訳ございません.
よろしくお願いいたします.

余談ですが、「インターネットの向こう側の人々でも使えるように、CPU時間の大半をユーザーI/Oに費やしています」とのご意見には全く同感です.
C#、C++、Visual Basicのどれをとっても、愚にもつかぬユーザーIO に
振り回されていると感じます. エディタでソ-スを書いて、コンパイル、リンクすると言うシンプルそのものだった昔に返りたい気持ちです.
では、これで失礼いたします. 御免ください.

投稿日時 - 2010-03-26 11:53:20

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(3)

> 私の用途に対しては、PHP,Ruby,Javaなどのうち、どれを選ぶべきでしょうか? 
ANo.1で回答した通り、任意精度数学関数を備えている PHP をお勧めします。

投稿日時 - 2010-03-29 16:10:30

お礼

有難うございました. ご教示にしたがって、PHPを勉強してみます.
途中で、余分な雑音がはいりまして、本当に恐縮です.

再度、お礼を申し上げます

投稿日時 - 2010-03-30 13:40:53

FORTRAN 77で育ち、Cコンパイラの日本語化を飯の種にし、現在もPHPやRubyの世界で現役SEをやっている者です。

「電子回路の回路網のレスポンスの検討」というお題ですが、強いてコンパイラを使う必要はないのではないでしょうか。
もしコンパイラを使いたいということでしたら、ANSI C から移行しやすいVisual C++をお勧めします。
けれども、有効数字を重要視するのでしたら、スクリプト言語のPHPをお勧めします。任意精度数学関数を備えているからです。

投稿日時 - 2010-03-25 16:26:33

お礼

i80286様

早速のご教示、有難うございました.
やはり、C++をお勧めなのですね.私も、このあいだまでは、前便で申し上げたとおり、ANSI C でソースを書いて、C++でコンパイルしていました.別にトラブルもなく動作していました.
                               C#、C++、Visual Basic に取り組んだのは、「時代遅れ」と言われそうだと、柄にも無く見栄を張っていたようで、お恥ずかしい限りです.

ところで「コンパイラを使う必要はないのでは」とのお言葉が気になります.お言葉の意味を再度ご教示いただけないでしょうか. お願いいたします
                                私の回路計算は、ほとんど数値計算となりますので、2分法によって答えを求めるのが普通です. ニュートン近似によるのが普通と思いますが、なぜか私は2分法に執着して、友人たちから「風変わり」と笑われています.

最近のCPUのおかげで、たいして時間もかからずに計算してくれますが、昔のIBMの360とか、富士通の230-25の時代には、夜帰る時に分厚いパンチカードを仕込んで帰ると、あくる朝にやっと計算が終わっていたのを思い出ています.

とんでもない話にそれて恐縮です.でも、この年になるとこんな昔のことをよく思い出します.普通なら相手にしてもらえませんが、I386さんならわかっていただけると勝手に思い込んでいます.お許しください.

それでは、再度のご教示をお待ちしています. よろしくお願いいたします.

投稿日時 - 2010-03-25 19:52:56

あなたにオススメの質問