知っておきたいプログラミングの基礎知識
コンピュータが使っている「論理演算」とは?
私たちになじみの深い、算数や数学で学んだ計算方法を「算術演算」と言います。それに対し、コンピューターが内部で行っている計算方法は、「論理演算」と呼ばれるものです。論理演算とは、真(true)と偽(false)の二通りの状態を取る値の間で行われる演算のこと。真とはその命題が正しいこと、偽は正しくないことを示します。
論理演算には次の4種類があります。最初の3つは入力する値が2つの二項演算、最後のNOT演算は1つの値のみの単項演算です。コンピューターでは真を1、偽を0に置き換えて計算することが一般的で、2進法で計算します。
演算 | 入力値 | 出力結果 |
論理和(OR) | どちらかが真であれば | 真 |
論理積(AND) | どちらも真であれば | 真 |
排他的論理和(XOR) | 両者が異なる値であれば | 真 |
論理否定(NOT) | 真または偽 | 入力が真なら偽、偽なら真 |
(【5分で覚えるIT基礎の基礎】第1回:あなたは論理演算がわかりますか? | 日経 xTECH,論理演算(ブーリアン演算)とは |IT用語辞典 e-Words より筆者作成)
プログラミング言語では、プラスやマイナスなどの記号の代わりに論理演算子を使って式を記述します。演算子には、「&&」のような記号を使う場合と「and」のような英単語をそのまま使う場合とがあります。
子供や初学者にも分かりやすい「ビジュアル言語」とは?
プログラムはこれら論理演算を使って、プログラミング言語のルールに従い、英語や記号、数字などのテキストで記述していきます。しかし子供などの場合、テキストをキーボードでタイプするのがハードルになることが多い上に、英語圏以外の国ではアルファベット表記も障壁になりやすいものです。
そこでどんな人でも簡単にプログラムに取り組めるよう、要素を視覚的に捉えやすいパーツにし、組み合わせるだけでプログラミングできる言語が開発されました。このような言語を「ビジュアル(プログラミング)言語」と言います。サイト「プログラミングツール図鑑」は、ビジュアル言語を次のようなタイプに分類しています。
分類 | 特徴 | 言語の例 |
ブロックタイプ | 指示の書かれた小さなブロックを繋いでプログラミング。ブロックを並べる順序や論理構造の作り方が、一般的なテキスト言語の考え方に類似している。 | Scratch など |
フロータイプ | フローチャートのように、指示や機能、条件のアイコンを配置してプログラミング。ソフトとハードを包括するようなプログラムに適する。 | MESH、SAM Labs など |
独自ルールタイプ | 上記の2つに当てはまらない独自のプログラミング言語。文字や数字で指示や論理構造を行うのではなく、より直感的に作品作りをする。 | Viscuit、Springin’ など |
(ビジュアルプログラミングってなに?〜3タイプ分類でわかるScratchやViscuitの違い| 知りたい!プログラミングツール図鑑 より筆者作成)
世界のプログラミング言語にはどんなものがある?
プログラミング言語といえば通常、ビジュアル言語ではなくテキストで記述するものを指します。さまざまな種類の言語があり、それぞれの言語に得意分野があります。また同じ論理の記述でも、それぞれの言語によって文法が異なり、別の記述ルールを持っています。
現在世界ではどんなプログラミング言語がよく使われているのか、世界と日本のランキング調査を見てみましょう。
TIOBE Index(※1) | レバテックルーキー
プログラミングトレンド調査(※2) |
|
1位 | Java | Java |
2位 | C | C/C++ |
3位 | Python | PHP |
4位 | C++ | Python |
5位 | C# | Javascript |
6位 | Visual Basic .NET | その他 |
7位 | JavaScript | Ruby |
8位 | SQL | Objective-C/Swift |
9位 | PHP | Android Java/Kotlin |
10位 | Objective-C | Go |
※1:TIOBE Softwareの集計(2019年10月)による、検索エンジンで話題になっているプログラミング言語のランキング
※2:レバテックルーキーの調査(2019年8月)による、日本の2020年入社予定新卒エンジニアが就職先で携わる予定のプログラミング言語のランキング
(出典:TIOBE Index | TIOBE,2020年新卒エンジニアプログラミング言語トレンド発表|レバテックキャリア から筆者作成)
上位にランクインしているプログラミング言語から主なものを、以下で簡単に解説します。
- Java
ハードウェアやOSの種類を選ばないプラットフォーム非依存性とバージョン間の互換性を重視している点が特徴で、特にシステム開発において高い信頼が寄せられています。家電機器や乗用車の組み込みシステムから、携帯機器、パソコン、スマートフォンなどさまざまな製品に使用。Android OS用のアプリ開発では、Javaが定番の言語です。
参考
- C/C++/C#
Cは1970年代に開発された歴史のあるプログラミング言語。プログラムの自由度が高く汎用性があり、目的に応じた拡張が容易であるため、あらゆる分野に普及しています。ただ記述がやや難解なところがあり、他のプログラミング言語も増えてきているため、使用シーンは相対的に減少傾向。特にソフトウェア開発などでは、Cから派生した後発言語のC++やC#、Javaなどの利用が多くなっています。
参考
- Python(パイソン)
プログラマーの作業を容易にし、コードの信頼性を高めることを重視して設計された言語であるため、シンプルで読みやすく書きやすいことが特徴です。Webやデスクトップのアプリケーション開発をはじめ、システム用の記述、各種の自動処理、理工学、統計・解析など幅広い領域で活躍。最近では、AI開発と機械学習の分野で活用されるようになりました。
参考
- PHP
サーバー上で動くWebアプリケーション開発に利用されることが多く、動的なWebコンテンツを作る言語としては現在最もメジャーな言語です。企業のオウンドメディアにも使われる有名なサイト構築ツールWordPressも、PHPで作られています。
参考
まとめ
興味を持ったアプリはあったでしょうか。スマートフォンで使えるアプリならスタートしやすいでしょうし、家に眠っているタブレットがあるのならこの機会に有効利用してみましょう。親子で一緒に遊びながら、プログラミングに取り組んでみるのもおすすめです。子供の頭の柔軟性や新しい体験の吸収力に、うれしい驚きを覚えるかもしれません。
参考
グリコードの授業用キットで、小学校の授業でも家庭でも、おいしく楽しくプログラミングの基礎を学ぼう!|EdTechZine
「ビスケット」が目指すプログラミングの大衆化-生みの親・原田氏がその特徴と活用ポイントを解説|EdTechZine
プログラミング言語人気トップ8、過去15年間で安定-例外はPython | マイナビニュース
エンジニア志望の学生100名が回答した、プログラミング言語トレンド発表|EdTechZine
初心者向け】プログラミング言語の選び方-様々な種類の言語を一覧で紹介します|CREATIVE VILLAGE