質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • Android

    7097questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • C

    4279questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • プログラミング言語

    730questions

    プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

  • コマンドプロンプト

    406questions

    コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

  • 機械語

    8questions

    機械語とは、プロセッサが直接解釈・実行できる状態の言語です。

プログラムの実行の仕組みが分かりません

解決済

回答 7

投稿

  • 評価
  • クリップ 3
  • VIEW 767

WeilSpinor

score 19

プログラムの実行の仕組みが分かりません。

プログラミング初心者です。
基本的な話ですが、調べてもよく分からなかったので質問させていただきます。

昔、C言語で「画面に『Hello World』と表示するプログラム」を作って、exeファイルをコマンドプロンプト上で実行したのを覚えています。すると、コマンドプロンプトの黒い画面に「Hello World」と表示されました。
しかし、教科書に「コマンドプロンプトを使え」と指示があっただけで、なぜコマンドプロンプトなのか、よく分かりませんでした。
これだけだと、
「C言語とは、Windowsのコマンドプロンプトというアプリケーションに文字列を出力するためのプログラム言語なのか?」
と思ってしまいますが、恐らくそれは違って、もっと幅広い使い方が出来るのだと思います。

私の仮説では、カギは「コンパイラ」にあるのではないか、と思っています。

C言語で書かれたソースコードを、

『コマンドプロンプト用機械語』に翻訳すれば、
「ダブルクリックするとコマンドプロンプト画面に『Hello World』と表示されるプログラム」になり、

『Word用機械語』に翻訳すれば、
「ダブルクリックするとWord画面に『Hello World』と表示されるプログラム」になり、

『Microsoft Edge用機械語』に翻訳すれば、
「Microsoft Edge画面に『Hello World』と表示されるプログラム」になる、

という感じです。

つまり、
プログラムを実行したいアプリケーションの数だけ『C言語コンパイラ』が存在して、それを端末にインストールした状態で実行すれば、そのアプリケーションでHello Worldを表示できる、
という感じです。

しかし、
Hello Worldを表示する程度の単純なプログラムならまだしも、
「スマブラのゲーム」みたいな、映像を使ったりキャラを操作したりする大規模で高度なプログラムになると、
さすがにコマンドプロンプトみたいなショボいアプリケーション上では実行できないので、
Nintendo Switchのような「スマブラ専用のOSやアプリケーション」が必要になる、という感じです。

Androidアプリ開発においても同様のことが言えて、
Javaで書いた家計簿プログラムが、Android上でAndroidアプリとして動くのは、
「Android Studioが、Java家計簿ソースプログラムを『Android語』にコンパイルしてくれているから」
という感じです。

こんな感じで合っているでしょうか?

また、こういったソフトウェア工学に関する基本的な事項ってどういう本に載っているのでしょうか?何というカテゴリの属するのでしょうか?

ご回答よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 7

checkベストアンサー

+2

色々勘違いが有るようですが、以下を参考にされたらどうでしょう?
プログラミングの楽しさ: プログラムが動く仕組み
「追記」

プログラムを実行したいアプリケーションの数だけ『C言語コンパイラ』が存在

ではなく、プログラムを実行したいOSの数だけ『C言語コンパイラ』が存在・・・ですかね?
(実際はCコンパイラも、ソースから実行するOS用にコンパイルできます)
アプリケーションは、プログラムですからそれが実行できるOSが必要です。(OSもプログラムだけれど・・・)
例えばfirefoxというウェブブラウザがありますが、OS単位(windows,macOS,Linux・・・)のものが配布されています。
「追記」カーニハンの「hello, world」をclangでコンパイルしてみました

#include <stdio.h>

main( )
{
  printf("hello, world\n");
}


コンパイル結果(最適化はしていません)

    .text
    .file    "hw.c"
    .globl    main                    # -- Begin function main
    .p2align    4, 0x90
    .type    main,@function
main:                                   # @main
    .cfi_startproc
# %bb.0:
    pushq    %rbp
    .cfi_def_cfa_offset 16
    .cfi_offset %rbp, -16
    movq    %rsp, %rbp
    .cfi_def_cfa_register %rbp
    subq    $16, %rsp
    movabsq    $.L.str, %rdi
    movb    $0, %al
    callq    printf
    xorl    %ecx, %ecx
    movl    %eax, -4(%rbp)          # 4-byte Spill
    movl    %ecx, %eax
    addq    $16, %rsp
    popq    %rbp
    .cfi_def_cfa %rsp, 8
    retq
.Lfunc_end0:
    .size    main, .Lfunc_end0-main
    .cfi_endproc
                                        # -- End function
    .type    .L.str,@object          # @.str
    .section    .rodata.str1.1,"aMS",@progbits,1
.L.str:
    .asciz    "hello, world\n"
    .size    .L.str, 14


    .ident    "clang version 9.0.0 (trunk 354955)"
    .section    ".note.GNU-stack","",@progbits
    .addrsig
    .addrsig_sym printf


これを実行ファイルにすると・・・main()のみ抜粋(真ん中の16進数が機械語です)

0000000000400500 <main>:
  400500:    55                       push   %rbp
  400501:    48 89 e5                 mov    %rsp,%rbp
  400504:    48 83 ec 10              sub    $0x10,%rsp
  400508:    48 bf b4 05 40 00 00     movabs $0x4005b4,%rdi
  40050f:    00 00 00 
  400512:    b0 00                    mov    $0x0,%al
  400514:    e8 e7 fe ff ff           callq  400400 <printf@plt>
  400519:    31 c9                    xor    %ecx,%ecx
  40051b:    89 45 fc                 mov    %eax,-0x4(%rbp)
  40051e:    89 c8                    mov    %ecx,%eax
  400520:    48 83 c4 10              add    $0x10,%rsp
  400524:    5d                       pop    %rbp
  400525:    c3                       retq   

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/03/05 21:46 編集

    「プログラムの実行の仕組み」と言うと本が一冊書けるwと思います。なので、どの程度の(Cのソースをコンパイラに書けると機械語の実行ファイルが出来る・・・までは分かるとか?)知識を必要としているのか?が分かるともっと答えやすくなると思います。https://sites.google.com/site/whatsacomputerhtml/home ←この辺も参考になるかも? ちなみに組み込み用(車載、電気炊飯器、電子レンジなど)もちっちゃなOS(アセンブラで2〜3千行ていど)が入っています。

    キャンセル

  • 2019/03/06 19:33

    カーニハンの「hello, world」は、今となっては古い文法(main()に返り値が無いとか色々あります)ですがワーニングを出しながらちゃんと実行ファイルは出来ますv^^;

    キャンセル

  • 2019/03/07 20:21

    ご回答ありがとうございます。
    2つ目のコンパイル結果、というのは、いわゆる、オブジェクトファイル、というものでしょうか?
    この段階ではまだ機械語ではないのですね…。(アセンブリ言語?)

    3つ目の実行ファイルも、機械語以外の文字があるんですね。
    「コンピューターは0と1の状態しか理解できない」と習ったので、
    実行ファイルは「0と1だけからなる機械語の羅列ファイル」だと思っていました。
    16進数のままでは実行できるんでしょうか?
    (それとも、実行ファイルをメモリに読み込むときに、改めて0と1の機械語に自動翻訳されるようになっている?)

    キャンセル

  • 2019/03/07 21:38 編集

    実行ファイルはリンクされたあとに出来るものでアドレスの解決が出来ているものです。(上記もhello, worldをコンパイルして実行ファイル(a.out)を逆アセンブルしたもののmain部分です)。あと、ニモニック(https://www.weblio.jp/content/%E3%83%8B%E3%83%A2%E3%83%8B%E3%83%83%E3%82%AF)というのは人間に読みやすいように逆アセンブルしてあるだけで、実行ファイルには含まれません。16進の例えば先頭(アドレス400500)の55は(push %rbpというのはベースポインタを退避する命令・・参考:https://qiita.com/tobira-code/items/75d3034aed8bb9828981 )2進で表せば'01010101'(8ビット)になります。要は0=OFF,1=ONです。なのでそのまま機械語です。これがメモリに読み込まれて実行されます。

    キャンセル

  • 2019/03/07 22:16 編集

    興味が有ったら→x64 アセンブリーの概要:https://www.isus.jp/others/introduction-to-x64-assembly/ x64 Assembly Language→ http://nw.tsuda.ac.jp/lec/x64/

    キャンセル

  • 2019/03/07 23:27

    脇から失礼します。
    > 「0と1だけからなる機械語の羅列ファイル」
    この理解はほぼ、正しいです。ただ、人が読むとき、0/1 の羅列では読みずらいので、16進数表記にする事が多いだけです。で、歴史的事情で、8bit単位で区切る、、と。
    多分、「アドレスの解決」の意味も不明ではないかと思いますが、最初は悩まない方が良いと思います。C言語を機械語に変換する時に、関数名/変数名から、メモリ上にアドレスに変換すると言えば、良いでしょうか? 「鈴木さんちに行きたい」言うときに、鈴木さん → xx丁目yyy番地にするようなものです。(こんなたとえで分かるか?)

    キャンセル

+2

多くのソフトウェアはコマンドプロンプトのような低機能な出力を持っています。
が、見せてないだけです。


「C言語とは、Windowsのコマンドプロンプトというアプリケーションに文字列を出力するためのプログラム言語なのか?」

より正確に言うならば

「C言語の標準ライブラリは、
ファイルもしくは標準入力という「なにか」から文字列を取得し
ファイルもしくは標準出力・標準エラー出力という「なにか」に文字列を出力するためのライブラリ」ですね。

これを超える事は標準ライブラリではできず、なんらかのライブラリが必要になります

例えばお使いのCコンパイラがwindowsのWin32APIライブラリに対応している場合

#include <windows.h>

int main(){
    MessageBox(NULL, "Show Messagebox", "test", MB_OK);
    return 0;
}

でメッセージボックスを表示するプログラムが作成できるはずです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/03/07 20:22

    ご回答ありがとうございます。参考にさせていただきます

    キャンセル

+2

こんにちは。

プログラムの実行の仕組みが分かりません。

これって難しいですよね。
C言語は高級アセンブラとも称されるほどプリミティブに近い言語ですので、C言語で開発したプログラムが実行される時の仕組みを理解するには、マシン語が実行される仕組みを把握しないと厳しいと思います。

メジャーなOS(例えばWindowsやLinux、macOSなどなど)ではざっくり以下のイメージです。

  1. そのOSが指定する形式で、マシン語で書かれたプログラムが記録された実行形式プログラム・ファイルが存在します。
  2. それを実行する際、OSはそのファイルの内容をメモリにロードし、そのエントリー・ポイントを呼び出します。
  3. 以降、そのプログラムが実行されます。この時、文字を表示したり、キーボードから入力したり、マウスのデータを受け取ったり、ウィンドウへ描画したりするには、OSが用意したAPIを呼び出して行います。

プログラマが特定のプログラミング言語で書いたプログラムを解釈してマシン語を出力するものがコンパイラです。そしてコンパイラが出力する1つまたは複数のマシン語ファイルを必要に応じて標準ランタイム・ライブラリ等と結合して、OSが指定する形式の実行形式プログラム・ファイルを出力するのがリンカです。

そのようなプログラミング言語の1つがC言語です。C言語でかかれたプログラムをマシン語に変換するコンパイラは非常に多数あります。メジャーなものは Visual C++、gcc、clangと思いますが、他にも山程あります。(なお、現代のほとんどのC言語ではコンパイラに含めてリンカも提供されます。)

『Word用機械語』に翻訳すれば、
「ダブルクリックするとWord画面に『Hello World』と表示されるプログラム」になり、

WordはOSではありませんので、『Word用機械語』というものは存在しません。『Microsoft Edge用機械語』も同様です。(これらはマシン語プログラムをロードして実行する機能をユーザへ提供していません。)

コマンド・プロンプトはWindowsが提供するプログラム実行環境の1つですので、『コマンドプロンプト用機械語』は存在すると言っても間違いではないと思います。『コマンド・プロンプトを使用する、Windows用の実行形式プログラム・ファイル』と言った方がより実態に近いと思います。有名な"Hello, World!"プログラムをコンパイル/リンクしたものはその1つです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/03/07 20:15

    ご回答ありがとうございます。参考にさせていただきます

    キャンセル

0

こういった本でしょうか。

プログラムが動く理由をきっちり学ぶにはかなり幅広い知識が必要ですが、
最近は学校でプログラミングが必修になるということでやさしい本が色々出ています。

大きめの書店のコンピュータ関連エリアの読み物系(プログラミングとか専門書系ではないところ)の集まりにあると思います。
色々あってどれが合うかわからないので、一度パラパラとめくってみるといいと思いますよ。

加えてC言語などの中級言語を勉強すれば理解が早まると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/03/07 20:15

    ご回答ありがとうございます。参考にさせていただきます。

    キャンセル

0

「プログラムとは何か」の原点からしますと, やや古めですが次の本をご紹介致します.

CPUの創りかた

ただ、ここから「コンパイラ」に繋がる道をどう見つけるかが, 難しいです.

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/03/06 19:26

    >ただ、ここから「コンパイラ」に繋がる道をどう見つけるかが, 難しいです.
    nand2tetrisで雰囲気はつかめるかもしれません。

    https://www.oreilly.co.jp/books/9784873117126/

    キャンセル

  • 2019/03/07 20:14

    ご回答ありがとうございます。参考にさせて頂きます。

    キャンセル

0

他の方が色々と書かれていて、それぞれ正しいと思うのですが、以下の点について、

教科書に「コマンドプロンプトを使え」と指示があっただけで、なぜコマンドプロンプトなのか

コマンドプロンプトを使うが、現実的で容易な方法だと(教科書の作者は)考えたのではないかと思います。
画面に文字やら、絵などを表示するために、色々と準備が必要になります。それに対し、コマンドプロンプトで、文字を表示する方法は容易です。
(裏では色々とコンピュータが仕事してますが)
コマンドプロンプトは、コマンドプロンプト上で動くプログラムに対し、文字の入力と出力をサポートしています。プログラムが文字を出力するには、コマンドプロンプトに対し、文字を表示してくださいと依頼するだけで済みます。
それに対し、画面上に文字を出力するには、画面のどの場所に、どの大きさで、何色で、、と色々と指定が大変になります。(最近の言語環境は省略できるのも多いですが)
この辺が、コマンドプロンプトを使う理由では無いかと思います。


では、コマンドプロンプトが何をしているとかと言うと、
文字を表示してくれと言われたら、その文字に対応する絵(文字)を用意し、現在のカーソルに位置にその絵(文字)を置き、カーソル位置を移動する処理を行うことになります。この時、右端まできたら、画面表示を一行動かすなど、色々な処理をしています。
では実際の絵(文字)を書く処理は、、と言うと、、、今どきのコンピュータではは、専用のハードウェア(GPU等)に処理を依頼することになります。
と、実際の処理は、必要に応じてそれぞれの下請けに依頼しています。この下請けは、環境によって、Win32API とか、.NET とか呼ばれます。


質問には、0/1の機械語になって実行されるとありますが、最近のコンピュータでは、それも不正確で、Javaなんで、(普通の)機械語で無く、Java用の機械語(一般には中間言語)になり、Javaがそれを読み込みながら(解釈しながら)、実行します。ここでは、一つの機械語が、WindowsでもLinuxでも動きます。(という事になっている) HTMLだと、テキストで書かれたコードが、IEや、Edge、Chrome 等、どこでも動きます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

『コマンドプロンプト用機械語』に翻訳すれば、
「ダブルクリックするとコマンドプロンプト画面に『Hello World』と表示されるプログラム」になり、

実は『コマンドプロンプト用機会語』なんてものはありません。コマンドプロンプトにHello Worldと書くexeファイルは別にコマンドプロンプトを使わなくても実行できますよ。今どきの方法でビルドすると、勝手にコマンドプロンプトを立ち上げてくれるアプリケーションになるかもしれませんが。

解説:標準入出力というものを使っています。コマンドプロンプトはユーザと標準入出力を介するための手段です。

『Word用機械語』に翻訳すれば、
「ダブルクリックするとWord画面に『Hello World』と表示されるプログラム」になり、

『Word用機械語』というものはありません。Wordは.docとか.docxとか.rtfとか.txtとかいろいろなフォーマットのファイルを読み込めますよね。それを解釈して描画し、編集を反映して書き込むのが「Wordというアプリケーションのお仕事」です。.rtfくらいなら人の目に優しいですから、一回テキストエディタで開いてみると良いでしょう。いろいろな制御情報が書かれているのがわかります。

『Microsoft Edge用機械語』に翻訳すれば、
「Microsoft Edge画面に『Hello World』と表示されるプログラム」になる、

同上。EdgeなどのWebブラウザも(基本的には)HTMLというフォーマットで書かれたデータをきれいに表示するためのアプリケーションです(実際にはCSSとかJavaScript、場合によってはFlashなどが絡んできて混沌としてくる)。


たとえばHello Worldと書かれたファイルを読み込んで、べつにGUIでも音声でも好きな方法で構わないので出力する、というアプリケーションを考えます。

ファイルをメモ帳でGoodbye Worldに書き換えればGoodbye Worldと言う訳で、別にそういうことにコンパイラは関わっていません。そこの線引きが怪しいと後々理解が追いつかなくなるかもしれない。

コンパイラを通って生まれているのは「コマンドプロンプト」とか「Word」とか「Edge」です。いずれもマイクロソフトが(偶然そうだっただけで別にマイクロソフトじゃなくてもいいけど)Cないしそれに類する言語で書いて、x86環境上で動くwindows用にコンパイルして売ってくれました。「Word」や「Edge」のHello Worldが「C言語で書かれてコンパイルされて」いる訳ではないですね。

コマンドプロンプトはちょっと特殊で、コマンドプロンプト上で自作のHello Worldなんかを実行するとそれを別途立ち上げて標準入出力を繋いで・・・ということをやってくれるのですが。それだって「コマンドプロンプト用に書かれたHello Worldが実行される」とは考えない方が良いでしょう。あくまでも「x86環境上で動くwindows用にコンパイルされたHello World(標準入出力仕様)」と捉えた方が自然です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/03/11 07:57

    コマンドプロンプトって元々、外部端末ですね、大昔の。
    今でこそ、一体化してますが、シリアル通信とかで接続されて。
    標準入出力自体も、"標準"なんで、環境ごとに切替え可能と、、、。
    ここまで言い出すと、初心者には理解が難しい? 一旦は機械語を含めて忘れて、全体の概念の理解の必要がありそうな気がします。

    キャンセル

同じタグがついた質問を見る

  • Android

    7097questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • C

    4279questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • プログラミング言語

    730questions

    プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

  • コマンドプロンプト

    406questions

    コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

  • 機械語

    8questions

    機械語とは、プロセッサが直接解釈・実行できる状態の言語です。