私はプログラミングの初心者であり、用語をよく理解していません。CやC ++などのコンパイル済み言語で記述されたソースコードがプログラムと見なされるかどうかを知りたいのですが。そうでない場合は、誰かが理由を説明できますか?
私はプログラミングの初心者であり、用語をよく理解していません。CやC ++などのコンパイル済み言語で記述されたソースコードがプログラムと見なされるかどうかを知りたいのですが。そうでない場合は、誰かが理由を説明できますか?
回答:
ウィキペディアのプログラムのエントリを参照してください:(私は太字を追加しました)
コンピュータプログラムは、コンピュータによって実行されたときに特定のタスクを実行する命令の集まりです。コンピュータが機能するにはプログラムが必要であり、通常は中央処理装置でプログラムの命令を実行します。
コンピュータプログラムは通常、コンピュータプログラマーによってプログラミング言語で書かれています。人間が読める形式のソースコードのプログラムから、コンパイラはマシンコード(コンピュータが直接実行できる命令で構成される形式)を導出できます。
したがって、「プログラム」はコンピュータが実行する一連の命令であり、「ソースコード」は人間が読めるバージョンの命令です。
CやCPPなどのコンパイル済み言語で記述されたソースコードがプログラムと見なされるかどうかを知りたいのですが。
はい、そうです。
だが
「コンピュータが私のプログラムを実行し、プログラムを[eg] Cで記述し、ソースコードがコンピュータへの命令であることを確認する」と、この考え方の危険が迫っています。
そして、これは私たちの多くが20世紀の何十年にもわたって考えてきたことです。この10年ほどで学んだことは、他のプログラマーがソースコードの主な対象者であることです。つまり、そのソースはプログラムであり、劇場でプログラムを入手するのと同じように、他の人々に何が起こっているのかを伝えます。ソースコードの美しさは、それがプログラムであるだけでなく、コンピュータへの一連の指示でもあるということです...
それがそうであるかどうかは、コンテキストに依存します。このように考えてください。概念の正式な名前が何であるかを忘れてしまいましたが、言葉には何かが何であるかではなく、何がそうでないかを表す意味があるという言語の理論があります。赤いリンゴは赤ではありません。まあ、赤ですが、青ではなく、緑ではないからです。それが本当かどうかは無視してください。ほんの一瞬だと思い込んで、その文脈での質問について考えてください。
その概念を考えると、ソースコードを家の設計図と比較できます。他の青写真のスタックから青写真を見ていて、「これは家ですか?」と尋ねると、他の青写真は商業ビル、橋などの場合、答えは「はい」になります。青写真は他のすべてのものを表すものではなく、家の側面が他の青写真と区別するためです。
ただし、家の設計図は、実際に立てることができる実際の木材や乾式壁で作られた家とは異なります。設計図と実際の家の違いが意味のある場合があります。計画と成果物には違いがあります。
コンパイルされた言語でのプログラムのソースコードが青写真のように同じように、ライブラリ、カーネルモジュールなどと比較すると、ソースコードとプログラムは概念的にまったく同じです。しかし、ソフトウェアがどのようにコンパイル、設計、および配備されるかを見てみると、2つは同じではありません。繰り返しますが、計画と成果物には違いがあります。
tl; dr:あるものとそれが表すものは同じものと見なされる場合もあれば、そうでない場合もあります。
ソースコードは、元のコード行(人間が作成したもの)の一般的な用語です。ソースではない他の種類のコードは、翻訳または別のプログラムによって作成される場合があります。
知的財産はさらに広く、ソースコードと他のコードまたはデータの両方を含めることができます。
プログラムは、その完全性において他のコード(ソースまたはその他)と区別されます。プログラムは、実行できる(または実行するように意図されている)のに十分なコードです。すべてのコード(ソースまたはその他)が実行するのに十分な完全性を表すわけではありません。たとえば、ライブラリは他のコードと組み合わせて使用することを目的としているため、実行できない(意図されていない)ため、一般にプログラムとは見なされません。
この完全性main
は、オペレーティングシステムによってプログラムのエントリポイントとして使用される
一般的に、プログラムが実行されているとき、それはプロセスと呼ばれます。
ソースコードは、ある好ましいれるソフトウェアの形態ヒトソフトウェア開発者がされている作業します。洞察は、ソフトウェア開発は社会的プロセスであり、ソースコードは社会的概念であるということです。ソースコードは、コンピューターではなく、主に人間(開発者の仲間、または同じプログラムで数か月間作業している自分)向けに作成します。Cでコーディングされたプログラムの場合、.c
Cファイルと.h
ヘッダーファイルが(常にではないが)多くの場合、Makefileもソースコードです。しかし、時々、メタプログラミング手法が使用されます。あるプログラムがCコードを生成し、次に入力そのジェネレーターはソースコードと見なされます(そのジェネレーターの出力がCコードであっても)。2つの例:問題の解析にパーサージェネレーター(GNU bisonなど)を使用する場合、そのジェネレーターの入力ファイルはソースコードです。または、小さなawkまたはgawkスクリプトを記述して、sqliteデータベースから 、生成されたヘッダーの大きな宣言などに変換されるデータを抽出することもできます。そのデータベースにはソースコードが含まれます。.y
enum
コンピュータプログラムは対照的には、それを実行しているコンピュータに関連しています。これは通常、いくつかのソースコード(いくつかのプログラミング言語で記述され、これらは技術文書で英語で記述された仕様です-ソフトウェアツールではなく、C11のn1570ドラフトを参照してください)をバイナリ実行可能ファイルにコンパイルすることによって取得されます。
フリーソフトウェアについても読んでください。既存のフリーソフトウェアプロジェクトのソースコードを調べてください(githubまたはsourceforgeを参照してください)。