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

このQ&Aのポイント
  • フォートランで育って、その後、不承不承ながら ANSI のC言語へ移行した化石世代です。最近になって、またパソコンの虫がうずき始めました。老化した頭には、あのややこしい IDE の操作を理解するのは一仕事でしたが、楽しくプログラミングができるようになりました。
  • 私のやりたい計算は、電子回路の回路網のレスポンスの検討です。勉強不足とお叱りを受けるかもしれませんが、どうもこのコンパイラは理工系の数値計算にはあまり向いていないような気もします。C++か、C#を使うべきなのでしょうか。
  • Visual Basicを主に使っていますが、初期データの入力や計算結果の表示などで困ることもあります。どのコンパイラを使うのが便利なのか、またVisual Basicはこの用途に向いているのか教えていただけませんか。
回答を見る
  • ベストアンサー

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

時代遅れ、勉強不足とのお叱りを覚悟の上で質問します.                私は、フォートランで育って、その後、不承不承ながら 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 は、こんな用途には不向きなのでしょうか? どなたか、この辺の事情を教えていただけませんでしょうか.「認識不足だ.その考えは間違ってるよ」とお叱りは覚悟しています. なんとか頭脳の老化をすこしでも食い止めたいとの老人のはかない希望を汲んで、お力添えをお願いします. 忌憚のないご意見をお待ちします. よろしくお願いします. 使用している環境は次のとおりです. NEC ValueStar CPU Pentium Memory 2GB HDD 250GB X 2

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

  • ベストアンサー
noname#111181
noname#111181
回答No.2

>> ところで「コンパイラを使う必要はないのでは」とのお言葉が気になります.お言葉の意味を再度ご教示いただけないでしょうか. お願いいたします << Javaをはじめとし、VBやVC++など、最近のコンパイラは中間コードを吐き出すだけです。CPUが解釈できるネイティブなコードを出すわけではないので、演算速度からみればインタプリタと大差ありません。(Intelの出している純正アセンブラを使えば最適化されるでしょうが、素人に手の出せる値段ではありません) 即実行型ファイルをつくりたいのであればコンパイラを使うメリットはありますが、.NET Frameworkのバージョンを気にしなければならないなど、あらたに学ばなければならない内容がかなりあります。 一方、PHP, Ruby, JavaScriptなどのスクリプトが多言語は、かつてのインタプリタと同様、編集即実行ということができますから、トライ&エラーでプログラムを組むには適していると言えます。 私も、朝一番で見る COMPILE ERROR の印字に何度も泣かされつつ、CPU時間をめぐる争奪戦を繰り広げたクチなので、昨今、こんな汚いコードでよくもまあスピーディに解いてくれるものだと、ハードウェアの進歩に感心することしきりです。アルゴリズムの基本的な部分は、ここ30年ほとんど進歩していないとも言えます。 むしろ、コンピュータの働きをまったく知らない“インターネットの向こう側の人々”でも使えるように、CPU時間の大半をユーザーI/Oに費やしています。

red_neck
質問者

お礼

I80286様 再度のご教示、本当に有難うございました. お蔭様で、コンパイラの必要が無いとおっしゃった意味がやっとわかりました. 化石世代の悲しさで、最近のPHP,Ruby,JavaScript などについては全く無知です.お恥ずかしい次第です. 早速、ご教示にしたがって取り組みたいと思いますが、私の用途に対しては、PHP,Ruby,Javaなどのうち、どれを選ぶべきでしょうか?  なんどもお手数を掛けることについては、本当に申し訳ございません. よろしくお願いいたします. 余談ですが、「インターネットの向こう側の人々でも使えるように、CPU時間の大半をユーザーI/Oに費やしています」とのご意見には全く同感です. C#、C++、Visual Basicのどれをとっても、愚にもつかぬユーザーIO に 振り回されていると感じます. エディタでソ-スを書いて、コンパイル、リンクすると言うシンプルそのものだった昔に返りたい気持ちです. では、これで失礼いたします. 御免ください.

その他の回答 (2)

noname#111181
noname#111181
回答No.3

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

red_neck
質問者

お礼

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

noname#111181
noname#111181
回答No.1

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

red_neck
質問者

お礼

i80286様 早速のご教示、有難うございました. やはり、C++をお勧めなのですね.私も、このあいだまでは、前便で申し上げたとおり、ANSI C でソースを書いて、C++でコンパイルしていました.別にトラブルもなく動作していました.                                C#、C++、Visual Basic に取り組んだのは、「時代遅れ」と言われそうだと、柄にも無く見栄を張っていたようで、お恥ずかしい限りです. ところで「コンパイラを使う必要はないのでは」とのお言葉が気になります.お言葉の意味を再度ご教示いただけないでしょうか. お願いいたします                                 私の回路計算は、ほとんど数値計算となりますので、2分法によって答えを求めるのが普通です. ニュートン近似によるのが普通と思いますが、なぜか私は2分法に執着して、友人たちから「風変わり」と笑われています. 最近のCPUのおかげで、たいして時間もかからずに計算してくれますが、昔のIBMの360とか、富士通の230-25の時代には、夜帰る時に分厚いパンチカードを仕込んで帰ると、あくる朝にやっと計算が終わっていたのを思い出ています. とんでもない話にそれて恐縮です.でも、この年になるとこんな昔のことをよく思い出します.普通なら相手にしてもらえませんが、I386さんならわかっていただけると勝手に思い込んでいます.お許しください. それでは、再度のご教示をお待ちしています. よろしくお願いいたします.

関連するQ&A

  • Visual Studio 2008につまれているコンパイラを知りたい

     今日は、Cの初心者です宜しくお願いします。  win xpでVisual Studio 2008を使っています。  でもこのアプリケーションにつまれているコンパイラを使ってコマンドプロンプトからも使って色々とプログラム作 成の勉強をしたいのですが、例えば、gccというコンパイラなら>gcc abc.cとかけば、実行ファイルが出来ますが、 Visual Studio 2008 ではなんというコンパイラがインストールされているか分かりません。  どこから探してやればコンパイラの名前が分かるのでしょうか。  色々とそれらしきフォルダを探してもコンパイラらしきものが見当たりません。  他のIDEではフォルダを探してすぐに分かったのですが、、、、  宜しくお願いします。

  • scilabという科学ソフトとコンパイラ

    MATLABに近い動作をする科学系のフリーソフトのscilabについてお尋ねします。 最近、scilabをインストールすると、intelのMathkernel libraryをネットから取りよせようと動作したり、c言語、Fortranのコンパイラがインストールされていることが前提だったり、つまりscilabをしっかり動作させるためのツール(計算環境)を外に求めるようです。 一応、scilab自体のインストールはできるようですが、しっかり動作させるには何かが不足しているのかもしれないと思います。 scilabの使用にについて前提条件としてそのようなことがあるのでしょうか。どこかに書いてあるでしょうか。もしインストール時にない場合はあとからインストールしてもいいでしょうか。またcコンパイラはbcc55でもいいでしょうか。 よろしくお願いします。

  • コンパイラオプション? VC2005設定?

    Visual Studio 2005で MFCを使って、πの計算や、大きな桁の計算を高速で行う為に、64bitのコードを生成したいのですが、普通にコンパイルするとRelease Win32でコンパイルされると思います。 設定方法について詳しく書かれているサイトや書籍をご存じの方教えて下さい。 make出力は可能なのでしょうか? VC6にあったような・・・ コンパイラオプション? 環境 マシン Xeon 64bit Windows Vista Ultimate VS2005 C++ MFCアプリ

  • コンパイラの違いについて

    こんばんはです。 実は、ビジュアルスタジオで組んだCソースをBolrand C++コンパイラで組んでるPCで実行すると、違った結果が出てきてこまってます。 visualstudioでもBolrandでも、ソースのコンパイルはエラーなしでとおります。 しかし、実行すると、結果が違うのです。これって・・・? 結果と言うのはstrcmpでかえってくる数字なのですが、studioでエグゼつくって実行すると、0も1もー1も返ってきて判断分岐できるのですが、Bolrandの方でエグゼつくって実行すると、0しか返ってきません。なので、分岐は0の時だけの対応しかできないのです。 もっとくわしくいいますと、studioの方もBolrandの方もコンパイルはプロントでおこなっており、studioはcl test.c Bolrandはbcc32 test.c と言う具合に行ってます。 もしかして、古さの違いとかってあるのです?? 昔は構造体のコピーってa = bってできなかったではないですか? 今はa = bできますよね。そういう感じなのでしょうか?? ご存知の方いらっしゃいましたらアドバイスいただきたいです。 よろしくおねがいいたします。

  • C言語のコンパイラ教えて

    お世話になります。OSは WindowsXP SP3 です。 昔(?)、UNIX 上でC言語を便利に使ってたんですが、パソコン上でも使えるのでしたら、お勧めのコンパイラ(の他に必要なものも)を教えてください。なるべくならフリーソフト希望。 Cといっても色々あるようですが Brian W. Kernighan & Dennis M. Ritchie "THE C PROGRAMMING LANGUAGE" で学習したものを使いたく、宜しくお願いします。

  • 64ビットPCでのフォートランコンパイラ

    仕事柄いまだにフォートランのプログラムソースを書いています。物理シミュレーションを行っており、計算機の高速化に期待しているところです。地球シミュレータなどのメインフレーム?ではなく、高速のパソコンでも仕事ができるような程度のものです。 さて、質問ですが、最近、64ビットPC機、64ビット対応OSが手ごろな価格でも出ています。ノートPCでさえ8メガのメモリを積んでいるようです。この場合、フォートランコンパイラについても64ビット対応である必要があるのでしょうか。インテル、Visual Fortran, FTN95, G95, Gfortranなど有償・無償いろいろあると思います。64ビットOS用のコンパイラがあるのでしょうか。それとも従来の32ビット版でも十分な計算速度が出るでしょうか。よろしくお願いします。

  • ANSI Cと学ぶのに適した本

    こんにちは。 ANSI Cを学ばなければならなくなったのですが ANSI Cが標準規格であるということ以外、 どういうものなのかということがわかりません。 プログラムの書き方が異なるのでしょうか。 それともエディター・コンパイラーによって異なるのでしょうか。 もう一点。 ANSICを学ぶ上で解説付の問題集の購入を検討しているのですが オススメの物があれば紹介して頂ければ幸いです。 初歩的な質問で申し訳ないですが、宜しくお願いします。

  • C言語とSQLを勉強したいのですが、コンパイラのダ

    C言語とSQLを勉強したいのですが、コンパイラのダウンロードをどうすれば良いか分かりません。 閲覧ありがとうございます。 プログラミング超初心者です。 本日、この2つの言語を勉強しようとVisual Studio community 2017(Windows版)をダウンロードしました。 SQLは入っていたのですが、C言語が入っていないので調べたところ、Expressでは使用可能ということが分かりました。 この2つは、同じパソコンに入れても大丈夫でしょうか。 優先順位は、C言語>SQL ですがデータベースには触れておきたいため、どちらも入れたいです。 また、他の方法があれば教えていただきたいです。 超初歩的な質問で大変申し訳ございませんが、何卒よろしくお願いします。

  • シンプルなC++のコンパイラを教えてください!

    C++、プログラミングの全くの初心者です。。 今、visualC++2005をインストールして、Win32アプリケーションを作成するため、 http://freepg.fc2web.com/cpp/topic_vce_001.html に従って、SDKのインストール→“corewin_express.vsprops”の修正まで来ました。ですが、“corewin_express.vsprops”のファイルが開くことができず、困っています。インストールすべきプログラムを知っている方、その他対処法を知っていたら教えてください。 それから、わたしは高度なプログラムを作ることが目的としているわけではなくて、「点が点滅するプログラムを作る」程度のことができれば十分なのですが、それでもVisualC++を使うのがいいのでしょうか?? メモ帳とコマンドプロンプトでほんの少しjavaをかじっただけなので、VisualC++は私にとっては機能が多すぎて、逆に混乱してしまっています。。というか、正直Win32アプリケーションが使う必要があるのかも理解できていないのが現状です… もっとシンプルなC++のコンパイラ(できればメモ帳つかうもの)があれば教えていただけたらうれしいです。(googleなどで検索して、VisualC++がいいとあったので、ひとまずVisualC++をインストールしました。) 勉強不足で申し訳ないのですが、どうかおねがいします!!

  • RL-C並列回路のインピーダンス

    RL-C並列回路のインピーダンス RLが直列、Cがそれに並列につながれていて、電源には正弦波発振器がある回路について、回路のインピーダンスは、 Z= (R + jωL) / (1 - ω^2LC + jωRC) であるということは調べてわかりました。この式を有理化すれば分子だけにjが表れることになります。質問したいことは、このjというものはどのように計算すればいいのでしょうか?パソコンもしくは関数電卓を使わなければ、この式を計算した答えは求めることができないのですか?もし手計算で求めることができるのならば教えてください。 ちなみに、複素数を勉強したのはかなり前なので、(実は)単純なことに気付いていない可能性もあります。そのことを念頭に置いて考えていただけたらなと思いますので、よろしくお願いいたします。

専門家に質問してみよう