![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
今、プログラミングを勉強中の初心者です。
以前C言語を勉強していました。そのときosはリナックスを使っていましたが、何にC言語を入力していたのか覚えていません。また、Javaを勉強中ですが、実際練習しようとしても何(例えばwordやmemopad)に勉強したJavaを入力したらつかえるのか分かりません。実際仕事で役立つのは、自分が使うパソコンにその言語を対象とするプログラミングソフトが入っていないと意味ないので、役立つのかな?っと思っています。
VBA語はなじみが深くexelVBAで使っています。あと、最近コマンドプロンプトというものがwimndowsに入っていることを知りました。これも文字を打ち込むことでパソコンが動くのでプログラミングソフトといえると思います。でも、memopadと入力しても動くのでいったい何語を対象としているのか疑問に思っています。
・Java, C,VBAなどそれぞれの言語が使えるプログラミングソフトにはどういうものがあるのか,・コマンドプロンプトは何語を対象としているのか,・2言語以上に対応しているプログラミングソフトがあるのか」という点について教えてください。
ちょっと頭が混乱していて的外れな質問かもしれませんが、アドバイスいただけたらうれしいです。
No.5ベストアンサー
- 回答日時:
> それらが、フリーでダウンロード可能なのか、
大抵の言語には、無料のコンパイラがあります。
> もし可能ならダウンロードして使ってみたいです。
とりあえず、Javaと、C/C++の無料版を以下にあげます。
コンパイラを直接使うと動きが分かりやすいこともあり、最初の言語の勉強にはいいかもしれませんが、
現実には開発環境で使う方が楽ですし、実務ではそれが普通なので、
開発環境で入手した方が役に立つのかなぁとは思います。
# 開発環境でもコンパイラは付いてますので、それを直接使うことは可能です。
■Java
・SDK (Sun Microsystems) コンパイラ等が入ってます
http://java.sun.com/javase/index.jsp
・Eclipse (Eclipse.org) 開発環境:上記SDKを含み、エディタなどが統合してあります
http://www.eclipse.org/
・NetBeansやJBuilderなど、他にも無料提供(ユーザ登録が必要なものも含め)はあります。
■C/C++ (C言語とC++は大抵同じコンパイラで両対応してます:C++/CLIやC#, Objective-Cなどはコンパイラ次第です)
・Visual C++ (Microsoft)
http://www.microsoft.com/japan/msdn/vstudio/Expr …
・GNU GCC (Minimalist GNU for Windows)
http://www.mingw.org/
他にも、Borland C++とかDigital MarsとかLSI Cとか…
Javaは事実上Sun Microsystemsのものが標準ですが、CやC++はいろいろとあります。
ただし、無料の有名どころはこのあたりです。
GCCはコンパイラとツールしかなく、Visual C++は統合環境を含みます。
なれると便利なのはVisual C++でしょうか。
Visual C++は有料の製品もあり、こちらはWindows用アプリなどが作りやすくなる機能が搭載されてますが、
言語の勉強で最初に触ってみる程度は無料のExpress版でも十分です。
ありがとうございます。
コンパイラなどダウンロードして
使ってみようと思います。
上手にプログラミングができるように勉強も
がんばりたいです。
お世話になりました。
No.4
- 回答日時:
No.2です。
Linux上のC言語のご経験があるとのことなので、参考にそのプログラミングから機械語(バイナリー)を得るまでを簡単に追ってみますね。
最初に viなどのテキストエディタでC言語プログラムを書きますよね。
その後、機械語(バイナリー=a.out)を得るためにコンパイルは..
(1)最初にテキストのプログラムを解釈して一度ニーモニックに翻訳します。
(2)次にアセンブラを使ってニーモニックをアセンブルして機械語を得ます。この段階で得られた機械語は「オブジェクト」と呼ばれます。
(3)このオブジェクトに必要な組み込み関数をライブラリ(に格納されている機械語)をリンカーでオブジェクトにくっつけて実行可能な機械語(バイナリー)が得る。
これら一連の作業を手助けしてくれるツールが make です。
>ExcelVBAは、テキストエディタとコンパイラ(インタープリター)が一緒になっていると考えてよいのでしょうか?入力もマクロの実行もこれ1つでできるので・・
(^_^)先のようにコンパイラーは機械語(WindowsならEXE形式のバイナリーファイル)得るものなので、ExcelVBAは、正確にはプログラミングに特化したテキストエディタとインタープリターがセットになっていると考えてください。
インタープリター本体は、Excelに組み込まれていてExcelが無いと実行できませんよね。これがインタプリター型言語の特徴です。
ありがとうございます。
大変勉強になりました。
実行ボタンを押すだけで、いろいろなことを
機械がやってくれていたのですね。
普段は意識しないですけど、過程を考えるのは
難しいですがとても有意義ですね。
お世話になりました。
No.3
- 回答日時:
本屋に行けば多くの手引書が出ていますのでプログラミングをお考えなら、
プログラムの概念について勉強される必要があるように思われます。
簡単に説明しておきます。
プログラミング言語について。
プログラミング言語の形式としては一般的に下記のようなものがあります。
(A)機 械 語
(B)アッセンブラー
(C)コンパイラー
(A)機械語形式
通常データと同じく何桁かの数値及び符号の組み合わせで表現します。
1命令はいくつかの部分に機能的に分けられており、命令の種類、記憶のアドレス等
処理に必要なかずかずの指定を行うようになっています。
<非常に解りにくく、プログラムを組むのに大変苦労します>
(B)アッセンブラー形式
機能的には機械語と大体同じ機能を持たせ、
その表現形式をより解りやすい形式にし、扱いやすいようにしたものです。
(C)コンパイラー形式
表面的には機械語の個々の機能から離れて、
もっと大きな単位で機能的にも形式的にも日常用語に近い形式で考えられたものです。
<現在はプログラミング言語と云えばこれを指します>
ありがとうございます。
言語にもそれぞれに特徴があるのですね。
機械語は、あまりコンパイルする必要性は感じませんが、
ただプログラムを作るのにとても苦労しそうですね。
勉強になりました。
No.2
- 回答日時:
こんにちは
最初に何からメッセージすべきかな(--;?
コンピュータは、プログラムによって動くものですが、本来は2進数で定義された機械語(マシン語またはバイナリー)で動くものなんです。
しかし、2進数ではプログラミングが難しい..
2進数は0と1の組み合わせですから、その羅列のパターンを覚えるのも困難なら2進数でデータを用意するのも困難です。
そこで、機械語と対に想像しやすい単語の一覧表を作り、プログラミングは、その単語をテキストデータを編集することで行ない、出来たものを一覧表から機械語に翻訳する様になって行きました。 その単語を「ニーモニック」と呼び、テキストデータのニーモニックを編集するものを「エディター」、自動的に一覧表に照して翻訳する事を「アセンブル」、翻訳してくれるものを「アセンブラー」と呼びました。
これが低レベル言語と分類されます。
以降、プログラムの作り易さを追求して、機械語と対ではなくひとつの単語でひとかたまりの機械語を生成するプログラミング言語が開発されていきます。
これらは高級言語と分類され、翻訳することを「コンパイル」、翻訳してくれるものを「コンパイラー」、この単語の定義を「コンパイラ型言語」と呼びました。
代表的なコンパイラ型言語には、FORTRAN, COBOL, BASIC, C(C++,C#), PASCALなどがあります。
そのうち、マイクロコンピュータ(マイクロプロセッサ)が開発されましたが、そのハードウェアを含むシステムは、メモリも小さくコンパイラを動かすことが難しかったので、メモリ使用効率のよい一度に翻訳せず少しずつ翻訳しては実行する方法を編み出しました。 この方法は、まるで外国語を通訳しているようなので、インタープリターを当てて「インタプリタ型言語」と呼びます。 BASICは、言葉が比較的優しく定義されていたので、この方法によく使われて、その昔は BASICといえば、インタープリタ型言語であるが常識のようなときもありました。現在では、SmallTalk, Java やVBA が代表的です。
というわけで、基本的にプログラムは、テキストエディタで編集して作るのが普通で、NOTEPADのようなテキストエディタでどんな言語でもプログラミングできてしまいます。 が、コンパイラーかインタープリターが無いと機械語(バイナリー)に変換できません。
コマンドプロンプトは、キーボードからコマンド入力して制御するコンピュータ環境(CUI)です。 一方、グラフィカルな画面でマウスで制御するWindows や MAC 環境(GUI)も同じコンピュータ環境です。
コンピュータの歴史を勉強されると理解が深まるかと思います。頑張ってください。
ありがとうございます。
プログラムはテキストエディタで作成可能だが、実際動かすにはコンパイラーもしくはインタープリターが必要なんですね。
ExcelVBAは、テキストエディタとコンパイラ(インタープリター)が一緒になっていると考えてよいのでしょうか?入力もマクロの実行もこれ1つでできるので・・
よろしければ教えてください。
No.1
- 回答日時:
> ・Java, C,VBAなどそれぞれの言語が使えるプログラミングソフトにはどういうものがあるのか,
Java言語によるソースコードは、テキストファイルですので、
「言語の入力」はそれこそメモ帳でも可能です。
そして、書いたものを動くようにするためには、コンパイラ(javac等)を使います。
例えばjavacはJavaのSDK(ソフトウェア開発キット)に入ってます。
但し、コンパイラを直接使うのは面倒な面もあり、
より便利に使うための開発環境(EclipseやNetBeans等)や、Ant等を利用することも多いかと思います。
C言語だと、GNUのgccやMicrosoftのVisual C++、Borland C++などが比較的有名です。
VBAはMicrosoft独自なので基本的にはMicrosoft Office用と考えてよいかと思います。
> ・コマンドプロンプトは何語を対象としているのか,
コマンドプロンプトは、プログラミングソフトというよりは、
OSのユーザインタフェースの一種かと思います。
例えば、
・GUIでアイコンをクリックするとアプリが起動する
・CUIでプログラム名を入力してEnterするとアプリが起動する
いずれも実現したいことは一緒で、異なる方法でそれを実現しています。
GUIが普及する前はコマンドプロンプトのようなCUIの方が一般的でした。
ただ、昨今のコマンドプロンプトは、あえて言えばWSH(Windows Script Host)でしょうか。
例えばVBScriptやJScript等の複数スクリプト言語に対応しています。
> ・2言語以上に対応しているプログラミングソフトがあるのか」という点について教えてください。
たくさんあります。
各プログラミング言語間には類似した特長などもありますし、
逆に一つの言語しかサポートしないものの方が少ない気もします。
「自社独自言語専門」の会社などもあるのでしょうが、
プログラミングソフトを作るような会社/団体は複数対応することも多いのでは。
例えば、Microsoft Visual Studio(前述Visual C++の統合パッケージ)では、
C、C++、C++/CLI、Visual BasicやC#、J#、各スクリプト言語…などに対応します。
# C、C++、C++/CLI等は、いずれも独立して国際規格で規定される別言語です。
GCC(GNU Compilation collection)ではC, C++, Objective-C, Fortran, Java, Adaに対応しています。
ありがとうございます。
とても丁寧で分かりやすいです。
私がプログラミングソフトと思っていたものは
コンパイラと呼ばれるものだと理解しました。
また、実際勉強した言語を使うには
コンパイラが必要なこともわかりました。
それらが、フリーでダウンロード可能なのか、もし
可能ならダウンロードして使ってみたいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java プログラミングのプの字も知りませんが、プログラミングを勉強したいです。とりあえず、学ぶものを決めない 3 2022/11/04 13:10
- その他(プログラミング・Web制作) 次に、楽天のアジャイル就活に参加して、1日で内定を獲得できる。私は大企業に就職できる? 2 2022/04/17 13:38
- Windows 10 パソコン得意な人どうやって勉強したか教えてください 13 2022/04/26 00:41
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- その他(ソフトウェア) ジャストシステムのATOKについて 1 2023/03/18 14:24
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- TOEFL・TOEIC・英語検定 高校一年生レベル TOEFL IBTをめざす 2 2022/10/13 19:55
- C言語・C++・C# exeファイルが作れない(windows10) 6 2022/08/13 08:47
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GPIB制御
-
アプリのプログラムを見るには...
-
機械語とバイオスの関係と歴史
-
InstallShield ってプログラム...
-
「フラグをたてる」とは?
-
バッチファイルでUSB挿入時に実行
-
再配布できないファイルの作製
-
「Diffをとる」とは?
-
オブジェクト指向って何ですか?
-
brotherのマシニングセンタとP...
-
自分の声が遅れて聞こえてくる...
-
シンクライアントとクラウドコ...
-
Windows7の画像処理ソフトにつ...
-
Photoshopで、できますか?
-
例外アプリケーションエラーを...
-
マルチコアCPUをシングル化
-
インテル マネジメント エンジ...
-
autoCAD macの日本語版について
-
0除算して、落ちるプログラムと...
-
65536は2の何乗なのでしょうか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Photoshopで、できますか?
-
バッチファイルでUSB挿入時に実行
-
アプリのプログラムを見るには...
-
Bluestacks内でダウンロードし...
-
GPIB制御
-
iTunesがノートンにブロックさ...
-
例外アプリケーションエラーを...
-
インテル マネジメント エンジ...
-
brotherのマシニングセンタとP...
-
BIOS.binをバイナリエディタで...
-
マルチTIFを一枚のTIFに...
-
再配布できないファイルの作製
-
C言語学習用のフリーソフト
-
「Diffをとる」とは?
-
あるフリーゲームをプレイ中に...
-
Visual Basic.netで英単語学習...
-
JPGで立ち上がるプログラムを元...
-
PCでスマホやiPhoneのアプリ...
-
MpcStarのアンインストール
-
InstallShield ってプログラム...
おすすめ情報