• 締切済み

プログラミング言語

cametan_42の回答

回答No.3

ちょっと補足を。 先の回答にもありましたが、元々、C言語はUNIXと言うOSを作成する際に生まれた言語です。それ以前はOSを記述する際に大体アセンブリ言語を用いていました。 厳密に言うと、OSを作成する際に高級言語を用いる試みはC言語登場以前にもありました。 じゃあ、何がC言語の特徴だったのか、と言うと「移植性を高めよう」と言うのがポイントです。 元々、UNIX自体は、「何らかのハードウェアに特に密接に依存しない」OSを目指して作られていました。何故か、と言うと、要するに「中古のコンピュータで動かしたい」と言う目論見があったから、ですね。新品ピカピカ、メーカー保証アリ、と言うコンピュータがターゲットじゃなかったのです(ちなみに、ここで言う「コンピュータ」とは大型コンピュータの事です)。メーカーの保証期間が終わって廃棄処分になるだろうコンピュータで動かすのが目的。当然A社とB社とC社では全くアーキテクチャが違う・・・なんて状況なわけです。 そのような様々な中古のコンピュータに対応して「全く同じ環境を提供する」と言うのが少なくともUNIXの一つの目論見でした。まずはこの背景を押さえておいてください。 そうすると、「アーキテクチャに密接に依存してる」アセンブリ言語を使うのは難しいわけです。そこで開発されたのがC言語だった、と言う流れですね。アセンブリレベルで違っても「C言語」レベルでは違わない、と言うのがポイントです。 ここでのキーワードは「移植性」です。 さて、C言語が登場したのは70年代半ばですが、その時に考慮された「移植性」と言うのはソフトウェアが複雑化していくとその性質がどんどん薄れていきました。 そんな中で90年代半ば辺りに登場したのがJavaです。 Javaが初めて、と言うわけではないのですが、コンピュータの演算能力が向上していったにつれ、かつては「遅い」「重い」と言われた廃れた「仮想マシン」と言うものがJavaの登場で復活します。 この「仮想マシン」と言うのは「移植性」と言う事柄に対してのもう一つの回答です。 ここで、異なるアーキテクチャ、あるいはOSを持つA社、B社、C社のマシンがあるとしましょう。異なるアーキテクチャだ、と言う事はCPUがわかる「マシン語」が違う、そしてOSが全く違う、と言う事です。 仮想マシンと言うのは、「コンピュータ上で動く疑似コンピュータ」と考えて良いです。当然、A社、B社、C社のコンピュータは共に別々の仮想マシンでなければならないのですが、仮想マシン上で動く環境はすべて共通してるとします。そうすれば、仮想マシンを対象に書かれたプログラムは全部どんなアーキテクチャだろうとOSであろうと「同じように動く」と言う事が保証されます。 これがJavaが採用したシステムで、アーキテクチャ/OS毎に「別の仮想マシンを用意しなければならない」けど、「その上で動くプログラムは一回書いてしまえばどこでも動かせる」・・・こういうのを「差異を吸収する」等と言うのですが、そういう風に設計されたのがJavaと言う言語です。従って、アプリケーションを書く上ではC言語よりも「移植性が高い」(あるいは「ポータビリティがある」と表現したりします)わけです。 また、セキュリティ的にもマシン本体を攻撃される前に仮想マシンが攻撃される感じになるんで、安全性がより高いわけですね(切り離されてる)。そういう特徴を(少なくともOracle公式の)Javaは持っています。 これらがC言語とJavaなんですが、一方、Perlは「やっつけ仕事の為の言語」としてUNIX上で開発されました。「やっつけ仕事の為の言語」と聞くと悪口言ってるように聞こえますが、そうではありません。とにかく「なるたけはやくプログラムを書き上げられる」事を意図して作られています。そのテの言語は「スクリプト言語」等と呼ばれたりしますが、Perlはその代表格でしょうね。あまりWindows上だとポピュラーじゃない言語の一つですが、むしろUNIXと密接してて、そのためにサーバー上で良く用いられ、様々な動的Webサイトを書き上げる実績を積み重ねたんですね。特にテキスト処理を得意としてるのがPerlです。 (逆にC言語でPerlと同等のテキスト処理をさせようとすると洒落にならないくらい難しい、と言うのは良く知られています)

関連するQ&A

  • プログラミング言語の違いを教えてください!

    こんにちわ。 ただ今就職活動中の者です。 大学ではC++の基礎を勉強しましたが色々あるプログラミング言語の違いがよく理解できていません。 プログラミング言語はCOBOL、JAVA、C言語、visual basic、perlなど、本当に様々な言語がありますが、それらの言語について詳しく教えていただけませんでしょうか? (それぞれはどういった分野のシステムの開発に向いていて、どのような弱点があるなど)お手数ですが、よろしくお願いします!

  • プログラミング言語について

    プログラミング言語にはさまざまなものがあり,C,COBOL,CASLII、C++,JAVA,VISUALVASIC,PERL等があるようですが、家庭用PCにおいてこれらの各言語はどのような働きをしているのでしょうか?自分で使っているPCのことぐらいはできるだけ知っておきたいので、誰か詳しい方おしえてください。

  • おすすめのプログラミング言語を教えて下さい

    昨日、プログラミング言語について質問させて頂きました。その結果、basic、Ruby, JavaScript, Python, Perl, PHP、C,C#,を勧められました。 しかしどれから勉強すればいいかわからず、また質問しようという考えにたどり着きました。 この中の言語ではどれがお勧めでしょうか? また、basicはVB、VBAなどがあり、どれのことを指しているのかが理解出来ないのでそのあたりも教えてくださると嬉しいです。

  • 新言語プログラミング2005?

    以前にC/C++言語・Javaプログラミングを勉強したことがあるのですが、今は違う業界にいて、最近では何のプログラミングが最新なのか分かりません。 「これから」という新言語プログラミングを、誰か知っていたら教えてください。 ちなみに、C言語とJavaの検定・2級を持ってます。

  • プログラミング言語について

    プログラムを学ぼうと思っている初心者です。 C、Java、COBOL…色々なプログラミング言語がありますが、それぞれどのような物を作るときに使用されるのでしょうか?今いちばん需要があるのものと難易度も知りたいです。わかりやすく教えていただけるとありがたいです。

  • 数多く存在するプログラミング言語について教えて下さい

    今、プログラミング言語全般について勉強中ですが、質問です! C、C++、Perl、FORTRAN、COBOL、ALGOL、SmallTalk Lisp、Prolog、Logo、TCL、Pascal、ObjectC、VB、 Basic、Java、Delphi、April、Rubyなど様々な言語が存在しますが、この中の言語以外には他にどの様な名前の言語が存在しますか? そして、 知名度の低い(使っている人すみません)TCL、Aprilを始めとする言語について 詳しい事を教えて下さい。

  • プログラミング言語の使い分け

    当方、PerlとHSPを使って実際にプログラミングをしたことがあります。 Perlは今でも使っていますが、もちろんWindowsで動くアプリケーションには使用できません。 HSPは使い勝手が悪く、あまり使いたくありません。 そこで、新しく他の言語でプログラミングを始めようと思っています。 Visual Basic Visual C# Visual C++ これらの言語は機能面でどのように違うのか、プログラムの書き方(文法)はどう違うのかなどを教えてください。 (文法面はPerlと違って...Perlと同じで...というふうにPerlを交えていただければ理解しやすいと思います)

  • どのプログラミング言語から勉強すればいいか

    私は中学2年生の14歳です。将来システムエンジニア等の仕事に就きたいと思っており、プログラミング言語の勉強をスタートしようとしています。 ここで疑問が生まれました。どの言語がいいかわからず、調べた結果JavaかC++がお勧めということがわかりました。この2つでは、どちらから勉強すればよいでしょうか?また、勉強する際に参考になるサイトなども教えてくださると嬉しいです。 この2つはやめておいたほうがいい、などの意見でも結構です。 その場合、どの言語がいいかも教えてください。

  • 初めて学ぶプログラミング言語とその参考書について

    こんにちは。 初めて学ぶプログラミング言語とその参考書について質問させていただきます。 現在、中学3年で私立の通信制高校に入学しようとしています。 高校在学中に、趣味でプログラミング言語を覚えたく、参考書もたくさんあり 何が何だか全くわからず、手がつけられない状態です。 C,C#,C++,VB,Javaなどの種類はよく聞きますが、調べてもどれがどのようなメリット・デメリットなどがあるのかがわかりません。 ただ、HP関連も趣味でやっているのでPerlなどに応用が効くような言語がいいかな?とも思います 他にも、将来PICを使ってみたいと思うことがあるかもしれないので対応した言語がいいかとも思います。 それぞれの特徴とおすすめの参考書をお教えください。 よろしくお願い致します。

  • コンピュータ言語とプログラミング言語の違い

    履歴書のようなものに自分のスキルを登録する際に、 「使用したことのあるプログラミング言語を記入してください」とあったので、 C、C++、アセンブラ、Perl、HTML、 としました。 その後、「使うことの出来るコンピュータ言語を記入してください」とありました。 この、「プログラミング言語」と「コンピュータ言語」という定義には何か違いがあるのでしょうか?また、C、C++、アセンブラは間違いないと思うのですが、残りの2つはプログラミング言語に含めてもいいのでしょうか? よろしくお願いいたします。