「C言語」の版間の差分
imported>MikeCAT (「実行環境の構築」を追加) |
Administrator (トーク | 投稿記録) |
||
(3人の利用者による、間の6版が非表示) | |||
1行目: | 1行目: | ||
− | '''C言語''' | + | '''C言語'''(読み:しーげんご、[[英語]]:[[C]])とは、汎用の[[プログラミング言語]]である。 |
== 概要 == | == 概要 == | ||
− | C言語は[[ベル研究所]]の[[デニス・リッチー]]によって、同社の[[アセンブラ]]で書かれており[[移植性]]クソ食らえな[[UNIX]]を、現実的な移植性に引き上げるために開発された[[プログラミング言語]] | + | C言語は[[ベル研究所]]の[[デニス・リッチー]]によって、同社の[[アセンブラ]]で書かれており[[移植性]]クソ食らえな[[UNIX]]を、現実的な移植性に引き上げるために開発された[[プログラミング言語]]である。現実派である。 |
− | |||
− | + | 英語圏では「[[C]]」1文字で呼ばれているが、何の話をしているのか一般人にはまったく伝わらないので日本では末尾に「言語」を付けることが多い。 | |
== 難易度 == | == 難易度 == | ||
12行目: | 11行目: | ||
[[アセンブラ]]の[[ニーモニック]]を丸暗記するどころか[[アルファベット]]を覚えるより簡単である。 | [[アセンブラ]]の[[ニーモニック]]を丸暗記するどころか[[アルファベット]]を覚えるより簡単である。 | ||
− | 難しいと言われるゆえんはC言語が単純であるが故に、基本より先は様々な[[コンピューター]]や[[OS]]の[[低レベル]]な知識や、あらゆる[[アルゴリズム]] | + | 難しいと言われるゆえんはC言語が単純であるが故に、基本より先は様々な[[コンピューター]]や[[OS]]の[[低レベル]]な知識や、あらゆる[[アルゴリズム]]を熟知し、単純な物で複雑な物を作り上げなければならないという点によるものである。例えるならば、[[レゴブロック]]は基本的に幼児でも簡単に扱えるが、レゴブロックで複雑な構造物を作るとなるとアホみたいに難しいのと同一の問題である。 |
− | |||
− | また、文字列処理に特化した[[Perl]]や、[[Webアプリ]]に特化した[[PHP]] | + | また、文字列処理に特化した[[Perl]]や、[[Webアプリ]]に特化した[[PHP]]やのように、特定の目的に特化した[[プログラミング言語]]とは異なり、[[汎用性]]が高いがゆえに[[工数]]が増大するという点も難易度が高いと言われる原因であると思われる。レゴブロックでガンダムを再現するより、ガンプラでガンダムを再現する方が簡単(工数が少ない)なのは言うまでもない。 |
− | |||
以上のことから導きだされる結論は「簡単」である。 | 以上のことから導きだされる結論は「簡単」である。 | ||
26行目: | 23行目: | ||
=== Windows === | === Windows === | ||
− | [[IDE]]である[[Dev-C++]]を[[インストール]] | + | [[Windows]]では[[IDE]]である[[Dev-C++]]を[[インストール]]するのが簡単である。適切な種類を[[ダウンロード]]すれば、もちろん[[コンパイラ]]も付いてくる。 |
− | |||
− | + | [[libpng]]など、一般の[[ライブラリ]]を[[make]]したい場合は[[MSYS]]も入れておくとよい。 | |
=== Linux === | === Linux === | ||
− | [[インストール]]時に適切な設定をすれば、最初から[[gcc]] | + | 多くの[[Linuxディストリビューション]]では[[インストール]]時に適切な設定をすれば、最初から[[gcc]]が使えるはずである。gccが無い場合、[[tcc]]コマンドや[[cc]]コマンドを試してみよう。 |
− | |||
gccまたはtccが使えることを確認したら、あとは自分の好きな[[テキストエディタ]]を用意するだけである。 | gccまたはtccが使えることを確認したら、あとは自分の好きな[[テキストエディタ]]を用意するだけである。 | ||
=== Mac === | === Mac === | ||
− | + | [[Mac OS X|OS X]]の標準構成にCコンパイラは含まれていないが、[[アップル]]が無償配布している[[IDE]]の[[Xcode]]をインストールすることで、他の[[BSD]]系[[OS]]と大体同じようにC言語を扱えるようになる。 | |
=== Android === | === Android === | ||
58行目: | 53行目: | ||
== 派生言語 == | == 派生言語 == | ||
* [[C++]] | * [[C++]] | ||
− | * [[Objective-C]] | + | * [[Objective-C]] - C言語のメモリ安全性と[[Smalltalk]]の速度を併せ持った言語である。 |
* [[Java]] | * [[Java]] | ||
; 類似言語 | ; 類似言語 | ||
− | * [[C Sharp|C#]] | + | * [[C Sharp|C#]] - 構文の見た目がC言語に似ている。だが実は[[Turbo Pascal]]の派生言語である。 |
− | * [[JavaScript]] | + | * [[JavaScript]] - 構文の見た目がC言語に似ている。 |
== 関連項目 == | == 関連項目 == | ||
71行目: | 66行目: | ||
{{reflist}} | {{reflist}} | ||
− | + | [[category: プログラミング言語]] |
2024年2月9日 (金) 09:46時点における最新版
C言語(読み:しーげんご、英語:C)とは、汎用のプログラミング言語である。
目次
概要[編集 | ソースを編集]
C言語はベル研究所のデニス・リッチーによって、同社のアセンブラで書かれており移植性クソ食らえなUNIXを、現実的な移植性に引き上げるために開発されたプログラミング言語である。現実派である。
英語圏では「C」1文字で呼ばれているが、何の話をしているのか一般人にはまったく伝わらないので日本では末尾に「言語」を付けることが多い。
難易度[編集 | ソースを編集]
一般的にC言語は難しいと言われているが、わずか37個の予約語(C89の場合)を覚えるだけで簡単に習得できる夢のようなプログラミング言語である。 しかもそのうち実際に使われるのは20個程度である。 アセンブラのニーモニックを丸暗記するどころかアルファベットを覚えるより簡単である。
難しいと言われるゆえんはC言語が単純であるが故に、基本より先は様々なコンピューターやOSの低レベルな知識や、あらゆるアルゴリズムを熟知し、単純な物で複雑な物を作り上げなければならないという点によるものである。例えるならば、レゴブロックは基本的に幼児でも簡単に扱えるが、レゴブロックで複雑な構造物を作るとなるとアホみたいに難しいのと同一の問題である。
また、文字列処理に特化したPerlや、Webアプリに特化したPHPやのように、特定の目的に特化したプログラミング言語とは異なり、汎用性が高いがゆえに工数が増大するという点も難易度が高いと言われる原因であると思われる。レゴブロックでガンダムを再現するより、ガンプラでガンダムを再現する方が簡単(工数が少ない)なのは言うまでもない。
以上のことから導きだされる結論は「簡単」である。 反論は認める。
実行環境の構築[編集 | ソースを編集]
OS共通(インターネット接続が必要)[編集 | ソースを編集]
とりあえず実行したければ、Ideone.comやcodepadなど、オンラインでプログラムを実行できるサイトを使うのが簡単である。
Windows[編集 | ソースを編集]
WindowsではIDEであるDev-C++をインストールするのが簡単である。適切な種類をダウンロードすれば、もちろんコンパイラも付いてくる。
libpngなど、一般のライブラリをmakeしたい場合はMSYSも入れておくとよい。
Linux[編集 | ソースを編集]
多くのLinuxディストリビューションではインストール時に適切な設定をすれば、最初からgccが使えるはずである。gccが無い場合、tccコマンドやccコマンドを試してみよう。
gccまたはtccが使えることを確認したら、あとは自分の好きなテキストエディタを用意するだけである。
Mac[編集 | ソースを編集]
OS Xの標準構成にCコンパイラは含まれていないが、アップルが無償配布しているIDEのXcodeをインストールすることで、他のBSD系OSと大体同じようにC言語を扱えるようになる。
Android[編集 | ソースを編集]
コンパイラアプリもあることはあるが、有料のものが多い。 諦めてIdeone.comなどのオンラインコンパイラを使おう。
iOS[編集 | ソースを編集]
歴史[編集 | ソースを編集]
規格[編集 | ソースを編集]
おすすめ書籍[編集 | ソースを編集]
派生言語[編集 | ソースを編集]
- C++
- Objective-C - C言語のメモリ安全性とSmalltalkの速度を併せ持った言語である。
- Java
- 類似言語
- C# - 構文の見た目がC言語に似ている。だが実はTurbo Pascalの派生言語である。
- JavaScript - 構文の見た目がC言語に似ている。