アプリ版:「スタンプのみでお礼する」機能のリリースについて

すみません。C言語で、コーディングした後に、コード生成が行われるのですよね?教えていただけると嬉しいです。

A 回答 (11件中1~10件)

コーディング=プログラムを記述


コード生成は自動では行われません、開発ツールの生成開始ボタンをクリックします。
コーディングが完璧ならば、一発で実行形式のファイルが生成されます。

幾つかエラーが出力されると、実行ファイルは出来ません、
もう一度、コーディングを見直す必要があります。
これを繰り返して、エラーがだ無くなると、目的の実行ファイルが出来ます。

コーディングが完璧でもヘッダーやライブラリーの不備でもエラーを出す場合もあります。

その他開発ツールの設定不備でもエラーが出ます、
例えば漢字を扱うには、そのように設定する必要があります。
    • good
    • 0

C言語でプログラムを記述した物を、コンパイルすれば、実行型のオブジェクトが生成されます。


UNIX環境なら、a.outがそのコードです。
コンピュータは、ヒトの都合で作った高級言語を直接実行できませんから、変換してもらう必要があるんです。
    • good
    • 1

他の回答者の皆さんがなぜ混乱しているかというと、「コード生成」をどういう意味で言っているのかがわからないからでしょう。

コード生成とは、文字通り目的の「コード」を生成するものではあるのですが、その目的のコードが何であるかがわからないと皆さんは仰っているわけです。

とはいえ、各回答の意味を理解できない程度の知識量ということは、恐らく目的のコードは実行バイナリ形式の機械語のことでしょう。その前提でお話しします。

>C言語で、コーディングした後に、コード生成が行われるのですよね?

日本語の問題だけかもしれませんが、正確には、コード生成は「行わせる」ものです。コンピュータさんは、あなたがコーディングが終わったのを見計らって勝手にコード生成してくれたりはしません。あなたが積極的に「コード生成しろ」と命令をしない限りはコード生成はされません。

なので、次の文がより正確です。

C言語によってプログラムを作成する場合は、テキストエディタなどでコーディングを行い、その後コンパイラなどのソフトウェアを起動してコーディングによって作成したソースコードをもとにコード生成を行う。

なお、ぶっちゃけた話、独学でプログラミングを勉強するだけであれば、ここら辺の用語にはこだわる必要はなく、手順だけ覚えておけば十分です。
    • good
    • 0

>ちなみに、コーディング→コード生成という事でしょうか?教えていただけると嬉しいです。


回答:はい、そうなります。コード生成は、正確には「オブジェクトコードの生成」といえば意味が通じやすくなります。
コーディングはソースコードの生成と同じ意味です。

コーディング→コンパイル

ソースコードの生成→オブジェクトコードの生成
と同じことです。

>コード生成は、コンパイルと同じではないのでしょうか?教えていただけると嬉しいです。
回答:はい、同じです。コード生成は、正確には「オブジェクトコードの生成」といえば意味が通じやすくなります。
    • good
    • 0

>>コード生成は、コンパイルと同じではないのでしょうか?教えていただけると嬉しいです。



一般で言うと、コードって意味の有る文字列や数字列の事です。

今回質問のコードは、アルファベットの文字列でC言語の文法に則った文字列でもあるし、2進数の0・1の羅列で有る機械語でもあり、ドッチもコードです。

なので、コーディングした後に出来上がっているアルファベットの文字列もコードだし、それをコンパイラーを使って0・1の羅列で有る機械語の塊にしたのもコードですよ。
    • good
    • 0

>>コード



貴方が言ってる「コード」と言う言葉は、何をイメージして使ってます?
それが不明なのです。
    • good
    • 0
この回答へのお礼

コード生成は、コンパイルと同じではないのでしょうか?教えていただけると嬉しいです。

お礼日時:2023/02/25 15:22

>ちなみに、コーディング→コード生成という事でしょうか?


ちゃんと回答読んでますか?

もう一回書きますよ

ソースコードを人間が作成して
コンパイラーでオブジェクトコードに変換します

貴方のいうコード生成とはなんですか?
貴方の使っている言葉の意味は貴方にしかわかりません
    • good
    • 0
この回答へのお礼

コード生成は、コンパイルと同じではないのでしょうか?教えていただけると嬉しいです。

お礼日時:2023/02/25 15:22

C言語のコンパイラは、ソースコード(プログラム)をマシン語に変換する過程を経て、実行可能なバイナリコードを生成します。

この過程を「コンパイル」と呼びます。

具体的には、C言語のソースコードを入力として、コンパイラが構文解析・意味解析を行い、その結果を元に中間コードを生成します。中間コードは、人間が直接理解することはできない機械語ではありませんが、アセンブリ言語に近い形式で表現されます。中間コードは、最適化などの処理が施された後、オブジェクトファイルに書き出されます。

オブジェクトファイルには、中間コードの他にも、必要なライブラリやシステムコールなどが参照されたり、シンボルテーブルと呼ばれる情報が含まれます。オブジェクトファイルは、最終的にリンカによって結合され、実行可能なバイナリコードが生成されます。

つまり、C言語でコーディングした後、コード生成はコンパイルとリンクの過程を通じて行われます。
    • good
    • 0
この回答へのお礼

ちなみに、コーディング→コード生成という事でしょうか?教えていただけると嬉しいです。

お礼日時:2023/02/25 12:55

C言語開発環境上でコンパイル実行を指示しないとコード生成は行われません(C言語開発環境を手に入れて使用可能な状態にしておきましょう)。



コーディングをすれば自動でコードが出来上がるというモノではなく、テキストで書かれたC言語ファイルを実行形式ファイルに変換しないといけません。そういう変換ツールがコンパイラと呼ばれています。このツールへC言語が書かれたテキスト・ファイルを引き渡し、変換をお願いするわけです。大昔はコマンドを叩いて変換していました。今の時代はもっとクールな開発環境があるはずです。ボタン一つ、マウス・クリックでコンパイルが始まると思います。

コンパイル(広義)というのはC言語が書かれたテキスト・ファイルをコンピュータが実行可能なバイナリ・ファイルへ変換する一連の作業を呼びます。コンパイラと呼ばれる開発環境では、言語が書かれたテキスト・ファイルを一気に変換するのではなく、徐々に(段階的に)変換していきます。この段階的な工程はプリ・コンパイル、コンパイル(狭義)、アセンブル、リンクと分けるのが一般的です。そしてこの工程毎に「プリ・プロセッサ」「コンパイラ(狭義)」「アセンブラ」「リンカー」と呼ばれるツール(これも実行形式ファイルでしかない)があります。C言語開発環境では、分かり切った作業を省き開発効率をあげるために、プログラマからコンパイルの段階を隠蔽しています。問題が生じた時のみ確認できるようにしているわけです。各段階でエラーがあると処理を中断し、エラー内容を保存します。代替のC言語開発環境では、エラー内容をプログラマに見える形で提示する仕組みをサポートしています。しかし、これらツールをバラバラに手で起動する事も可能です。自分で調べないと行けなくなりますし煩雑に成りますからお勧めしません。C言語開発環境上ではプログラマが意識せずとも各段階が自動的に起動され、実行形式ファイルまでが出来上がる様になっている(開発環境セットとして)のが一般的です。

不思議だと思う辺りはどのあたりでしょうか?
詳細に説明可能ですが長くなるのでこの辺りにします。

以上、ご参考になれば。
    • good
    • 0
この回答へのお礼

ちなみに、コーディング→コード生成ですよね?教えていただけると嬉しいです。

お礼日時:2023/02/25 12:41

コーディング=ソースコードを書く作業。


その後でコンパイラによって擬似機械語に展開。

ローダによってメモリにローディングされる段階で機械語に変換。
    • good
    • 0
この回答へのお礼

ちなみに、コーディング→コード生成という事でしょうか?教えていただけると嬉しいです。

お礼日時:2023/02/25 12:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!