ソース‐コード【source code】
ソースコード(そーすこーど)(yen loan)
基本ソフト(OS)やアプリケーションソフトなどのコンピュータプログラムを開発するにあたって、その動作のすべてを記述したもの。通常、人間が読み書きできるテキストファイルの形式で保存される。
ソースコードで使われる言語は人間には意味が分かるが、コンピュータはそのままでは理解することができない。そこで、ソースコードを機械語に翻訳して、コンピュータが理解できる形式に変換したものがOSやアプリケーションソフトとして配布される。
一般に、機械語は人間にとって解読が不可能であるため、開発者がソースコードを公開しない限り、コンピュータプログラムの詳細な設計図を知ることはできない。最近では、ソースコードを公開しないマイクロソフトの開発手法に対して、ソースコードを公開するリナックスなどの「オープンソース」と呼ばれる開発手法が広がりを見せている。
マイクロソフトのOS「ウィンドウズ」のソースコードが、厳重に管理されているにもかかわらず、インターネットに流出していることが明らかになった。マイクロソフトからソースコードが提供される特別な契約を結び、アプリケーションソフトを開発していた会社の関与が疑われている。
(2004.02.16掲載)
ソース・コード
ソースコード
実行コードの元(ソース)となるプログラムのこと。コンピュータが直接実行できるのは、数値の連なりからなる機械語だけであり、実行コードは一般に機械語で構成される。しかし機械語は人間にとって分かりにくく、作成や保守が難しい。そのため、より人間に理解しやすい形式でプログラムを記述し、それをソフトウェアで処理して機械語に翻訳する開発方式が一般に採用される。この人間に理解しやすい形式で記述されたプログラムがソースコードである。
ソースコードがあれば、プログラムの動作を理解したり、再利用や改良を加えるなどの作業が容易になる。ソースコードを広く公開し、さらに改変や再配布を許可するなどの一定の要件を備えたソフトウェアを「オープンソースソフトウェア」と呼ぶ。オープンソースソフトウェアについては、Open Source Initiative(OSI)という非営利団体が定義を設けている。
関連見出し
オープンソースソフトウェア
フリーソフト
関連URL
Open Source Initiative(http://www.opensource.org/)

ソースコード
【英】source code, source program
ソースコードとは、計算機を動作させる実行形式のプログラムの元となる、プログラミング言語の記述仕様に従って記述された文書のことである。
計算機は、機械語と呼ばれる中央処理装置が直接解釈できる命令を実行することによって動作する。しかし、人間にとって、機械語を扱うことは非常に難しい。そのため、プログラミング言語を用いてソースコードの命令を記述し、そのソースコードを機械語で書かれた実行形式のプログラムに変換してから計算機に与える、という手順がとられている。
プログラムは、多くの場合、コンパイルを経て生成されたネイティブの機械語の状態で実行される。コンパイルされる前のソースコードはテキスト形式のデータであり、テキストエディタなどで読むことができるが、実行形式のプログラムはバイナリ形式であり、テキストエディタなどでは読むことができない。また、コンパイルを経る手順の他にも、ソースコードを逐次、機械語に変換しながら実行するインタープリタ形式と呼ばれる場合がある。インタープリタ形式は、インタープリタ型言語と呼ばれる種類のプログラミング言語において用いられる形式である。この場合は、実行形のプログラムがすなわちソースコードであるということになる。
あるアプリケーションプログラムを構成するソースコードは、通常は、モジュールごとに複数のテキストファイルに分割されている。個々のファイルにおいて記述されるプログラムコードは、使用するプログラミング言語に応じて区別され、それぞれのプログラミング言語が規定する文法に基づく命令文などが記述されている。文法通りに記述されているソースコードは、それぞれの言語ごとに用意されているコンパイラやインタープリタによって処理される。ソースコードがコンパイルされると、ネイティブの機械語(オブジェクトコード)が出力され、リンカによって実行ファイルに変換される。
商品として有償で提供されているソフトウェアの多くは、利益を逸しないためなどの理由で、ソフトウェアの改変や複製が不可能な状態で提供されている。このようなソフトウェアはプロプライエタリソフトウェアと呼ばれるが、その多くは、ソースコードを提供せずに機械語で書かれた実行形式のプログラムだけを配布することで複製などを不可能にしている。
プロプライエタリソフトウェアとは逆に、プログラムを誰でも利用したり改変や改良を加えたりできるように、ソースコードが敢えて公開されているソフトウェアは、オープンソースソフトウェア(OSS)と呼ばれている。
また、Webページの構造を記述しているHTMLやXHTMLなどの文書のソースコードについては、Webブラウザの機能を用いたりファイルをダウンロードしたりすることで簡単に見ることができる。
ソースコードは、プログラムの直接的な元となる文書であり、人間によって改良、変更などの手が加えられる重要な文書である。そのため、ソースコードの可読性が高いことが重要視されている。可読性を向上させるための約束事は、コーディング規約などと呼ばれており、それぞれの組織やプロジェクトごとにあらかじめ設定される。プログラミング言語の種類によってもコーディング規約の内容は異なるが、コーディング規約として示される具体的な例としては、インデントの用い方をはじめ、変数や関数名、クラス名の命名方法、あるいは括弧の使い方、といった事項がある。なお、コーディング規約を包含するより広義のコーディングのやり方を、プログラミング作法と呼ぶ場合もある。
ソースコード
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/10/06 05:43 UTC 版)
ソースコード(英: source code)は、プログラミング言語で書かれた、コンピュータプログラムを表現する文字列(テキストまたはテキストファイル)である。
注釈
- ^ ただし、動的なウェブページの制御に使われるプログラミング言語であるJavaScriptのソースコードは、ウェブサイト作成に使われるHTMLやCSS同様、本来ウェブブラウザでいったんローカルにダウンロードして実行するものであるため、閲覧可能なウェブページのものであれば誰でも見ることが可能である。
- ^ オープンソース支持者の考えでは、例えば有用なソフトウェアの場合、ソースコードを公開すると直ちに世界中のソフトウェア開発者が興味を引かれてソースコードを読み漁るので、重要なバグは直ちに修正される。足りない機能は直ちに追加される。レイモンドはこのことを論文「伽藍とバザール」の中で「目玉の数さえ十分あれば、どんなバグも深刻ではない」[1]と言い表した。これはLinuxのような成功したオープンソースプロジェクトに共通する性質である。
- ^ 軍用機の例では日本の国産戦闘機開発計画FS-Xの交渉に際して、原型となった戦闘機F-16の飛行制御用プログラムについて、ソースコードの閲覧を許すソースライセンスの供与の可否が米国で問題となり、否決されたという例がある。
出典
- ^ Source code (also referred to as source or code) is the version of software as it is originally written (i.e., typed into a computer) by a human in plain text (i.e., human readable alphanumeric characters). LINFO. Source Code Definition.
- ^ 島内剛一「数学者用ワープロSPE」『数学』第40巻第3号、日本数学会、1988年7月29日、 72頁、 doi:10.11429/sugaku1947.40.264、2019年5月2日閲覧。
ソースコード
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/07/15 10:19 UTC 版)
アセンブリ言語で書かれている。MACRO-11アセンブラの条件付アセンブリ機能とマクロプログラミング機能を多用することで、構成変更の自由度が向上しており、通常の機械語にはない高度な命令も使用可能になっている。OSとデバイスドライバのコメントを除去したソースコードもOS配布物に含まれており、"SYSGEN" というプログラムでOSやドライバをユーザーが設定した構成でビルド(システム生成)できる。開発者向け文書には、コメント付きのカーネルリストが含まれていた。
※この「ソースコード」の解説は、「RT-11」の解説の一部です。
「ソースコード」を含む「RT-11」の記事については、「RT-11」の概要を参照ください。
ソースコード
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/16 02:52 UTC 版)
Google Chromeはこのソースコードを引き抜いて開発されたものである。 このプロジェクトで開発されるChromiumのスナップショットは、Googleによるいくつかの追加機能を除いて、Google Chromeの最新ビルドと本質的に似ている。Google ChromeにありChromiumにない代表的な機能要素は、Googleブランド、自動アップデート機能、クリックラップ契約(英語版)(利用許諾に「同意する」を押下することで承諾するもの)、RLZトラッキング機能、 以前はAdobe Flash Playerも同伴されていた。 Chromiumプロジェクトの名前の由来は、鉄などのめっきに使われることで知られる金属系元素のクロム(英語でchromium)である。そのクロムめっきを施した金属を英語で chrome と呼ぶことから、「(Google) Chromeを作るのに使うモノ」という意味でこの名称となった。Googleは自身の考えとして、開発者向けの文書上でChromiumはオープンソースプロジェクトの名称で、最終的な製品名称はChromeにすると述べた。ただし、他の開発者たちはChromiumのコードを用いて"Chromium"という名前でのビルドを作成している。 プロジェクトの大きな目的のひとつとして、Chromeはウェブにおけるタブ付きのウィンドウマネージャもしくはシェルになることであり、既存のウェブブラウザとは対照的である。この考えはWindows ExplorerやmacOSのFinderを簡素化させるのと同じようにこのアプリケーションも簡素化を図っている。このことについて開発者は「(体感および物理的に)軽量で高速に感じなければならない」と説明している。
※この「ソースコード」の解説は、「Chromium」の解説の一部です。
「ソースコード」を含む「Chromium」の記事については、「Chromium」の概要を参照ください。
ソースコード
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/08 06:04 UTC 版)
クローズドコードだが、非バイナリモードで動作することのできる多くのエクステンションのソースが利用可能である。それでもLastPassは全権利を保持している。 LastPass Password Managerの開発者の1人であるサミールはソフトウェアの理論的整合性はオープンソース無しで検証できることを主張し、開発者はLastPass Password Managerのユーザインタフェースを将来オープンソースして開くことができると言及した。
※この「ソースコード」の解説は、「LastPass」の解説の一部です。
「ソースコード」を含む「LastPass」の記事については、「LastPass」の概要を参照ください。
ソースコード
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/13 05:17 UTC 版)
「Microsoft Windows NT 3.5」の記事における「ソースコード」の解説
2020年、Windows NT 3.5のBuild 782の完全なソースコードがリークされ、4chanでオンラインで公開された。もともとソースコードはanonfiles.comにアップロードされていたが、マイクロソフトによって取り下げられてしまった。ソースコードはまだインターネットアーカイブに残っている。
※この「ソースコード」の解説は、「Microsoft Windows NT 3.5」の解説の一部です。
「ソースコード」を含む「Microsoft Windows NT 3.5」の記事については、「Microsoft Windows NT 3.5」の概要を参照ください。
ソースコード
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/27 00:06 UTC 版)
「Emacs Lisp」の記事における「ソースコード」の解説
Emacs Lispのコードは、「.el」という拡張子のファイルに、テキストファイルとして格納される(ただし、利用者の初期設定ファイル名は、Emacs21以前では例外として「.emacs」である)。ファイルが読み込まれると、Emacsプログラムのインタープリタ部分が、関数や変数を読んだり解析したりして、メモリに格納する。そうして、他の編集関数や利用者コマンドで使えるようになる。関数や変数は、自由に修正したり、読み込みなおしたりできる。 メモリ空間の節約のため、Emacsの機能の多くは、必要になるまで読込まれない。追加機能一式それぞれは、「ライブラリ」というEmacsコードの集まりで実装されている。たとえば、プログラムソースコードのキーワードの強調用ライブラリやテトリス・ゲームで遊ぶライブラリなどがある。各ライブラリは、ひとつまたは複数のEmacs Lispソース・ファイルで実装される。 一部の関数は C言語で書いてある。これは「プリミティブ」と呼ばれる(「組込み関数」とか「サブル」ともいう)。プリミティブはLispコードから呼び出すことができ、C言語のソース・ファイルを修正し再コンパイルすることでのみ変更できる。GNU Emacsでは、プリミティブを外部ライブラリにすることはできず、Emacs実行形式の一部分となる。XEmacsでは、オペレーティング・システムの動的リンクのサポートを使って、プリミティブを実行時に読み込める。関数をプリミティブで書くのは、Emacs Lispからはアクセスできない外部データやライブラリを用いる必要があったり、C言語とEmacs Lispで実行速度の差が十分認められるほど頻繁に呼ばれたりする場合である。 ただし、C言語でのエラーはすぐにセグメンテーション違反やより些細なバグにつながるため、エディタをクラッシュさせるし、Emacs Lispのガベージ・コレクタと正しく相互作用するC言語のコードを書くことはエラーを引き起こしやすいので、プリミティブで実装されている関数は比較的少数である。
※この「ソースコード」の解説は、「Emacs Lisp」の解説の一部です。
「ソースコード」を含む「Emacs Lisp」の記事については、「Emacs Lisp」の概要を参照ください。
ソースコード
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/17 21:21 UTC 版)
「Population-based incremental learning」の記事における「ソースコード」の解説
これは、Javaで実装された、ソースコードの一部である。論文では、learnRate = 0.1、negLearnRate = 0.075、mutProb = 0.02、mutShift = 0.05 が使われている。小さな問題の場合、N = 100、ITER_COUNT = 1000 で十分である。 public void optimize() { final int totalBits = getTotalBits(domains); final double[] probVec = new double[totalBits]; Arrays.fill(probVec, 0.5); bestCost = POSITIVE_INFINITY; for (int i = 0; i < ITER_COUNT; i++) { // N個の遺伝子を作成する final boolean[][] genes = new boolean[N][totalBits]; for (boolean[] gene : genes) { for (int k = 0; k < gene.length; k++) { if (rand.nextDouble() < probVec[k]) gene[k] = true; } } // コストを計算する final double[] costs = new double[N]; for (int j = 0; j < N; j++) { costs[j] = costFunc.cost(toRealVec(genes[j], domains)); } // 最小・最大コストの遺伝子を探す boolean[] minGene = null, maxGene = null; double minCost = POSITIVE_INFINITY, maxCost = NEGATIVE_INFINITY; for (int j = 0; j < N; j++) { double cost=costs[j]; if (minCost> cost) { minCost = cost; minGene = genes[j]; } if (maxCost < cost) { maxCost=cost; maxGene=genes[j]; } } // 最良コストの遺伝子と比較する if (bestCost> minCost) { bestCost = minCost; bestGene = minGene; } // 最小・最大コストの遺伝子で確率ベクトルを更新する for (int j = 0; j < totalBits; j++) { if (minGene[j] == maxGene[j]) { probVec[j] = probVec[j] * (1d - learnRate) + (minGene[j] ? 1d : 0d) * learnRate; } else { final double learnRate2 = learnRate + negLearnRate; probVec[j] = probVec[j] * (1d - learnRate2) + (minGene[j] ? 1d : 0d) * learnRate2; } } // 突然変異 for (int j = 0; j < totalBits; j++) { if (rand.nextDouble() < mutProb) { probVec[j] = probVec[j] * (1d - mutShift) + (rand.nextBoolean() ? 1d : 0d) * mutShift; } } }}
※この「ソースコード」の解説は、「Population-based incremental learning」の解説の一部です。
「ソースコード」を含む「Population-based incremental learning」の記事については、「Population-based incremental learning」の概要を参照ください。
ソースコード
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/18 08:31 UTC 版)
「RIOT (オペレーティングシステム)」の記事における「ソースコード」の解説
RIOTのソースコードは、GitHubから入手可能であり、オープンソース開発者の国際的なコミュニティーによって開発されている。
※この「ソースコード」の解説は、「RIOT (オペレーティングシステム)」の解説の一部です。
「ソースコード」を含む「RIOT (オペレーティングシステム)」の記事については、「RIOT (オペレーティングシステム)」の概要を参照ください。
ソースコード
「ソースコード」の例文・使い方・用例・文例
- 実行環境に依存しないソースコードの書き方
- 実行されることができるコンピュータで読取り可能な機械語に特定のプログラミング言語で書かれるソースコードを翻訳するために、コンピュータープログラムを使用する
- ソースコードが自由に利用できるコンピュータ・ソフトウェアの、それに関する、またはそれであるさま
- 同じソースコードは、異なるオペレーティングシステム用の異なるバイナリを生じるためにコンパイルされる
- コンパイラは、ソースコードをオブジェクトコードに変換するために、ソースコードを解析しなければならない
- ソースコードのページへのリンク