分かる君

「分かる君」が運営するサイトです。 ITの難しい用語や、仕事で感じた事などを中心に"わかりやすさ"を意識して記事にしています。少しでも共感や参考にしていただける人がいたら嬉しいです。

2025/6/12

ネイティブコードとは

ネイティブコード ネイティブコードとは ネイティブコード(英:native code)とは、コンピュータのCPU(マイクロプロセッサ)が理解できる形式(機械語)で記述されたプログラムのことです。オブジェクトコードとも呼ばれています。 機械語の命令形式はCPUの種類によって異なります。 一般的に同じメーカーのCPUであれば、プロセッサ製品間は同じ命令セット(機械語で記述された命令の集まり)を共有するが、メーカーが異なれば命令セットも変わり(異なるメーカーでも同じ命令セットの場合もある)、ネイティブコードはC ...

2025/6/12

バイトコードとは

バイトコード バイトコード(中間コード)とは バイトコード(英:bytecode)とは、仮想マシン上で動作するために作られた実行可能な中間コードのことです。 バイトコードという名前は、命令の構成がバイト指向のためバイトコードと呼ばれていたが、仮想マシン上で動作するために作られた実行可能な中間コードであれば、バイト指向でなくともバイトコードと呼ぶことが多いです。 バイトコードのイメージ例 プログラミング言語は人間が解釈しやすいように作られているため、そのままではコンピュータは理解できません。そこで、次の図の ...

2025/6/12

オブジェクトコードとは

オブジェクトコード オブジェクトコード(英:object code)とは、プログラミング言語で書かれたソースコードをコンピュータが直接実行できる形式に変換したコードのことです。 プログラミング言語は人間が解釈しやすいように作られているため、そのままではコンピュータは理解できません。そのためコンパイラなどを使い、コンピュータが解釈できる形式のコード(機械語)に変換してから実行します。 このコンパイラなどで生成したコードのことをオブジェクトコードといいます。 次の図は、コンパイラのイメージ例です。 コンパイラ ...

2025/6/12

JITコンパイラ(実行時コンパイラ)とは

JITコンパイラ JITコンパイラ(実行時コンパイラ)とは JITコンパイラとは Just In Timeの略で、その名の通り"必要なものを必要な時に"コンパイルするコンパイラのことです。 ソフトウェア実行時にコードのコンパイルを行い実行速度の向上を図るコンパイラで「実行時コンパイラ」とも呼ばれています。 通常のコンパイラは、ソースコードから機械語(オブジェクトコード)への変換を実行前に事前に行います。 それに対しJITコンパイラは、ソフトウェア実行時にソースコード または 中間コード(バイトコード)を機 ...

2022/7/13

バイトコードインタプリタとは

バイトコードインタプリタ バイトコードインタプリタとは、バイトコード(中間コード)を実行するインタプリタのことです。 インタプリタとは「通訳者」の意味で、コンピュータが解釈できる機械語に変換しながら実行するものであり、バイトコードとは、仮想マシン上で動作するために作られた実行可能な中間コードのことです。 次の図は、バイトコードインタプリタのイメージ例です。 ソースコードを仮想マシンで動作するバイトコード(中間コード)にコンパイル(変換)し、コンパイルしたバイトコードをバイトコードインタプリタで機械語に変換 ...

2022/7/4

トランスコンパイラとは

トランスコンパイラ トランスコンパイラとは トランスコンパイラとは、あるプログラミング言語で書かれたソースコードを入力として受け取り、別のプログラミング言語の同等のコードを生成するコンパイラの一種です。 コンパイラが、高水準言語で書かれたソースコードを入力とし、低水準言語のコードを生成するのに対し、トランスコンパイラでは、同じ程度の水準のコードを出力します。 次の図はコンパイラとトランスコンパイラのイメージ例です。 コンパイラは、人間が解釈しやすい「高水準言語」を入力とし、コンピュータが解釈しやすい「低水 ...

2022/8/22

クロスコンパイラとは

クロスコンパイラ クロスコンパイラ(英:cross compiler)とは、開発している環境(コンパイラが動作している環境)とは異なる環境(プラットフォーム)向けに実行可能なコードを生成するコンパイラの一種です。 またクロスコンパイラを使い、異なる環境で動作するコードを生成することをクロスコンパイル(英:cross compile)といいます。 クロスコンパイラは主に組み込みシステム(電化製品などの組み込まれているコンピュータシステム)向けのコンパイラや、マルチプラットフォーム(異なる環境で同じように動作 ...

2025/6/12

TypeScriptとは

TypeScript(タイプスクリプト) TypeScriptとは、マイクロソフト社が2012年に開発・公開したプログラミング言語で、JavaScriptのスーパーセットです。 スーパーセットとは「上位互換」のことで、JavaScriptが持つ機能を維持しつつ、TypeScriptとしての新しい機能を追加した言語という意味です。 TypeScriptはそのまま実行するのではなく、トランスコンパイラと呼ばれるものでJavaScriptプログラムに変換してから実行します。 TypeScriptの特徴 静的型付 ...

2022/6/24

Java仮想マシン(JVM)とは

Java仮想マシン Java仮想マシン(英:Java Virtual Machine)とは、Javaプログラムを実行するためのソフトウェアです。「Java VM」や「JVM」と略されて表現されることが多いです。 Javaバイトコードで記述されたコンピュータプログラムを解釈し、そのコンピュータで実行可能な形式のコードに変換して実行します。 さまざまな環境でJavaプログラムを動かすことができる Javaは「Write once, run anywhere」(一度プログラムを書けば、どのコンピュータでも動く) ...

2025/6/12

Goとは(Go言語)

Go(ゴー) Go(Go言語)とは、Googleが開発・公開しているプログラミング言語で、2009年に発表、2012年にバージョン1.0がリリースされています。GolangやGo言語と表記されることもあります。 Goは「高速で信頼性が高く、効率的なソフトウェア開発」ができる言語として登場したもので、コードがシンプルであり簡単な記述でコーディングできるのが特徴です。 2009年の発表当初は、LinuxとMac OS Xしかサポートしていませんでしたが、2012年にリリースされたバージョン1.0からはWind ...

2025/6/12

Kotlinとは

Kotlin(コトリン) Kotlinとは、ジェットブレインズ(JetBrains)社(チェコ共和国の首都プラハに本社を置くソフトウェア開発企業)が2011年に発表したプログラミング言語です。 世界中で使用されている人気言語である Javaをもっと簡潔で安全性の高いプログラミング言語になるように改良して作られたのが Kotlinです。 Kotlinの特徴 Java仮想マシン(Java VM)上で動作する Javaはサン・マイクロシステムズが「Write once, run anywhere」(一度プログラ ...

2025/6/12

Swiftとは(プログラミング言語)

Swift(スウィフト) Swiftとは「iPhone」や「iPad」「Mac」などのApple製品向けのアプリケーションを開発するためのプログラミング言語です。また、Webアプリケーション開発などを行うこともできます。 Objective-Cの後継言語として、2014年にAppleが発表した言語で、C言語がベースとなっているObjective-Cに比べ、簡易な構文で記述できるのがSwiftの魅力です。 「Swift」と「Objective-C」の関係 基本的にApple製品向けのアプリケーション開発を他 ...

2025/6/12

Objective-Cとは

Objective-C(オブジェクティブ シー) Objective-Cとはプログラミング言語の一種で、C言語をベースにSmalltalk型のオブジェクト指向機能を持たせた上位互換言語です。 ※Smalltalk(スモールトーク)とは、1970年代にアラン・ケイ(Alan C. Kay)氏らが考案したオブジェクト指向のプログラミング言語です。 Objective-Cは、macOSのアプリ開発やiOS向けのアプリ開発(iPhoneやiPad向けのアプリ開発)を得意としているため、macOSやiOS向けのアプ ...

2025/6/12

C#とは

C#(シーシャープ) C#(シーシャープ)とは、マイクロソフト社のアンダース・ヘルスバーグ氏が開発したプログラミング言語です。 「C言語」や「C++」をもとにマイクロソフト社の.NET Framework(マイクロソフト社が開発したアプリケーション開発・実行環境)向けのソフトウェア開発に適した仕様に改良したものであり、2002年に最初のバージョンが公開されています。 C#の特徴 オブジェクト指向言語 C#は、C++やJavaなどの言語と同じで「オブジェクト指向」を採用しています。 従来のプログラミング言語 ...

2025/6/12

Javaとは

Java(ジャバ) Javaとは、1995年にサン・マイクロシステムズ(Sun Microsystems)が開発したプログラミング言語です。サン・マイクロシステムズは2010年にオラクル(Oracle)に買収されているため、現在はオラクルがJavaを提供しています。 Javaの歴史 1995年にJavaベータ版が公開 Javaの歴史は、1990年にサン・マイクロシステムズが家電製品に組み込まれているコンピュータ向けのプログラミング言語を開発するためにプロジェクト(グリーンプロジェクト)を立ち上げたことから ...

2025/6/12

JavaScriptとは

JavaScript(ジャバスクリプト) JavaScriptとは、Webブラウザ上で動作するプログラミング言語です。 インターネット上で表示されているWebページは、HTML(HyperText Markup Language)という書式で書かれています。HTMLだけでもWebページを作成することはできますが、Webページに動きを加えたり、ダイアログを表示したり、イベント処理を実装したりと、JavaScriptを使うことでWebページにさまざまな機能を実装することができます。 利用するユーザーが直接目に ...

2025/6/12

PHPとは?PHPの特徴を分かりやすく解説

PHP(ピー・エイチ・ピー) PHPとは、Webアプリケーションの開発を得意とするプログラミング言語です。 PHPの最初のバージョンは1995年にラスマス・ラードフ氏により公開され、当初は「Personal Home Page Tools」の略とされていましたが、「Personal Home Page Tools」だと個人用という印象があるため、1998年のPHP 3.0からは「PHP: Hypertext Preprocessor」という表記が用いられるようになっています。 PHPの特徴 サーバサイドの ...

2025/6/12

Rubyとは

Ruby(ルビー) Rubyとは、1995年に日本人のまつもとゆきひろ氏(通称: Matz)により開発されたオブジェクト指向スクリプト言語です。(※スクリプト言語とは簡易的なプログラミング言語のことです) Rubyという名前は、プログラミング言語のPerl(パール)が6月の誕生石であるパール(真珠)と同じ発音のため「Perlに続く」という意味で、7月の誕生石であるRuby(ルビー)と名付けられたといわれています。 「Perlよりも強力で、Python2よりもオブジェクト指向な言語が欲しかったんだ」 出典: ...

2022/6/2

Perlとは

Perl(パール) Perl(パール)とは、1987年にラリー・ウォール氏によって開発されたプログラミング言語です。 UNIXでの簡易なテキスト処理プログラムやシステム管理プログラムを開発する言語として人気を集め、更にインターネットが普及し始めると、Webサーバで動的にプログラムを実行して結果をWebページとして送信するCGI(Common Gateway Interface)の開発言語として広く普及していました。 しかし、その後「PHP」や「Ruby」「Python」「Java」など様々な言語の登場によ ...

2025/6/12

Pythonとは

Python(パイソン) Pythonとは、グイド・ヴァンロッサム氏により開発された高水準汎用プログラミング言語です。コードが簡潔でわかりやすいのが特徴でコンパイラ方式ではなくインタプリタ方式を採用しています。 機械学習や人工知能(AI)の分野で注目を集めている人気のプログラミング言語です。特定の用途に特化しない汎用プログラミング言語のため、Web開発やブロックチェーン技術の開発、ゲーム開発、Androidアプリ開発など、さまざまな用途で使用されています。 Pythonの特徴 コードが簡潔で学習しやすい ...